@redseat/api 0.0.17 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -95,62 +95,84 @@ export interface ILibrary {
95
95
  status?: string;
96
96
  }
97
97
  export interface ITag {
98
- id?: string;
98
+ id: string;
99
99
  name: string;
100
+ path: string;
100
101
  parent?: string;
101
- path?: string;
102
- count?: number;
103
- starred?: boolean;
104
- hidden?: boolean;
102
+ type?: string;
103
+ modified: number;
104
+ added: number;
105
+ generated: boolean;
105
106
  alt?: string[];
106
- generated?: boolean;
107
- waiting?: boolean;
107
+ thumb?: string;
108
+ params?: any;
108
109
  }
109
110
  export declare enum LinkType {
110
111
  'profile' = "profile",
111
112
  'post' = "post",
112
113
  'other' = "other"
113
114
  }
115
+ export interface RsLink {
116
+ platform: string;
117
+ type?: LinkType;
118
+ id: string;
119
+ file?: string;
120
+ user?: string;
121
+ plugin?: string;
122
+ }
123
+ export type Gender = 'Male' | 'Female' | 'Animal' | 'Other' | 'Unknown' | {
124
+ Custom: string;
125
+ };
114
126
  export interface IPerson {
115
- id?: string;
127
+ id: string;
116
128
  name: string;
129
+ modified: number;
130
+ added: number;
131
+ posterv: number;
132
+ generated: boolean;
117
133
  alt?: string[];
118
- socials?: {
119
- id: string;
120
- type: LinkType | undefined;
121
- platform: string;
122
- }[];
123
- posterv?: number;
124
- portrait?: boolean;
134
+ type?: string;
135
+ portrait?: string;
125
136
  birthday?: number;
126
- waiting?: boolean;
127
- generated?: boolean;
137
+ death?: number;
138
+ imdb?: string;
139
+ slug?: string;
140
+ tmdb?: number;
141
+ trakt?: number;
142
+ socials?: RsLink[];
143
+ gender?: Gender;
144
+ country?: string;
145
+ bio?: string;
146
+ params?: any;
128
147
  }
148
+ export type SerieStatus = 'returning' | 'inProduction' | 'postProduction' | 'planned' | 'rumored' | 'ended' | 'released' | 'canceled' | 'pilot' | 'unknown' | {
149
+ other: string;
150
+ };
129
151
  export interface ISerie {
130
- id?: string;
152
+ id: string;
131
153
  name: string;
154
+ type?: string;
132
155
  alt?: string[];
133
- tags?: string[];
134
- people?: string[];
156
+ status?: SerieStatus;
157
+ params?: any;
135
158
  year?: number;
136
- poster?: boolean;
137
159
  imdb?: string;
138
160
  slug?: string;
139
161
  tmdb?: number;
140
162
  trakt?: number;
141
163
  tvdb?: number;
142
164
  otherids?: string;
143
- status?: string;
144
165
  imdbRating?: number;
145
166
  imdbVotes?: number;
146
- images?: {
147
- poster?: string;
148
- background?: string;
149
- };
150
- posterv?: number;
151
- backgroundv?: number;
152
- cardv?: number;
153
- waiting?: boolean;
167
+ traktRating?: number;
168
+ traktVotes?: number;
169
+ trailer?: string;
170
+ maxCreated?: number;
171
+ modified: number;
172
+ added: number;
173
+ posterv: number;
174
+ backgroundv: number;
175
+ cardv: number;
154
176
  }
155
177
  export interface IEpisode {
156
178
  id?: string;
@@ -177,10 +199,39 @@ export interface IEpisode {
177
199
  background?: string;
178
200
  };
179
201
  }
