@redseat/api 0.0.17 → 0.1.0
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.
- package/dist/interfaces.d.ts +156 -64
- package/dist/interfaces.js +9 -0
- package/libraries.md +37 -6
- package/package.json +1 -1
package/dist/interfaces.d.ts
CHANGED
|
@@ -13,57 +13,98 @@ export interface SerieInMedia {
|
|
|
13
13
|
episode?: number;
|
|
14
14
|
episodeTo?: number;
|
|
15
15
|
}
|
|
16
|
+
export declare enum FileType {
|
|
17
|
+
Directory = "Directory",
|
|
18
|
+
Photo = "Photo",
|
|
19
|
+
Video = "Video",
|
|
20
|
+
Archive = "Archive",
|
|
21
|
+
Album = "Album",
|
|
22
|
+
Other = "Other"
|
|
23
|
+
}
|
|
24
|
+
export interface MediaItemReference {
|
|
25
|
+
id: string;
|
|
26
|
+
conf?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface FaceEmbedding {
|
|
29
|
+
id: string;
|
|
30
|
+
embedding?: number[];
|
|
31
|
+
mediaRef?: string;
|
|
32
|
+
bbox?: any;
|
|
33
|
+
confidence?: number;
|
|
34
|
+
pose?: [number, number, number];
|
|
35
|
+
personId?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface BackupFile {
|
|
38
|
+
backup: string;
|
|
39
|
+
library?: string;
|
|
40
|
+
file: string;
|
|
41
|
+
id: string;
|
|
42
|
+
path: string;
|
|
43
|
+
hash: string;
|
|
44
|
+
sourcehash: string;
|
|
45
|
+
size: number;
|
|
46
|
+
modified: number;
|
|
47
|
+
added: number;
|
|
48
|
+
iv?: string;
|
|
49
|
+
thumbSize?: number;
|
|
50
|
+
infoSize?: number;
|
|
51
|
+
error?: string;
|
|
52
|
+
}
|
|
16
53
|
export interface IFile {
|
|
17
54
|
id: string;
|
|
18
55
|
name: string;
|
|
56
|
+
source?: string;
|
|
19
57
|
description?: string;
|
|
20
|
-
|
|
21
|
-
type: FileTypes;
|
|
58
|
+
type: FileType;
|
|
22
59
|
mimetype: string;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
added
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
60
|
+
size?: number;
|
|
61
|
+
params?: any;
|
|
62
|
+
added?: number;
|
|
63
|
+
modified?: number;
|
|
64
|
+
created?: number;
|
|
65
|
+
rating?: number;
|
|
66
|
+
avgRating?: number;
|
|
67
|
+
md5?: string;
|
|
29
68
|
phash?: string;
|
|
30
69
|
thumbhash?: string;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
70
|
+
originalHash?: string;
|
|
71
|
+
originalId?: string;
|
|
72
|
+
width?: number;
|
|
73
|
+
height?: number;
|
|
74
|
+
focal?: number;
|
|
75
|
+
iso?: number;
|
|
36
76
|
colorSpace?: string;
|
|
37
77
|
icc?: string;
|
|
38
78
|
mp?: number;
|
|
39
|
-
focal?: number;
|
|
40
|
-
iso?: number;
|
|
41
|
-
fNumber?: number;
|
|
42
79
|
sspeed?: string;
|
|
80
|
+
fNumber?: number;
|
|
43
81
|
orientation?: number;
|
|
44
82
|
duration?: number;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
conf?: number;
|
|
51
|
-
}[];
|
|
52
|
-
people?: {
|
|
53
|
-
id: string;
|
|
54
|
-
conf?: number;
|
|
55
|
-
}[];
|
|
56
|
-
series?: SerieInMedia[];
|
|
57
|
-
movie?: string;
|
|
83
|
+
acodecs?: string[];
|
|
84
|
+
achan?: number[];
|
|
85
|
+
vcodecs?: string[];
|
|
86
|
+
fps?: number;
|
|
87
|
+
bitrate?: number;
|
|
58
88
|
long?: number;
|
|
59
89
|
lat?: number;
|
|
60
|
-
|
|
61
|
-
iv?: string;
|
|
90
|
+
model?: string;
|
|
62
91
|
pages?: number;
|
|
92
|
+
progress?: number;
|
|
93
|
+
lang?: string;
|
|
94
|
+
tags?: MediaItemReference[];
|
|
95
|
+
series?: SerieInMedia[];
|
|
96
|
+
people?: MediaItemReference[];
|
|
97
|
+
faces?: FaceEmbedding[];
|
|
98
|
+
backups?: BackupFile[];
|
|
99
|
+
thumb?: string;
|
|
63
100
|
thumbv?: number;
|
|
64
101
|
thumbsize?: number;
|
|
65
|
-
|
|
66
|
-
|
|
102
|
+
iv?: string;
|
|
103
|
+
origin?: RsLink;
|
|
104
|
+
movie?: string;
|
|
105
|
+
uploader?: string;
|
|
106
|
+
uploadkey?: string;
|
|
107
|
+
faceRecognitionError?: string;
|
|
67
108
|
}
|
|
68
109
|
export declare enum LibraryTypes {
|
|
69
110
|
'Photos' = "photos",
|
|
@@ -95,62 +136,84 @@ export interface ILibrary {
|
|
|
95
136
|
status?: string;
|
|
96
137
|
}
|
|
97
138
|
export interface ITag {
|
|
98
|
-
id
|
|
139
|
+
id: string;
|
|
99
140
|
name: string;
|
|
141
|
+
path: string;
|
|
100
142
|
parent?: string;
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
143
|
+
type?: string;
|
|
144
|
+
modified: number;
|
|
145
|
+
added: number;
|
|
146
|
+
generated: boolean;
|
|
105
147
|
alt?: string[];
|
|
106
|
-
|
|
107
|
-
|
|
148
|
+
thumb?: string;
|
|
149
|
+
params?: any;
|
|
108
150
|
}
|
|
109
151
|
export declare enum LinkType {
|
|
110
152
|
'profile' = "profile",
|
|
111
153
|
'post' = "post",
|
|
112
154
|
'other' = "other"
|
|
113
155
|
}
|
|
156
|
+
export interface RsLink {
|
|
157
|
+
platform: string;
|
|
158
|
+
type?: LinkType;
|
|
159
|
+
id: string;
|
|
160
|
+
file?: string;
|
|
161
|
+
user?: string;
|
|
162
|
+
plugin?: string;
|
|
163
|
+
}
|
|
164
|
+
export type Gender = 'Male' | 'Female' | 'Animal' | 'Other' | 'Unknown' | {
|
|
165
|
+
Custom: string;
|
|
166
|
+
};
|
|
114
167
|
export interface IPerson {
|
|
115
|
-
id
|
|
168
|
+
id: string;
|
|
116
169
|
name: string;
|
|
170
|
+
modified: number;
|
|
171
|
+
added: number;
|
|
172
|
+
posterv: number;
|
|
173
|
+
generated: boolean;
|
|
117
174
|
alt?: string[];
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
type: LinkType | undefined;
|
|
121
|
-
platform: string;
|
|
122
|
-
}[];
|
|
123
|
-
posterv?: number;
|
|
124
|
-
portrait?: boolean;
|
|
175
|
+
type?: string;
|
|
176
|
+
portrait?: string;
|
|
125
177
|
birthday?: number;
|
|
126
|
-
|
|
127
|
-
|
|
178
|
+
death?: number;
|
|
179
|
+
imdb?: string;
|
|
180
|
+
slug?: string;
|
|
181
|
+
tmdb?: number;
|
|
182
|
+
trakt?: number;
|
|
183
|
+
socials?: RsLink[];
|
|
184
|
+
gender?: Gender;
|
|
185
|
+
country?: string;
|
|
186
|
+
bio?: string;
|
|
187
|
+
params?: any;
|
|
128
188
|
}
|
|
189
|
+
export type SerieStatus = 'returning' | 'inProduction' | 'postProduction' | 'planned' | 'rumored' | 'ended' | 'released' | 'canceled' | 'pilot' | 'unknown' | {
|
|
190
|
+
other: string;
|
|
191
|
+
};
|
|
129
192
|
export interface ISerie {
|
|
130
|
-
id
|
|
193
|
+
id: string;
|
|
131
194
|
name: string;
|
|
195
|
+
type?: string;
|
|
132
196
|
alt?: string[];
|
|
133
|
-
|
|
134
|
-
|
|
197
|
+
status?: SerieStatus;
|
|
198
|
+
params?: any;
|
|
135
199
|
year?: number;
|
|
136
|
-
poster?: boolean;
|
|
137
200
|
imdb?: string;
|
|
138
201
|
slug?: string;
|
|
139
202
|
tmdb?: number;
|
|
140
203
|
trakt?: number;
|
|
141
204
|
tvdb?: number;
|
|
142
205
|
otherids?: string;
|
|
143
|
-
status?: string;
|
|
144
206
|
imdbRating?: number;
|
|
145
207
|
imdbVotes?: number;
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
208
|
+
traktRating?: number;
|
|
209
|
+
traktVotes?: number;
|
|
210
|
+
trailer?: string;
|
|
211
|
+
maxCreated?: number;
|
|
212
|
+
modified: number;
|
|
213
|
+
added: number;
|
|
214
|
+
posterv: number;
|
|
215
|
+
backgroundv: number;
|
|
216
|
+
cardv: number;
|
|
154
217
|
}
|
|
155
218
|
export interface IEpisode {
|
|
156
219
|
id?: string;
|
|
@@ -177,10 +240,39 @@ export interface IEpisode {
|
|
|
177
240
|
background?: string;
|
|
178
241
|
};
|
|
179
242
|
}
|
|
243
|
+
export type MovieStatus = 'returning' | 'released' | 'inProduction' | 'postProduction' | 'planned' | 'rumored' | 'canceled' | 'unknown' | {
|
|
244
|
+
other: string;
|
|
245
|
+
};
|
|
180
246
|
export interface IMovie {
|
|
181
|
-
id
|
|
247
|
+
id: string;
|
|
182
248
|
name: string;
|
|
249
|
+
type?: any;
|
|
183
250
|
year?: number;
|
|
251
|
+
airdate?: number;
|
|
252
|
+
digitalairdate?: number;
|
|
253
|
+
duration?: number;
|
|
254
|
+
overview?: string;
|
|
255
|
+
country?: string;
|
|
256
|
+
status?: MovieStatus;
|
|
257
|
+
imdb?: string;
|
|
258
|
+
slug?: string;
|
|
259
|
+
tmdb?: number;
|
|
260
|
+
trakt?: number;
|
|
261
|
+
otherids?: string;
|
|
262
|
+
lang?: string;
|
|
263
|
+
original?: string;
|
|
264
|
+
imdbRating?: number;
|
|
265
|
+
imdbVotes?: number;
|
|
266
|
+
traktRating?: number;
|
|
267
|
+
traktVotes?: number;
|
|
268
|
+
trailer?: RsLink;
|
|
269
|
+
modified: number;
|
|
270
|
+
added: number;
|
|
271
|
+
watched?: number;
|
|
272
|
+
progress?: number;
|
|
273
|
+
posterv: number;
|
|
274
|
+
backgroundv: number;
|
|
275
|
+
cardv: number;
|
|
184
276
|
}
|
|
185
277
|
export interface IServer {
|
|
186
278
|
id: string;
|
package/dist/interfaces.js
CHANGED
|
@@ -8,6 +8,15 @@ export var FileTypes;
|
|
|
8
8
|
FileTypes["channel"] = "channel";
|
|
9
9
|
FileTypes["other"] = "other";
|
|
10
10
|
})(FileTypes || (FileTypes = {}));
|
|
11
|
+
export var FileType;
|
|
12
|
+
(function (FileType) {
|
|
13
|
+
FileType["Directory"] = "Directory";
|
|
14
|
+
FileType["Photo"] = "Photo";
|
|
15
|
+
FileType["Video"] = "Video";
|
|
16
|
+
FileType["Archive"] = "Archive";
|
|
17
|
+
FileType["Album"] = "Album";
|
|
18
|
+
FileType["Other"] = "Other";
|
|
19
|
+
})(FileType || (FileType = {}));
|
|
11
20
|
export var LibraryTypes;
|
|
12
21
|
(function (LibraryTypes) {
|
|
13
22
|
LibraryTypes["Photos"] = "photos";
|
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
|
|
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
|
|
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
|
|