pstream is dead; long live pstream
taciturnaxolotl.github.io/pstream-ng/
1export interface TraktUser {
2 username: string;
3 name?: string;
4 private: boolean;
5 vip: boolean;
6 joined_at: string;
7 ids: { slug: string };
8 images?: {
9 avatar: {
10 full: string;
11 };
12 };
13}
14
15export interface TraktImages {
16 poster?: {
17 full: string;
18 medium: string;
19 thumb: string;
20 };
21 fanart?: {
22 full: string;
23 medium: string;
24 thumb: string;
25 };
26}
27
28export interface TraktHistoryItem {
29 id: number;
30 watched_at: string;
31 action: string;
32 type: "movie" | "episode";
33 movie?: {
34 title: string;
35 year: number;
36 ids: { trakt: number; tmdb: number };
37 };
38 episode?: {
39 season: number;
40 number: number;
41 title: string;
42 ids: { trakt: number; tmdb?: number };
43 };
44 show?: {
45 title: string;
46 year: number;
47 ids: { trakt: number; tmdb: number };
48 };
49}
50
51export interface TraktWatchedItem {
52 movie?: {
53 title: string;
54 year: number;
55 ids: { trakt: number; slug: string; imdb: string; tmdb: number };
56 runtime?: number;
57 images?: TraktImages;
58 };
59 show?: {
60 title: string;
61 year: number;
62 ids: { trakt: number; slug: string; imdb: string; tmdb: number };
63 runtime?: number;
64 images?: TraktImages;
65 };
66 plays: number;
67 last_watched_at: string;
68 last_updated_at?: string;
69 seasons?: {
70 number: number;
71 episodes: {
72 number: number;
73 plays: number;
74 last_watched_at: string;
75 }[];
76 }[];
77}
78
79export interface TraktWatchlistItem {
80 movie?: {
81 title: string;
82 year: number;
83 ids: { trakt: number; slug: string; imdb: string; tmdb: number };
84 images?: TraktImages;
85 };
86 show?: {
87 title: string;
88 year: number;
89 ids: { trakt: number; slug: string; imdb: string; tmdb: number };
90 images?: TraktImages;
91 };
92 listed_at: string;
93 id: number;
94}
95
96export interface TraktPlaybackItem {
97 progress: number;
98 paused_at: string;
99 id: number;
100 type: "movie" | "episode";
101 movie?: {
102 title: string;
103 year: number;
104 ids: { trakt: number; slug: string; imdb: string; tmdb: number };
105 runtime?: number;
106 images?: TraktImages;
107 };
108 episode?: {
109 season: number;
110 number: number;
111 title: string;
112 ids: { trakt: number; tvdb?: number; imdb?: string; tmdb?: number };
113 runtime?: number;
114 images?: TraktImages;
115 };
116 show?: {
117 title: string;
118 year: number;
119 ids: {
120 trakt: number;
121 slug: string;
122 tvdb?: number;
123 imdb: string;
124 tmdb: number;
125 };
126 images?: TraktImages;
127 };
128}
129
130export interface TraktScrobbleResponse {
131 id: number;
132 action: "start" | "pause" | "scrobble" | "conflict";
133 progress: number;
134 movie?: {
135 title: string;
136 year: number;
137 ids: { trakt: number; slug: string; imdb: string; tmdb: number };
138 };
139 episode?: {
140 season: number;
141 number: number;
142 title: string;
143 ids: { trakt: number; tvdb?: number; imdb?: string; tmdb?: number };
144 };
145 show?: {
146 title: string;
147 year: number;
148 ids: {
149 trakt: number;
150 slug: string;
151 tvdb?: number;
152 imdb: string;
153 tmdb: number;
154 };
155 };
156}
157
158export interface TraktContentData {
159 type: "movie" | "episode" | "show";
160 imdbId?: string;
161 tmdbId?: string;
162 title: string;
163 year?: number;
164 season?: number;
165 episode?: number;
166 showTitle?: string;
167 showYear?: number;
168 showImdbId?: string;
169 showTmdbId?: string;
170}
171
172export interface TraktList {
173 name: string;
174 ids: { trakt: number; slug: string | null };
175 item_count: number;
176}
177
178export interface TraktListItem {
179 type: "movie" | "show" | "season" | "episode";
180 movie?: { title: string; year: number; ids: { tmdb: number } };
181 show?: { title: string; year: number; ids: { tmdb: number } };
182}
183
184export interface TraktHistoryRemovePayload {
185 movies?: Array<{
186 ids: { trakt?: number; slug?: string; imdb?: string; tmdb?: number };
187 }>;
188 shows?: Array<{
189 ids: {
190 trakt?: number;
191 slug?: string;
192 tvdb?: number;
193 imdb?: string;
194 tmdb?: number;
195 };
196 seasons?: Array<{ number: number; episodes?: Array<{ number: number }> }>;
197 }>;
198 episodes?: Array<{
199 ids: { trakt?: number; tvdb?: number; imdb?: string; tmdb?: number };
200 }>;
201 ids?: number[];
202}