202
+ export type MovieStatus = 'returning' | 'released' | 'inProduction' | 'postProduction' | 'planned' | 'rumored' | 'canceled' | 'unknown' | {
203
+ other: string;
204
+ };
180
205
  export interface IMovie {
181
- id?: string;
206
+ id: string;
182
207
  name: string;
208
+ type?: any;
183
209
  year?: number;
210
+ airdate?: number;
211
+ digitalairdate?: number;
212
+ duration?: number;
213
+ overview?: string;
214
+ country?: string;
215
+ status?: MovieStatus;
216
+ imdb?: string;
217
+ slug?: string;
218
+ tmdb?: number;
219
+ trakt?: number;
220
+ otherids?: string;
221
+ lang?: string;
222
+ original?: string;
223
+ imdbRating?: number;
224
+ imdbVotes?: number;
225
+ traktRating?: number;
226
+ traktVotes?: number;
227
+ trailer?: RsLink;
228
+ modified: number;
229
+ added: number;
230
+ watched?: number;
231
+ progress?: number;
232
+ posterv: number;
233
+ backgroundv: number;
234
+ cardv: number;
184
235
  }
185
236
  export interface IServer {
186
237
  id: string;
package/libraries.md CHANGED
@@ -360,16 +360,33 @@ await libraryApi.updatePersonPortrait('person-id', formData);
360
360
 
361
361
  ## Series
362
362
 
363
- ### `getSeries(): Promise<ISerie[]>`
363
+ ### `getSeries(query?: { after?: number; name?: string; watched?: boolean; sort?: RsSort; order?: 'ASC' | 'DESC' }): Promise<ISerie[]>`
364
364
 
365
- Retrieves all series in the library, sorted by name.
365
+ Retrieves series in the library with optional filtering.
366
+
367
+ **Parameters:**
368
+ - `query`: Optional query object with filtering parameters:
369
+ - `after`: Filter series modified after this timestamp (integer unix milliseconds)
370
+ - `name`: Filter series by name
371
+ - `watched`: Filter by watched status
372
+ - `sort`: Sort key using `RsSort` enum (`Modified`, `Added`, `Created`, `Rating`, `Name`, `Size`)
373
+ - `order`: Sort direction (`'ASC'` or `'DESC'`)
366
374
 
367
375
  **Returns:** Promise resolving to an array of `ISerie` objects
368
376
 
369
377
  **Example:**
370
378
  ```typescript
379
+ // Get all series
371
380
  const series = await libraryApi.getSeries();
372
- ```
381
+
382
+ // Get series with filters and sorting
383
+ const filteredSeries = await libraryApi.getSeries({
384
+ watched: false,
385
+ sort: RsSort.Rating,
386
+ order: 'DESC',
387
+ after: Date.now() - 86400000 // Last 24 hours
388
+ });
389
+
373
390
 
374
391
  ### `createSerie(serie: Partial<ISerie>): Promise<ISerie>`
375
392
 
@@ -581,16 +598,30 @@ await libraryApi.setEpisodeWatched('serie-id', 1, 1, Date.now());
581
598
 
582
599
  ## Movies
583
600
 
584
- ### `getMovies(): Promise<IMovie[]>`
601
+ ### `getMovies(query?: { after?: number; inDigital?: boolean; watched?: boolean; sort?: MovieSort }): Promise<IMovie[]>`
585
602
 
586
- Retrieves all movies in the library.
603
+ Retrieves movies in the library with optional filtering.
604
+
605
+ **Parameters:**
606
+ - `query`: Optional query object with filtering parameters:
607
+ - `after`: Filter movies modified after this timestamp (integer unix milliseconds)
608
+ - `inDigital`: Filter by digital release availability
609
+ - `watched`: Filter by watched status
610
+ - `sort`: Sort key (`'modified'`, `'added'`, `'created'`, `'name'`, or `'digitalairdate'`)
587
611
 
588
612
  **Returns:** Promise resolving to an array of `IMovie` objects
589
613
 
590
614
  **Example:**
591
615
  ```typescript
616
+ // Get all movies
592
617
  const movies = await libraryApi.getMovies();
593
- ```
618
+
619
+ // Get movies with filters
620
+ const filteredMovies = await libraryApi.getMovies({
621
+ inDigital: true,
622
+ sort: 'digitalairdate',
623
+ after: Date.now() - 86400000 // Last 24 hours
624
+ });
594
625
 
595
626
  ### `createMovie(movie: Partial<IMovie>): Promise<IMovie>`
596
627
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redseat/api",
3
- "version": "0.0.17",
3
+ "version": "0.0.18",
4
4
  "description": "TypeScript API client library for interacting with Redseat servers",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",