n8n-nodes-codex 1.0.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/LICENSE.md +19 -0
- package/README.md +108 -0
- package/dist/credentials/CodexApi.credentials.d.ts +10 -0
- package/dist/credentials/CodexApi.credentials.js +92 -0
- package/dist/credentials/CodexApi.credentials.js.map +1 -0
- package/dist/icons/codex-dark.svg +7 -0
- package/dist/icons/codex-light.svg +7 -0
- package/dist/icons/codex.svg +7 -0
- package/dist/icons/github.dark.svg +3 -0
- package/dist/icons/github.svg +3 -0
- package/dist/nodes/Codex/Codex.node.d.ts +4 -0
- package/dist/nodes/Codex/Codex.node.js +133 -0
- package/dist/nodes/Codex/Codex.node.js.map +1 -0
- package/dist/nodes/Codex/resources/admin/index.d.ts +2 -0
- package/dist/nodes/Codex/resources/admin/index.js +489 -0
- package/dist/nodes/Codex/resources/admin/index.js.map +1 -0
- package/dist/nodes/Codex/resources/apiKey/index.d.ts +2 -0
- package/dist/nodes/Codex/resources/apiKey/index.js +233 -0
- package/dist/nodes/Codex/resources/apiKey/index.js.map +1 -0
- package/dist/nodes/Codex/resources/book/get.d.ts +2 -0
- package/dist/nodes/Codex/resources/book/get.js +5 -0
- package/dist/nodes/Codex/resources/book/get.js.map +1 -0
- package/dist/nodes/Codex/resources/book/index.d.ts +2 -0
- package/dist/nodes/Codex/resources/book/index.js +450 -0
- package/dist/nodes/Codex/resources/book/index.js.map +1 -0
- package/dist/nodes/Codex/resources/book/list.d.ts +2 -0
- package/dist/nodes/Codex/resources/book/list.js +81 -0
- package/dist/nodes/Codex/resources/book/list.js.map +1 -0
- package/dist/nodes/Codex/resources/book/updateMetadata.d.ts +2 -0
- package/dist/nodes/Codex/resources/book/updateMetadata.js +98 -0
- package/dist/nodes/Codex/resources/book/updateMetadata.js.map +1 -0
- package/dist/nodes/Codex/resources/book/updateProgress.d.ts +2 -0
- package/dist/nodes/Codex/resources/book/updateProgress.js +46 -0
- package/dist/nodes/Codex/resources/book/updateProgress.js.map +1 -0
- package/dist/nodes/Codex/resources/duplicate/index.d.ts +2 -0
- package/dist/nodes/Codex/resources/duplicate/index.js +162 -0
- package/dist/nodes/Codex/resources/duplicate/index.js.map +1 -0
- package/dist/nodes/Codex/resources/filesystem/index.d.ts +2 -0
- package/dist/nodes/Codex/resources/filesystem/index.js +64 -0
- package/dist/nodes/Codex/resources/filesystem/index.js.map +1 -0
- package/dist/nodes/Codex/resources/genre/index.d.ts +2 -0
- package/dist/nodes/Codex/resources/genre/index.js +83 -0
- package/dist/nodes/Codex/resources/genre/index.js.map +1 -0
- package/dist/nodes/Codex/resources/library/create.d.ts +2 -0
- package/dist/nodes/Codex/resources/library/create.js +94 -0
- package/dist/nodes/Codex/resources/library/create.js.map +1 -0
- package/dist/nodes/Codex/resources/library/delete.d.ts +2 -0
- package/dist/nodes/Codex/resources/library/delete.js +5 -0
- package/dist/nodes/Codex/resources/library/delete.js.map +1 -0
- package/dist/nodes/Codex/resources/library/get.d.ts +2 -0
- package/dist/nodes/Codex/resources/library/get.js +5 -0
- package/dist/nodes/Codex/resources/library/get.js.map +1 -0
- package/dist/nodes/Codex/resources/library/index.d.ts +2 -0
- package/dist/nodes/Codex/resources/library/index.js +360 -0
- package/dist/nodes/Codex/resources/library/index.js.map +1 -0
- package/dist/nodes/Codex/resources/library/list.d.ts +2 -0
- package/dist/nodes/Codex/resources/library/list.js +5 -0
- package/dist/nodes/Codex/resources/library/list.js.map +1 -0
- package/dist/nodes/Codex/resources/library/scan.d.ts +2 -0
- package/dist/nodes/Codex/resources/library/scan.js +37 -0
- package/dist/nodes/Codex/resources/library/scan.js.map +1 -0
- package/dist/nodes/Codex/resources/library/update.d.ts +2 -0
- package/dist/nodes/Codex/resources/library/update.js +73 -0
- package/dist/nodes/Codex/resources/library/update.js.map +1 -0
- package/dist/nodes/Codex/resources/metric/index.d.ts +2 -0
- package/dist/nodes/Codex/resources/metric/index.js +154 -0
- package/dist/nodes/Codex/resources/metric/index.js.map +1 -0
- package/dist/nodes/Codex/resources/misc/index.d.ts +2 -0
- package/dist/nodes/Codex/resources/misc/index.js +216 -0
- package/dist/nodes/Codex/resources/misc/index.js.map +1 -0
- package/dist/nodes/Codex/resources/series/get.d.ts +2 -0
- package/dist/nodes/Codex/resources/series/get.js +5 -0
- package/dist/nodes/Codex/resources/series/get.js.map +1 -0
- package/dist/nodes/Codex/resources/series/index.d.ts +2 -0
- package/dist/nodes/Codex/resources/series/index.js +1348 -0
- package/dist/nodes/Codex/resources/series/index.js.map +1 -0
- package/dist/nodes/Codex/resources/series/list.d.ts +2 -0
- package/dist/nodes/Codex/resources/series/list.js +108 -0
- package/dist/nodes/Codex/resources/series/list.js.map +1 -0
- package/dist/nodes/Codex/resources/series/updateMetadata.d.ts +2 -0
- package/dist/nodes/Codex/resources/series/updateMetadata.js +116 -0
- package/dist/nodes/Codex/resources/series/updateMetadata.js.map +1 -0
- package/dist/nodes/Codex/resources/tag/index.d.ts +2 -0
- package/dist/nodes/Codex/resources/tag/index.js +83 -0
- package/dist/nodes/Codex/resources/tag/index.js.map +1 -0
- package/dist/nodes/Codex/resources/task/index.d.ts +2 -0
- package/dist/nodes/Codex/resources/task/index.js +241 -0
- package/dist/nodes/Codex/resources/task/index.js.map +1 -0
- package/dist/nodes/Codex/resources/user/index.d.ts +2 -0
- package/dist/nodes/Codex/resources/user/index.js +362 -0
- package/dist/nodes/Codex/resources/user/index.js.map +1 -0
- package/dist/nodes/Codex/resources/userPreference/index.d.ts +2 -0
- package/dist/nodes/Codex/resources/userPreference/index.js +358 -0
- package/dist/nodes/Codex/resources/userPreference/index.js.map +1 -0
- package/dist/nodes/Codex/shared/descriptions.d.ts +6 -0
- package/dist/nodes/Codex/shared/descriptions.js +94 -0
- package/dist/nodes/Codex/shared/descriptions.js.map +1 -0
- package/dist/package.json +60 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,1348 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.seriesDescription = void 0;
|
|
4
|
+
const descriptions_1 = require("../../shared/descriptions");
|
|
5
|
+
const list_1 = require("./list");
|
|
6
|
+
const get_1 = require("./get");
|
|
7
|
+
const updateMetadata_1 = require("./updateMetadata");
|
|
8
|
+
const showOnlyForSeries = {
|
|
9
|
+
resource: ['series'],
|
|
10
|
+
};
|
|
11
|
+
exports.seriesDescription = [
|
|
12
|
+
{
|
|
13
|
+
displayName: 'Operation',
|
|
14
|
+
name: 'operation',
|
|
15
|
+
type: 'options',
|
|
16
|
+
noDataExpression: true,
|
|
17
|
+
displayOptions: {
|
|
18
|
+
show: showOnlyForSeries,
|
|
19
|
+
},
|
|
20
|
+
options: [
|
|
21
|
+
{
|
|
22
|
+
name: 'Add Alternate Title',
|
|
23
|
+
value: 'addAlternateTitle',
|
|
24
|
+
action: 'Add alternate title',
|
|
25
|
+
description: 'Add an alternate title to a series',
|
|
26
|
+
routing: {
|
|
27
|
+
request: {
|
|
28
|
+
method: 'POST',
|
|
29
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/alternate-titles',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Add External Link',
|
|
35
|
+
value: 'addExternalLink',
|
|
36
|
+
action: 'Add external link',
|
|
37
|
+
description: 'Add an external link to a series',
|
|
38
|
+
routing: {
|
|
39
|
+
request: {
|
|
40
|
+
method: 'POST',
|
|
41
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/external-links',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'Add External Rating',
|
|
47
|
+
value: 'addExternalRating',
|
|
48
|
+
action: 'Add external rating',
|
|
49
|
+
description: 'Add an external rating to a series',
|
|
50
|
+
routing: {
|
|
51
|
+
request: {
|
|
52
|
+
method: 'POST',
|
|
53
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/external-ratings',
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'Analyze',
|
|
59
|
+
value: 'analyze',
|
|
60
|
+
action: 'Analyze all books in a series',
|
|
61
|
+
description: 'Trigger analysis of all books in a series',
|
|
62
|
+
routing: {
|
|
63
|
+
request: {
|
|
64
|
+
method: 'POST',
|
|
65
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/analyze',
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: 'Analyze Unanalyzed',
|
|
71
|
+
value: 'analyzeUnanalyzed',
|
|
72
|
+
action: 'Analyze unanalyzed books',
|
|
73
|
+
description: 'Trigger analysis of only unanalyzed books in a series',
|
|
74
|
+
routing: {
|
|
75
|
+
request: {
|
|
76
|
+
method: 'POST',
|
|
77
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/analyze-unanalyzed',
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: 'Add Sharing Tag',
|
|
83
|
+
value: 'addSharingTag',
|
|
84
|
+
action: 'Add sharing tag to series',
|
|
85
|
+
description: 'Add a sharing tag to a series',
|
|
86
|
+
routing: {
|
|
87
|
+
request: {
|
|
88
|
+
method: 'POST',
|
|
89
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/sharing-tags',
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'Delete Alternate Title',
|
|
95
|
+
value: 'deleteAlternateTitle',
|
|
96
|
+
action: 'Delete alternate title',
|
|
97
|
+
description: 'Delete an alternate title from a series',
|
|
98
|
+
routing: {
|
|
99
|
+
request: {
|
|
100
|
+
method: 'DELETE',
|
|
101
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/alternate-titles/{{$parameter.alternateTitleId}}',
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
name: 'Delete Cover',
|
|
107
|
+
value: 'deleteCover',
|
|
108
|
+
action: 'Delete cover',
|
|
109
|
+
description: 'Delete a cover from a series',
|
|
110
|
+
routing: {
|
|
111
|
+
request: {
|
|
112
|
+
method: 'DELETE',
|
|
113
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/covers/{{$parameter.coverId}}',
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
name: 'Delete External Link',
|
|
119
|
+
value: 'deleteExternalLink',
|
|
120
|
+
action: 'Delete external link',
|
|
121
|
+
description: 'Delete an external link from a series',
|
|
122
|
+
routing: {
|
|
123
|
+
request: {
|
|
124
|
+
method: 'DELETE',
|
|
125
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/external-links/{{$parameter.externalLinkSource}}',
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: 'Delete External Rating',
|
|
131
|
+
value: 'deleteExternalRating',
|
|
132
|
+
action: 'Delete external rating',
|
|
133
|
+
description: 'Delete an external rating from a series',
|
|
134
|
+
routing: {
|
|
135
|
+
request: {
|
|
136
|
+
method: 'DELETE',
|
|
137
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/external-ratings/{{$parameter.externalRatingSource}}',
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
name: 'Delete Rating',
|
|
143
|
+
value: 'deleteRating',
|
|
144
|
+
action: 'Delete user rating',
|
|
145
|
+
description: 'Delete user rating for a series',
|
|
146
|
+
routing: {
|
|
147
|
+
request: {
|
|
148
|
+
method: 'DELETE',
|
|
149
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/rating',
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
name: 'Download',
|
|
155
|
+
value: 'download',
|
|
156
|
+
action: 'Download series',
|
|
157
|
+
description: 'Download all books in a series as an archive',
|
|
158
|
+
routing: {
|
|
159
|
+
request: {
|
|
160
|
+
method: 'GET',
|
|
161
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/download',
|
|
162
|
+
encoding: 'arraybuffer',
|
|
163
|
+
returnFullResponse: true,
|
|
164
|
+
},
|
|
165
|
+
output: {
|
|
166
|
+
postReceive: [
|
|
167
|
+
async function (_items, response) {
|
|
168
|
+
var _a, _b;
|
|
169
|
+
const contentType = ((_a = response === null || response === void 0 ? void 0 : response.headers) === null || _a === void 0 ? void 0 : _a['content-type']) || 'application/zip';
|
|
170
|
+
const contentDisposition = (_b = response === null || response === void 0 ? void 0 : response.headers) === null || _b === void 0 ? void 0 : _b['content-disposition'];
|
|
171
|
+
let filename = 'series.zip';
|
|
172
|
+
if (contentDisposition) {
|
|
173
|
+
const match = contentDisposition.match(/filename="?([^";\n]+)"?/);
|
|
174
|
+
if (match) {
|
|
175
|
+
filename = match[1];
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
const binaryData = await this.helpers.prepareBinaryData(response === null || response === void 0 ? void 0 : response.body, filename, contentType);
|
|
179
|
+
return [
|
|
180
|
+
{
|
|
181
|
+
json: {},
|
|
182
|
+
binary: {
|
|
183
|
+
data: binaryData,
|
|
184
|
+
},
|
|
185
|
+
},
|
|
186
|
+
];
|
|
187
|
+
},
|
|
188
|
+
],
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
name: 'Generate Thumbnails',
|
|
194
|
+
value: 'generateThumbnails',
|
|
195
|
+
action: 'Generate thumbnails',
|
|
196
|
+
description: 'Generate thumbnails for all books in the series',
|
|
197
|
+
routing: {
|
|
198
|
+
request: {
|
|
199
|
+
method: 'POST',
|
|
200
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/thumbnails/generate',
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
name: 'Get',
|
|
206
|
+
value: 'get',
|
|
207
|
+
action: 'Get a series',
|
|
208
|
+
description: 'Get the data of a single series',
|
|
209
|
+
routing: {
|
|
210
|
+
request: {
|
|
211
|
+
method: 'GET',
|
|
212
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}',
|
|
213
|
+
},
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
name: 'Get Alternate Title',
|
|
218
|
+
value: 'getAlternateTitle',
|
|
219
|
+
action: 'Get alternate title',
|
|
220
|
+
description: 'Get a specific alternate title by ID',
|
|
221
|
+
routing: {
|
|
222
|
+
request: {
|
|
223
|
+
method: 'GET',
|
|
224
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/alternate-titles/{{$parameter.alternateTitleId}}',
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
name: 'Get Alternate Titles',
|
|
230
|
+
value: 'getAlternateTitles',
|
|
231
|
+
action: 'Get alternate titles',
|
|
232
|
+
description: 'Get all alternate titles for a series',
|
|
233
|
+
routing: {
|
|
234
|
+
request: {
|
|
235
|
+
method: 'GET',
|
|
236
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/alternate-titles',
|
|
237
|
+
},
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
name: 'Get Average Rating',
|
|
242
|
+
value: 'getAverageRating',
|
|
243
|
+
action: 'Get average rating',
|
|
244
|
+
description: 'Get the average rating for a series',
|
|
245
|
+
routing: {
|
|
246
|
+
request: {
|
|
247
|
+
method: 'GET',
|
|
248
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/ratings/average',
|
|
249
|
+
},
|
|
250
|
+
},
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
name: 'Get Books',
|
|
254
|
+
value: 'getBooks',
|
|
255
|
+
action: 'Get books in a series',
|
|
256
|
+
description: 'Get all books in a series',
|
|
257
|
+
routing: {
|
|
258
|
+
request: {
|
|
259
|
+
method: 'GET',
|
|
260
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/books',
|
|
261
|
+
},
|
|
262
|
+
},
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
name: 'Get Books With Errors',
|
|
266
|
+
value: 'getBooksWithErrors',
|
|
267
|
+
action: 'Get books with errors',
|
|
268
|
+
description: 'Get books with processing errors in the series',
|
|
269
|
+
routing: {
|
|
270
|
+
request: {
|
|
271
|
+
method: 'GET',
|
|
272
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/books/with-errors',
|
|
273
|
+
},
|
|
274
|
+
},
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
name: 'Get Cover',
|
|
278
|
+
value: 'getCover',
|
|
279
|
+
action: 'Get series cover',
|
|
280
|
+
description: 'Get the current cover for a series',
|
|
281
|
+
routing: {
|
|
282
|
+
request: {
|
|
283
|
+
method: 'GET',
|
|
284
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/cover',
|
|
285
|
+
},
|
|
286
|
+
},
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
name: 'Get Cover By ID',
|
|
290
|
+
value: 'getCoverById',
|
|
291
|
+
action: 'Get cover by ID',
|
|
292
|
+
description: 'Get a specific cover by its ID',
|
|
293
|
+
routing: {
|
|
294
|
+
request: {
|
|
295
|
+
method: 'GET',
|
|
296
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/covers/{{$parameter.coverId}}',
|
|
297
|
+
},
|
|
298
|
+
},
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
name: 'Get Cover Image',
|
|
302
|
+
value: 'getCoverImage',
|
|
303
|
+
action: 'Get cover image',
|
|
304
|
+
description: 'Get the actual image file for a specific cover',
|
|
305
|
+
routing: {
|
|
306
|
+
request: {
|
|
307
|
+
method: 'GET',
|
|
308
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/covers/{{$parameter.coverId}}/image',
|
|
309
|
+
headers: {
|
|
310
|
+
Accept: 'image/jpeg',
|
|
311
|
+
},
|
|
312
|
+
encoding: 'arraybuffer',
|
|
313
|
+
returnFullResponse: true,
|
|
314
|
+
},
|
|
315
|
+
output: {
|
|
316
|
+
postReceive: [
|
|
317
|
+
async function (_items, response) {
|
|
318
|
+
var _a;
|
|
319
|
+
const contentType = ((_a = response === null || response === void 0 ? void 0 : response.headers) === null || _a === void 0 ? void 0 : _a['content-type']) || 'image/jpeg';
|
|
320
|
+
const binaryData = await this.helpers.prepareBinaryData(response === null || response === void 0 ? void 0 : response.body, 'cover.jpg', contentType);
|
|
321
|
+
return [
|
|
322
|
+
{
|
|
323
|
+
json: {},
|
|
324
|
+
binary: {
|
|
325
|
+
data: binaryData,
|
|
326
|
+
},
|
|
327
|
+
},
|
|
328
|
+
];
|
|
329
|
+
},
|
|
330
|
+
],
|
|
331
|
+
},
|
|
332
|
+
},
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
name: 'Get Cover Source',
|
|
336
|
+
value: 'getCoverSource',
|
|
337
|
+
action: 'Get cover source',
|
|
338
|
+
description: 'Get the source of the current cover',
|
|
339
|
+
routing: {
|
|
340
|
+
request: {
|
|
341
|
+
method: 'GET',
|
|
342
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/cover/source',
|
|
343
|
+
},
|
|
344
|
+
},
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
name: 'Get External Links',
|
|
348
|
+
value: 'getExternalLinks',
|
|
349
|
+
action: 'Get external links',
|
|
350
|
+
description: 'Get all external links for a series',
|
|
351
|
+
routing: {
|
|
352
|
+
request: {
|
|
353
|
+
method: 'GET',
|
|
354
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/external-links',
|
|
355
|
+
},
|
|
356
|
+
},
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
name: 'Get External Ratings',
|
|
360
|
+
value: 'getExternalRatings',
|
|
361
|
+
action: 'Get external ratings',
|
|
362
|
+
description: 'Get all external ratings for a series',
|
|
363
|
+
routing: {
|
|
364
|
+
request: {
|
|
365
|
+
method: 'GET',
|
|
366
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/external-ratings',
|
|
367
|
+
},
|
|
368
|
+
},
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
name: 'Get Full',
|
|
372
|
+
value: 'getFull',
|
|
373
|
+
action: 'Get full series with metadata',
|
|
374
|
+
description: 'Get series with complete metadata, genres, tags, alternate titles, and external data',
|
|
375
|
+
routing: {
|
|
376
|
+
request: {
|
|
377
|
+
method: 'GET',
|
|
378
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/full',
|
|
379
|
+
},
|
|
380
|
+
},
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
name: 'Get Full Metadata',
|
|
384
|
+
value: 'getFullMetadata',
|
|
385
|
+
action: 'Get full series metadata',
|
|
386
|
+
description: 'Get comprehensive metadata with lock states, genres, tags, and external data',
|
|
387
|
+
routing: {
|
|
388
|
+
request: {
|
|
389
|
+
method: 'GET',
|
|
390
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/metadata/full',
|
|
391
|
+
},
|
|
392
|
+
},
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
name: 'Get Genres',
|
|
396
|
+
value: 'getGenres',
|
|
397
|
+
action: 'Get genres of a series',
|
|
398
|
+
description: 'Get genres for a series',
|
|
399
|
+
routing: {
|
|
400
|
+
request: {
|
|
401
|
+
method: 'GET',
|
|
402
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/genres',
|
|
403
|
+
},
|
|
404
|
+
},
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
name: 'Get In Progress',
|
|
408
|
+
value: 'getInProgress',
|
|
409
|
+
action: 'Get in progress series',
|
|
410
|
+
description: 'Get series currently being read',
|
|
411
|
+
routing: {
|
|
412
|
+
request: {
|
|
413
|
+
method: 'GET',
|
|
414
|
+
url: '/api/v1/series/in-progress',
|
|
415
|
+
},
|
|
416
|
+
},
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
name: 'Get Metadata Locks',
|
|
420
|
+
value: 'getMetadataLocks',
|
|
421
|
+
action: 'Get metadata lock states',
|
|
422
|
+
description: 'Get which metadata fields are locked from automatic updates',
|
|
423
|
+
routing: {
|
|
424
|
+
request: {
|
|
425
|
+
method: 'GET',
|
|
426
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/metadata/locks',
|
|
427
|
+
},
|
|
428
|
+
},
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
name: 'Get Rating',
|
|
432
|
+
value: 'getRating',
|
|
433
|
+
action: 'Get user rating',
|
|
434
|
+
description: 'Get user rating for a series',
|
|
435
|
+
routing: {
|
|
436
|
+
request: {
|
|
437
|
+
method: 'GET',
|
|
438
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/rating',
|
|
439
|
+
},
|
|
440
|
+
},
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
name: 'Get Recently Added',
|
|
444
|
+
value: 'recentlyAdded',
|
|
445
|
+
action: 'Get recently added series',
|
|
446
|
+
description: 'Get recently added series',
|
|
447
|
+
routing: {
|
|
448
|
+
request: {
|
|
449
|
+
method: 'GET',
|
|
450
|
+
url: '/api/v1/series/recently-added',
|
|
451
|
+
},
|
|
452
|
+
},
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
name: 'Get Recently Updated',
|
|
456
|
+
value: 'recentlyUpdated',
|
|
457
|
+
action: 'Get recently updated series',
|
|
458
|
+
description: 'Get recently updated series',
|
|
459
|
+
routing: {
|
|
460
|
+
request: {
|
|
461
|
+
method: 'GET',
|
|
462
|
+
url: '/api/v1/series/recently-updated',
|
|
463
|
+
},
|
|
464
|
+
},
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
name: 'Get Selected Cover',
|
|
468
|
+
value: 'getSelectedCover',
|
|
469
|
+
action: 'Get selected cover',
|
|
470
|
+
description: 'Get the currently selected cover for a series',
|
|
471
|
+
routing: {
|
|
472
|
+
request: {
|
|
473
|
+
method: 'GET',
|
|
474
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/covers/selected',
|
|
475
|
+
},
|
|
476
|
+
},
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
name: 'Get Sharing Tags',
|
|
480
|
+
value: 'getSharingTags',
|
|
481
|
+
action: 'Get sharing tags',
|
|
482
|
+
description: 'Get all sharing tags for a series',
|
|
483
|
+
routing: {
|
|
484
|
+
request: {
|
|
485
|
+
method: 'GET',
|
|
486
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/sharing-tags',
|
|
487
|
+
},
|
|
488
|
+
},
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
name: 'Get Tags',
|
|
492
|
+
value: 'getTags',
|
|
493
|
+
action: 'Get tags of a series',
|
|
494
|
+
description: 'Get tags for a series',
|
|
495
|
+
routing: {
|
|
496
|
+
request: {
|
|
497
|
+
method: 'GET',
|
|
498
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/tags',
|
|
499
|
+
},
|
|
500
|
+
},
|
|
501
|
+
},
|
|
502
|
+
{
|
|
503
|
+
name: 'Get Thumbnail',
|
|
504
|
+
value: 'getThumbnail',
|
|
505
|
+
action: 'Get series thumbnail',
|
|
506
|
+
description: 'Get the thumbnail image for a series',
|
|
507
|
+
routing: {
|
|
508
|
+
request: {
|
|
509
|
+
method: 'GET',
|
|
510
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/thumbnail',
|
|
511
|
+
headers: {
|
|
512
|
+
Accept: 'image/jpeg',
|
|
513
|
+
},
|
|
514
|
+
encoding: 'arraybuffer',
|
|
515
|
+
returnFullResponse: true,
|
|
516
|
+
},
|
|
517
|
+
output: {
|
|
518
|
+
postReceive: [
|
|
519
|
+
async function (_items, response) {
|
|
520
|
+
var _a;
|
|
521
|
+
const contentType = ((_a = response === null || response === void 0 ? void 0 : response.headers) === null || _a === void 0 ? void 0 : _a['content-type']) || 'image/jpeg';
|
|
522
|
+
const binaryData = await this.helpers.prepareBinaryData(response === null || response === void 0 ? void 0 : response.body, 'thumbnail.jpg', contentType);
|
|
523
|
+
return [
|
|
524
|
+
{
|
|
525
|
+
json: {},
|
|
526
|
+
binary: {
|
|
527
|
+
data: binaryData,
|
|
528
|
+
},
|
|
529
|
+
},
|
|
530
|
+
];
|
|
531
|
+
},
|
|
532
|
+
],
|
|
533
|
+
},
|
|
534
|
+
},
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
name: 'List',
|
|
538
|
+
value: 'list',
|
|
539
|
+
action: 'List series',
|
|
540
|
+
description: 'List series with optional filters',
|
|
541
|
+
routing: {
|
|
542
|
+
request: {
|
|
543
|
+
method: 'GET',
|
|
544
|
+
url: '/api/v1/series',
|
|
545
|
+
},
|
|
546
|
+
},
|
|
547
|
+
},
|
|
548
|
+
{
|
|
549
|
+
name: 'List (Advanced)',
|
|
550
|
+
value: 'listAdvanced',
|
|
551
|
+
action: 'Search and filter series',
|
|
552
|
+
description: 'Advanced search and filter for series with complex criteria',
|
|
553
|
+
routing: {
|
|
554
|
+
request: {
|
|
555
|
+
method: 'POST',
|
|
556
|
+
url: '/api/v1/series/list',
|
|
557
|
+
},
|
|
558
|
+
},
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
name: 'List Covers',
|
|
562
|
+
value: 'listCovers',
|
|
563
|
+
action: 'List available covers',
|
|
564
|
+
description: 'List all available covers for a series',
|
|
565
|
+
routing: {
|
|
566
|
+
request: {
|
|
567
|
+
method: 'GET',
|
|
568
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/covers',
|
|
569
|
+
},
|
|
570
|
+
},
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
name: 'Mark As Read',
|
|
574
|
+
value: 'markAsRead',
|
|
575
|
+
action: 'Mark series as read',
|
|
576
|
+
description: 'Mark all books in a series as read',
|
|
577
|
+
routing: {
|
|
578
|
+
request: {
|
|
579
|
+
method: 'POST',
|
|
580
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/read',
|
|
581
|
+
},
|
|
582
|
+
},
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
name: 'Mark As Unread',
|
|
586
|
+
value: 'markAsUnread',
|
|
587
|
+
action: 'Mark series as unread',
|
|
588
|
+
description: 'Mark all books in a series as unread',
|
|
589
|
+
routing: {
|
|
590
|
+
request: {
|
|
591
|
+
method: 'POST',
|
|
592
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/unread',
|
|
593
|
+
},
|
|
594
|
+
},
|
|
595
|
+
},
|
|
596
|
+
{
|
|
597
|
+
name: 'Purge Deleted',
|
|
598
|
+
value: 'purgeDeleted',
|
|
599
|
+
action: 'Purge deleted books',
|
|
600
|
+
description: 'Permanently remove books marked as deleted from the series',
|
|
601
|
+
routing: {
|
|
602
|
+
request: {
|
|
603
|
+
method: 'DELETE',
|
|
604
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/purge-deleted',
|
|
605
|
+
},
|
|
606
|
+
},
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
name: 'Remove Genre',
|
|
610
|
+
value: 'removeGenre',
|
|
611
|
+
action: 'Remove genre',
|
|
612
|
+
description: 'Remove a genre from a series',
|
|
613
|
+
routing: {
|
|
614
|
+
request: {
|
|
615
|
+
method: 'DELETE',
|
|
616
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/genres/{{$parameter.genreId}}',
|
|
617
|
+
},
|
|
618
|
+
},
|
|
619
|
+
},
|
|
620
|
+
{
|
|
621
|
+
name: 'Remove Sharing Tag',
|
|
622
|
+
value: 'removeSharingTag',
|
|
623
|
+
action: 'Remove sharing tag',
|
|
624
|
+
description: 'Remove a sharing tag from a series',
|
|
625
|
+
routing: {
|
|
626
|
+
request: {
|
|
627
|
+
method: 'DELETE',
|
|
628
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/sharing-tags/{{$parameter.sharingTagId}}',
|
|
629
|
+
},
|
|
630
|
+
},
|
|
631
|
+
},
|
|
632
|
+
{
|
|
633
|
+
name: 'Remove Tag',
|
|
634
|
+
value: 'removeTag',
|
|
635
|
+
action: 'Remove tag',
|
|
636
|
+
description: 'Remove a tag from a series',
|
|
637
|
+
routing: {
|
|
638
|
+
request: {
|
|
639
|
+
method: 'DELETE',
|
|
640
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/tags/{{$parameter.tagId}}',
|
|
641
|
+
},
|
|
642
|
+
},
|
|
643
|
+
},
|
|
644
|
+
{
|
|
645
|
+
name: 'Search',
|
|
646
|
+
value: 'search',
|
|
647
|
+
action: 'Search series',
|
|
648
|
+
description: 'Search series by name',
|
|
649
|
+
routing: {
|
|
650
|
+
request: {
|
|
651
|
+
method: 'POST',
|
|
652
|
+
url: '/api/v1/series/search',
|
|
653
|
+
},
|
|
654
|
+
},
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
name: 'Select Cover',
|
|
658
|
+
value: 'selectCover',
|
|
659
|
+
action: 'Select cover',
|
|
660
|
+
description: 'Select a cover as the current cover for a series',
|
|
661
|
+
routing: {
|
|
662
|
+
request: {
|
|
663
|
+
method: 'POST',
|
|
664
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/covers/{{$parameter.coverId}}/select',
|
|
665
|
+
},
|
|
666
|
+
},
|
|
667
|
+
},
|
|
668
|
+
{
|
|
669
|
+
name: 'Set Cover Source',
|
|
670
|
+
value: 'setCoverSource',
|
|
671
|
+
action: 'Set cover source',
|
|
672
|
+
description: 'Set the source of the cover for a series',
|
|
673
|
+
routing: {
|
|
674
|
+
request: {
|
|
675
|
+
method: 'PUT',
|
|
676
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/cover/source',
|
|
677
|
+
},
|
|
678
|
+
},
|
|
679
|
+
},
|
|
680
|
+
{
|
|
681
|
+
name: 'Set Genres',
|
|
682
|
+
value: 'setGenres',
|
|
683
|
+
action: 'Set genres for a series',
|
|
684
|
+
description: 'Set genres for a series (replaces existing)',
|
|
685
|
+
routing: {
|
|
686
|
+
request: {
|
|
687
|
+
method: 'PUT',
|
|
688
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/genres',
|
|
689
|
+
},
|
|
690
|
+
},
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
name: 'Set Metadata Locks',
|
|
694
|
+
value: 'setMetadataLocks',
|
|
695
|
+
action: 'Set metadata lock states',
|
|
696
|
+
description: 'Set which metadata fields are locked from automatic updates',
|
|
697
|
+
routing: {
|
|
698
|
+
request: {
|
|
699
|
+
method: 'PUT',
|
|
700
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/metadata/locks',
|
|
701
|
+
},
|
|
702
|
+
},
|
|
703
|
+
},
|
|
704
|
+
{
|
|
705
|
+
name: 'Set Rating',
|
|
706
|
+
value: 'setRating',
|
|
707
|
+
action: 'Set user rating',
|
|
708
|
+
description: 'Set user rating for a series',
|
|
709
|
+
routing: {
|
|
710
|
+
request: {
|
|
711
|
+
method: 'PUT',
|
|
712
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/rating',
|
|
713
|
+
},
|
|
714
|
+
},
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
name: 'Set Tags',
|
|
718
|
+
value: 'setTags',
|
|
719
|
+
action: 'Set tags for a series',
|
|
720
|
+
description: 'Set tags for a series (replaces existing)',
|
|
721
|
+
routing: {
|
|
722
|
+
request: {
|
|
723
|
+
method: 'PUT',
|
|
724
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/tags',
|
|
725
|
+
},
|
|
726
|
+
},
|
|
727
|
+
},
|
|
728
|
+
{
|
|
729
|
+
name: 'Update Alternate Title',
|
|
730
|
+
value: 'updateAlternateTitle',
|
|
731
|
+
action: 'Update alternate title',
|
|
732
|
+
description: 'Update an alternate title for a series',
|
|
733
|
+
routing: {
|
|
734
|
+
request: {
|
|
735
|
+
method: 'PUT',
|
|
736
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/alternate-titles/{{$parameter.alternateTitleId}}',
|
|
737
|
+
},
|
|
738
|
+
},
|
|
739
|
+
},
|
|
740
|
+
{
|
|
741
|
+
name: 'Update Metadata',
|
|
742
|
+
value: 'updateMetadata',
|
|
743
|
+
action: 'Update series metadata',
|
|
744
|
+
description: 'Update the metadata of a series',
|
|
745
|
+
routing: {
|
|
746
|
+
request: {
|
|
747
|
+
method: 'PATCH',
|
|
748
|
+
url: '=/api/v1/series/{{$parameter.seriesId}}/metadata',
|
|
749
|
+
},
|
|
750
|
+
},
|
|
751
|
+
},
|
|
752
|
+
],
|
|
753
|
+
default: 'list',
|
|
754
|
+
},
|
|
755
|
+
{
|
|
756
|
+
...descriptions_1.seriesSelect,
|
|
757
|
+
displayOptions: {
|
|
758
|
+
show: {
|
|
759
|
+
...showOnlyForSeries,
|
|
760
|
+
operation: [
|
|
761
|
+
'addAlternateTitle',
|
|
762
|
+
'addExternalLink',
|
|
763
|
+
'addExternalRating',
|
|
764
|
+
'addSharingTag',
|
|
765
|
+
'analyze',
|
|
766
|
+
'analyzeUnanalyzed',
|
|
767
|
+
'deleteAlternateTitle',
|
|
768
|
+
'deleteCover',
|
|
769
|
+
'deleteExternalLink',
|
|
770
|
+
'deleteExternalRating',
|
|
771
|
+
'deleteRating',
|
|
772
|
+
'download',
|
|
773
|
+
'generateThumbnails',
|
|
774
|
+
'get',
|
|
775
|
+
'getAlternateTitle',
|
|
776
|
+
'getAlternateTitles',
|
|
777
|
+
'getAverageRating',
|
|
778
|
+
'getBooks',
|
|
779
|
+
'getBooksWithErrors',
|
|
780
|
+
'getCover',
|
|
781
|
+
'getCoverById',
|
|
782
|
+
'getCoverImage',
|
|
783
|
+
'getCoverSource',
|
|
784
|
+
'getExternalLinks',
|
|
785
|
+
'getExternalRatings',
|
|
786
|
+
'getFull',
|
|
787
|
+
'getFullMetadata',
|
|
788
|
+
'getGenres',
|
|
789
|
+
'getMetadataLocks',
|
|
790
|
+
'getRating',
|
|
791
|
+
'getSelectedCover',
|
|
792
|
+
'getSharingTags',
|
|
793
|
+
'getTags',
|
|
794
|
+
'getThumbnail',
|
|
795
|
+
'listCovers',
|
|
796
|
+
'markAsRead',
|
|
797
|
+
'markAsUnread',
|
|
798
|
+
'purgeDeleted',
|
|
799
|
+
'removeGenre',
|
|
800
|
+
'removeSharingTag',
|
|
801
|
+
'removeTag',
|
|
802
|
+
'selectCover',
|
|
803
|
+
'setCoverSource',
|
|
804
|
+
'setGenres',
|
|
805
|
+
'setMetadataLocks',
|
|
806
|
+
'setRating',
|
|
807
|
+
'setTags',
|
|
808
|
+
'updateAlternateTitle',
|
|
809
|
+
'updateMetadata',
|
|
810
|
+
],
|
|
811
|
+
},
|
|
812
|
+
},
|
|
813
|
+
},
|
|
814
|
+
{
|
|
815
|
+
displayName: 'Alternate Title ID',
|
|
816
|
+
name: 'alternateTitleId',
|
|
817
|
+
type: 'string',
|
|
818
|
+
default: '',
|
|
819
|
+
required: true,
|
|
820
|
+
displayOptions: {
|
|
821
|
+
show: {
|
|
822
|
+
resource: ['series'],
|
|
823
|
+
operation: ['deleteAlternateTitle', 'getAlternateTitle', 'updateAlternateTitle'],
|
|
824
|
+
},
|
|
825
|
+
},
|
|
826
|
+
description: 'The ID of the alternate title',
|
|
827
|
+
},
|
|
828
|
+
{
|
|
829
|
+
displayName: 'Title',
|
|
830
|
+
name: 'alternateTitle',
|
|
831
|
+
type: 'string',
|
|
832
|
+
default: '',
|
|
833
|
+
required: true,
|
|
834
|
+
displayOptions: {
|
|
835
|
+
show: {
|
|
836
|
+
resource: ['series'],
|
|
837
|
+
operation: ['addAlternateTitle', 'updateAlternateTitle'],
|
|
838
|
+
},
|
|
839
|
+
},
|
|
840
|
+
description: 'The alternate title text',
|
|
841
|
+
routing: {
|
|
842
|
+
send: {
|
|
843
|
+
type: 'body',
|
|
844
|
+
property: 'title',
|
|
845
|
+
},
|
|
846
|
+
},
|
|
847
|
+
},
|
|
848
|
+
{
|
|
849
|
+
displayName: 'Cover ID',
|
|
850
|
+
name: 'coverId',
|
|
851
|
+
type: 'string',
|
|
852
|
+
default: '',
|
|
853
|
+
required: true,
|
|
854
|
+
displayOptions: {
|
|
855
|
+
show: {
|
|
856
|
+
resource: ['series'],
|
|
857
|
+
operation: ['deleteCover', 'getCoverById', 'getCoverImage', 'selectCover'],
|
|
858
|
+
},
|
|
859
|
+
},
|
|
860
|
+
description: 'The ID of the cover',
|
|
861
|
+
},
|
|
862
|
+
{
|
|
863
|
+
displayName: 'Cover Source',
|
|
864
|
+
name: 'coverSource',
|
|
865
|
+
type: 'options',
|
|
866
|
+
default: 'auto',
|
|
867
|
+
required: true,
|
|
868
|
+
displayOptions: {
|
|
869
|
+
show: {
|
|
870
|
+
resource: ['series'],
|
|
871
|
+
operation: ['setCoverSource'],
|
|
872
|
+
},
|
|
873
|
+
},
|
|
874
|
+
options: [
|
|
875
|
+
{
|
|
876
|
+
name: 'Auto',
|
|
877
|
+
value: 'auto',
|
|
878
|
+
description: 'Automatically select the best cover',
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
name: 'First Book',
|
|
882
|
+
value: 'first_book',
|
|
883
|
+
description: 'Use the first book cover',
|
|
884
|
+
},
|
|
885
|
+
{
|
|
886
|
+
name: 'Custom',
|
|
887
|
+
value: 'custom',
|
|
888
|
+
description: 'Use a custom uploaded cover',
|
|
889
|
+
},
|
|
890
|
+
],
|
|
891
|
+
description: 'The source to use for the series cover',
|
|
892
|
+
routing: {
|
|
893
|
+
send: {
|
|
894
|
+
type: 'body',
|
|
895
|
+
property: 'source',
|
|
896
|
+
},
|
|
897
|
+
},
|
|
898
|
+
},
|
|
899
|
+
{
|
|
900
|
+
displayName: 'External Link Source',
|
|
901
|
+
name: 'externalLinkSource',
|
|
902
|
+
type: 'string',
|
|
903
|
+
default: '',
|
|
904
|
+
required: true,
|
|
905
|
+
displayOptions: {
|
|
906
|
+
show: {
|
|
907
|
+
resource: ['series'],
|
|
908
|
+
operation: ['addExternalLink', 'deleteExternalLink'],
|
|
909
|
+
},
|
|
910
|
+
},
|
|
911
|
+
description: 'The source identifier for the external link (e.g., anilist, myanimelist)',
|
|
912
|
+
routing: {
|
|
913
|
+
send: {
|
|
914
|
+
type: 'body',
|
|
915
|
+
property: 'source',
|
|
916
|
+
},
|
|
917
|
+
},
|
|
918
|
+
},
|
|
919
|
+
{
|
|
920
|
+
displayName: 'External Link URL',
|
|
921
|
+
name: 'externalLinkUrl',
|
|
922
|
+
type: 'string',
|
|
923
|
+
default: '',
|
|
924
|
+
required: true,
|
|
925
|
+
displayOptions: {
|
|
926
|
+
show: {
|
|
927
|
+
resource: ['series'],
|
|
928
|
+
operation: ['addExternalLink'],
|
|
929
|
+
},
|
|
930
|
+
},
|
|
931
|
+
description: 'The URL for the external link',
|
|
932
|
+
routing: {
|
|
933
|
+
send: {
|
|
934
|
+
type: 'body',
|
|
935
|
+
property: 'url',
|
|
936
|
+
},
|
|
937
|
+
},
|
|
938
|
+
},
|
|
939
|
+
{
|
|
940
|
+
displayName: 'External Rating Source',
|
|
941
|
+
name: 'externalRatingSource',
|
|
942
|
+
type: 'string',
|
|
943
|
+
default: '',
|
|
944
|
+
required: true,
|
|
945
|
+
displayOptions: {
|
|
946
|
+
show: {
|
|
947
|
+
resource: ['series'],
|
|
948
|
+
operation: ['addExternalRating', 'deleteExternalRating'],
|
|
949
|
+
},
|
|
950
|
+
},
|
|
951
|
+
description: 'The source identifier for the external rating (e.g., anilist, myanimelist)',
|
|
952
|
+
routing: {
|
|
953
|
+
send: {
|
|
954
|
+
type: 'body',
|
|
955
|
+
property: 'source',
|
|
956
|
+
},
|
|
957
|
+
},
|
|
958
|
+
},
|
|
959
|
+
{
|
|
960
|
+
displayName: 'External Rating Value',
|
|
961
|
+
name: 'externalRatingValue',
|
|
962
|
+
type: 'number',
|
|
963
|
+
default: 0,
|
|
964
|
+
required: true,
|
|
965
|
+
displayOptions: {
|
|
966
|
+
show: {
|
|
967
|
+
resource: ['series'],
|
|
968
|
+
operation: ['addExternalRating'],
|
|
969
|
+
},
|
|
970
|
+
},
|
|
971
|
+
description: 'The rating value',
|
|
972
|
+
routing: {
|
|
973
|
+
send: {
|
|
974
|
+
type: 'body',
|
|
975
|
+
property: 'rating',
|
|
976
|
+
},
|
|
977
|
+
},
|
|
978
|
+
},
|
|
979
|
+
{
|
|
980
|
+
displayName: 'Genre ID',
|
|
981
|
+
name: 'genreId',
|
|
982
|
+
type: 'string',
|
|
983
|
+
default: '',
|
|
984
|
+
required: true,
|
|
985
|
+
displayOptions: {
|
|
986
|
+
show: {
|
|
987
|
+
resource: ['series'],
|
|
988
|
+
operation: ['removeGenre'],
|
|
989
|
+
},
|
|
990
|
+
},
|
|
991
|
+
description: 'The ID of the genre to remove',
|
|
992
|
+
},
|
|
993
|
+
{
|
|
994
|
+
displayName: 'Sharing Tag ID',
|
|
995
|
+
name: 'sharingTagToAdd',
|
|
996
|
+
type: 'string',
|
|
997
|
+
default: '',
|
|
998
|
+
required: true,
|
|
999
|
+
displayOptions: {
|
|
1000
|
+
show: {
|
|
1001
|
+
resource: ['series'],
|
|
1002
|
+
operation: ['addSharingTag'],
|
|
1003
|
+
},
|
|
1004
|
+
},
|
|
1005
|
+
description: 'The ID of the sharing tag to add',
|
|
1006
|
+
routing: {
|
|
1007
|
+
send: {
|
|
1008
|
+
type: 'body',
|
|
1009
|
+
property: 'sharing_tag_id',
|
|
1010
|
+
},
|
|
1011
|
+
},
|
|
1012
|
+
},
|
|
1013
|
+
{
|
|
1014
|
+
displayName: 'Sharing Tag ID',
|
|
1015
|
+
name: 'sharingTagId',
|
|
1016
|
+
type: 'string',
|
|
1017
|
+
default: '',
|
|
1018
|
+
required: true,
|
|
1019
|
+
displayOptions: {
|
|
1020
|
+
show: {
|
|
1021
|
+
resource: ['series'],
|
|
1022
|
+
operation: ['removeSharingTag'],
|
|
1023
|
+
},
|
|
1024
|
+
},
|
|
1025
|
+
description: 'The ID of the sharing tag to remove',
|
|
1026
|
+
},
|
|
1027
|
+
{
|
|
1028
|
+
displayName: 'Tag ID',
|
|
1029
|
+
name: 'tagId',
|
|
1030
|
+
type: 'string',
|
|
1031
|
+
default: '',
|
|
1032
|
+
required: true,
|
|
1033
|
+
displayOptions: {
|
|
1034
|
+
show: {
|
|
1035
|
+
resource: ['series'],
|
|
1036
|
+
operation: ['removeTag'],
|
|
1037
|
+
},
|
|
1038
|
+
},
|
|
1039
|
+
description: 'The ID of the tag to remove',
|
|
1040
|
+
},
|
|
1041
|
+
{
|
|
1042
|
+
displayName: 'Rating',
|
|
1043
|
+
name: 'rating',
|
|
1044
|
+
type: 'number',
|
|
1045
|
+
default: 0,
|
|
1046
|
+
required: true,
|
|
1047
|
+
typeOptions: {
|
|
1048
|
+
minValue: 0,
|
|
1049
|
+
maxValue: 5,
|
|
1050
|
+
},
|
|
1051
|
+
displayOptions: {
|
|
1052
|
+
show: {
|
|
1053
|
+
resource: ['series'],
|
|
1054
|
+
operation: ['setRating'],
|
|
1055
|
+
},
|
|
1056
|
+
},
|
|
1057
|
+
description: 'The rating value (0-5)',
|
|
1058
|
+
routing: {
|
|
1059
|
+
send: {
|
|
1060
|
+
type: 'body',
|
|
1061
|
+
property: 'rating',
|
|
1062
|
+
},
|
|
1063
|
+
},
|
|
1064
|
+
},
|
|
1065
|
+
{
|
|
1066
|
+
displayName: 'Search Query',
|
|
1067
|
+
name: 'searchQuery',
|
|
1068
|
+
type: 'string',
|
|
1069
|
+
default: '',
|
|
1070
|
+
required: true,
|
|
1071
|
+
displayOptions: {
|
|
1072
|
+
show: {
|
|
1073
|
+
resource: ['series'],
|
|
1074
|
+
operation: ['search'],
|
|
1075
|
+
},
|
|
1076
|
+
},
|
|
1077
|
+
description: 'The search query for series name',
|
|
1078
|
+
routing: {
|
|
1079
|
+
send: {
|
|
1080
|
+
type: 'body',
|
|
1081
|
+
property: 'query',
|
|
1082
|
+
},
|
|
1083
|
+
},
|
|
1084
|
+
},
|
|
1085
|
+
{
|
|
1086
|
+
displayName: 'Genres',
|
|
1087
|
+
name: 'genres',
|
|
1088
|
+
type: 'string',
|
|
1089
|
+
default: '',
|
|
1090
|
+
required: true,
|
|
1091
|
+
displayOptions: {
|
|
1092
|
+
show: {
|
|
1093
|
+
resource: ['series'],
|
|
1094
|
+
operation: ['setGenres'],
|
|
1095
|
+
},
|
|
1096
|
+
},
|
|
1097
|
+
description: 'Comma-separated list of genre names',
|
|
1098
|
+
routing: {
|
|
1099
|
+
send: {
|
|
1100
|
+
type: 'body',
|
|
1101
|
+
property: 'genres',
|
|
1102
|
+
preSend: [
|
|
1103
|
+
async function (requestOptions) {
|
|
1104
|
+
const genres = this.getNodeParameter('genres', 0);
|
|
1105
|
+
if (genres) {
|
|
1106
|
+
requestOptions.body.genres = genres
|
|
1107
|
+
.split(',')
|
|
1108
|
+
.map((g) => g.trim());
|
|
1109
|
+
}
|
|
1110
|
+
return requestOptions;
|
|
1111
|
+
},
|
|
1112
|
+
],
|
|
1113
|
+
},
|
|
1114
|
+
},
|
|
1115
|
+
},
|
|
1116
|
+
{
|
|
1117
|
+
displayName: 'Tags',
|
|
1118
|
+
name: 'tags',
|
|
1119
|
+
type: 'string',
|
|
1120
|
+
default: '',
|
|
1121
|
+
required: true,
|
|
1122
|
+
displayOptions: {
|
|
1123
|
+
show: {
|
|
1124
|
+
resource: ['series'],
|
|
1125
|
+
operation: ['setTags'],
|
|
1126
|
+
},
|
|
1127
|
+
},
|
|
1128
|
+
description: 'Comma-separated list of tag names',
|
|
1129
|
+
routing: {
|
|
1130
|
+
send: {
|
|
1131
|
+
type: 'body',
|
|
1132
|
+
property: 'tags',
|
|
1133
|
+
preSend: [
|
|
1134
|
+
async function (requestOptions) {
|
|
1135
|
+
const tags = this.getNodeParameter('tags', 0);
|
|
1136
|
+
if (tags) {
|
|
1137
|
+
requestOptions.body.tags = tags
|
|
1138
|
+
.split(',')
|
|
1139
|
+
.map((t) => t.trim());
|
|
1140
|
+
}
|
|
1141
|
+
return requestOptions;
|
|
1142
|
+
},
|
|
1143
|
+
],
|
|
1144
|
+
},
|
|
1145
|
+
},
|
|
1146
|
+
},
|
|
1147
|
+
{
|
|
1148
|
+
displayName: 'Metadata Locks',
|
|
1149
|
+
name: 'metadataLocks',
|
|
1150
|
+
type: 'collection',
|
|
1151
|
+
placeholder: 'Add Lock',
|
|
1152
|
+
default: {},
|
|
1153
|
+
displayOptions: {
|
|
1154
|
+
show: {
|
|
1155
|
+
resource: ['series'],
|
|
1156
|
+
operation: ['setMetadataLocks'],
|
|
1157
|
+
},
|
|
1158
|
+
},
|
|
1159
|
+
options: [
|
|
1160
|
+
{
|
|
1161
|
+
displayName: 'Age Rating',
|
|
1162
|
+
name: 'ageRating',
|
|
1163
|
+
type: 'boolean',
|
|
1164
|
+
default: false,
|
|
1165
|
+
description: 'Whether to lock the age rating field',
|
|
1166
|
+
routing: {
|
|
1167
|
+
send: {
|
|
1168
|
+
type: 'body',
|
|
1169
|
+
property: 'ageRating',
|
|
1170
|
+
},
|
|
1171
|
+
},
|
|
1172
|
+
},
|
|
1173
|
+
{
|
|
1174
|
+
displayName: 'Custom Metadata',
|
|
1175
|
+
name: 'customMetadata',
|
|
1176
|
+
type: 'boolean',
|
|
1177
|
+
default: false,
|
|
1178
|
+
description: 'Whether to lock the custom metadata field',
|
|
1179
|
+
routing: {
|
|
1180
|
+
send: {
|
|
1181
|
+
type: 'body',
|
|
1182
|
+
property: 'customMetadata',
|
|
1183
|
+
},
|
|
1184
|
+
},
|
|
1185
|
+
},
|
|
1186
|
+
{
|
|
1187
|
+
displayName: 'Genres',
|
|
1188
|
+
name: 'genres',
|
|
1189
|
+
type: 'boolean',
|
|
1190
|
+
default: false,
|
|
1191
|
+
description: 'Whether to lock the genres',
|
|
1192
|
+
routing: {
|
|
1193
|
+
send: {
|
|
1194
|
+
type: 'body',
|
|
1195
|
+
property: 'genres',
|
|
1196
|
+
},
|
|
1197
|
+
},
|
|
1198
|
+
},
|
|
1199
|
+
{
|
|
1200
|
+
displayName: 'Imprint',
|
|
1201
|
+
name: 'imprint',
|
|
1202
|
+
type: 'boolean',
|
|
1203
|
+
default: false,
|
|
1204
|
+
description: 'Whether to lock the imprint field',
|
|
1205
|
+
routing: {
|
|
1206
|
+
send: {
|
|
1207
|
+
type: 'body',
|
|
1208
|
+
property: 'imprint',
|
|
1209
|
+
},
|
|
1210
|
+
},
|
|
1211
|
+
},
|
|
1212
|
+
{
|
|
1213
|
+
displayName: 'Language',
|
|
1214
|
+
name: 'language',
|
|
1215
|
+
type: 'boolean',
|
|
1216
|
+
default: false,
|
|
1217
|
+
description: 'Whether to lock the language field',
|
|
1218
|
+
routing: {
|
|
1219
|
+
send: {
|
|
1220
|
+
type: 'body',
|
|
1221
|
+
property: 'language',
|
|
1222
|
+
},
|
|
1223
|
+
},
|
|
1224
|
+
},
|
|
1225
|
+
{
|
|
1226
|
+
displayName: 'Publisher',
|
|
1227
|
+
name: 'publisher',
|
|
1228
|
+
type: 'boolean',
|
|
1229
|
+
default: false,
|
|
1230
|
+
description: 'Whether to lock the publisher field',
|
|
1231
|
+
routing: {
|
|
1232
|
+
send: {
|
|
1233
|
+
type: 'body',
|
|
1234
|
+
property: 'publisher',
|
|
1235
|
+
},
|
|
1236
|
+
},
|
|
1237
|
+
},
|
|
1238
|
+
{
|
|
1239
|
+
displayName: 'Reading Direction',
|
|
1240
|
+
name: 'readingDirection',
|
|
1241
|
+
type: 'boolean',
|
|
1242
|
+
default: false,
|
|
1243
|
+
description: 'Whether to lock the reading direction field',
|
|
1244
|
+
routing: {
|
|
1245
|
+
send: {
|
|
1246
|
+
type: 'body',
|
|
1247
|
+
property: 'readingDirection',
|
|
1248
|
+
},
|
|
1249
|
+
},
|
|
1250
|
+
},
|
|
1251
|
+
{
|
|
1252
|
+
displayName: 'Status',
|
|
1253
|
+
name: 'status',
|
|
1254
|
+
type: 'boolean',
|
|
1255
|
+
default: false,
|
|
1256
|
+
description: 'Whether to lock the status field',
|
|
1257
|
+
routing: {
|
|
1258
|
+
send: {
|
|
1259
|
+
type: 'body',
|
|
1260
|
+
property: 'status',
|
|
1261
|
+
},
|
|
1262
|
+
},
|
|
1263
|
+
},
|
|
1264
|
+
{
|
|
1265
|
+
displayName: 'Summary',
|
|
1266
|
+
name: 'summary',
|
|
1267
|
+
type: 'boolean',
|
|
1268
|
+
default: false,
|
|
1269
|
+
description: 'Whether to lock the summary field',
|
|
1270
|
+
routing: {
|
|
1271
|
+
send: {
|
|
1272
|
+
type: 'body',
|
|
1273
|
+
property: 'summary',
|
|
1274
|
+
},
|
|
1275
|
+
},
|
|
1276
|
+
},
|
|
1277
|
+
{
|
|
1278
|
+
displayName: 'Tags',
|
|
1279
|
+
name: 'tags',
|
|
1280
|
+
type: 'boolean',
|
|
1281
|
+
default: false,
|
|
1282
|
+
description: 'Whether to lock the tags',
|
|
1283
|
+
routing: {
|
|
1284
|
+
send: {
|
|
1285
|
+
type: 'body',
|
|
1286
|
+
property: 'tags',
|
|
1287
|
+
},
|
|
1288
|
+
},
|
|
1289
|
+
},
|
|
1290
|
+
{
|
|
1291
|
+
displayName: 'Title',
|
|
1292
|
+
name: 'title',
|
|
1293
|
+
type: 'boolean',
|
|
1294
|
+
default: false,
|
|
1295
|
+
description: 'Whether to lock the title field',
|
|
1296
|
+
routing: {
|
|
1297
|
+
send: {
|
|
1298
|
+
type: 'body',
|
|
1299
|
+
property: 'title',
|
|
1300
|
+
},
|
|
1301
|
+
},
|
|
1302
|
+
},
|
|
1303
|
+
{
|
|
1304
|
+
displayName: 'Title Sort',
|
|
1305
|
+
name: 'titleSort',
|
|
1306
|
+
type: 'boolean',
|
|
1307
|
+
default: false,
|
|
1308
|
+
description: 'Whether to lock the title sort field',
|
|
1309
|
+
routing: {
|
|
1310
|
+
send: {
|
|
1311
|
+
type: 'body',
|
|
1312
|
+
property: 'titleSort',
|
|
1313
|
+
},
|
|
1314
|
+
},
|
|
1315
|
+
},
|
|
1316
|
+
{
|
|
1317
|
+
displayName: 'Total Book Count',
|
|
1318
|
+
name: 'totalBookCount',
|
|
1319
|
+
type: 'boolean',
|
|
1320
|
+
default: false,
|
|
1321
|
+
description: 'Whether to lock the total book count field',
|
|
1322
|
+
routing: {
|
|
1323
|
+
send: {
|
|
1324
|
+
type: 'body',
|
|
1325
|
+
property: 'totalBookCount',
|
|
1326
|
+
},
|
|
1327
|
+
},
|
|
1328
|
+
},
|
|
1329
|
+
{
|
|
1330
|
+
displayName: 'Year',
|
|
1331
|
+
name: 'year',
|
|
1332
|
+
type: 'boolean',
|
|
1333
|
+
default: false,
|
|
1334
|
+
description: 'Whether to lock the year field',
|
|
1335
|
+
routing: {
|
|
1336
|
+
send: {
|
|
1337
|
+
type: 'body',
|
|
1338
|
+
property: 'year',
|
|
1339
|
+
},
|
|
1340
|
+
},
|
|
1341
|
+
},
|
|
1342
|
+
],
|
|
1343
|
+
},
|
|
1344
|
+
...list_1.seriesListDescription,
|
|
1345
|
+
...get_1.seriesGetDescription,
|
|
1346
|
+
...updateMetadata_1.seriesUpdateMetadataDescription,
|
|
1347
|
+
];
|
|
1348
|
+
//# sourceMappingURL=index.js.map
|