anilibria-api-client 0.1.4__py3-none-any.whl
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.
- anilibria_api_client-0.1.4.dist-info/METADATA +62 -0
- anilibria_api_client-0.1.4.dist-info/RECORD +15 -0
- anilibria_api_client-0.1.4.dist-info/WHEEL +5 -0
- anilibria_api_client-0.1.4.dist-info/licenses/LICENSE +21 -0
- anilibria_api_client-0.1.4.dist-info/top_level.txt +2 -0
- base_api/api_class.py +284 -0
- methods/__init__.py +6 -0
- methods/_helper.py +218 -0
- methods/_libria.py +10 -0
- methods/accounts.py +348 -0
- methods/ads.py +23 -0
- methods/anime.py +670 -0
- methods/app.py +34 -0
- methods/media.py +45 -0
- methods/teams.py +61 -0
methods/anime.py
ADDED
@@ -0,0 +1,670 @@
|
|
1
|
+
from ._libria import BaseMethod
|
2
|
+
from ._helper import validate_filters, create_filters_from_release
|
3
|
+
from ..models import Release
|
4
|
+
from typing import Optional, List
|
5
|
+
|
6
|
+
|
7
|
+
class AnimeMethod(BaseMethod):
|
8
|
+
async def catalog_releases_get(
|
9
|
+
self,
|
10
|
+
params: Release
|
11
|
+
):
|
12
|
+
"""
|
13
|
+
Возвращает список релизов по заданными параметрам (GET запрос)
|
14
|
+
|
15
|
+
:param params: Тело Release
|
16
|
+
"""
|
17
|
+
body = {
|
18
|
+
"page": params.page,
|
19
|
+
"limit":params.limit,
|
20
|
+
"include": params.include,
|
21
|
+
"exclude": params.exclude,
|
22
|
+
}
|
23
|
+
validated_f_args = await validate_filters(params=params)
|
24
|
+
final_body = {**body, **validated_f_args}
|
25
|
+
|
26
|
+
return await self._api.get("/anime/catalog/releases", params=final_body)
|
27
|
+
|
28
|
+
async def catalog_releases_post(
|
29
|
+
self,
|
30
|
+
params: Release
|
31
|
+
):
|
32
|
+
"""
|
33
|
+
Возвращает список релизов по заданными параметрам (POST запрос)
|
34
|
+
|
35
|
+
:param params: Тело Release
|
36
|
+
"""
|
37
|
+
body = {
|
38
|
+
"page": params.page,
|
39
|
+
"limit":params.limit,
|
40
|
+
"include": params.include,
|
41
|
+
"exclude": params.exclude,
|
42
|
+
}
|
43
|
+
filters = await create_filters_from_release(params)
|
44
|
+
final_body = {**body, **filters}
|
45
|
+
|
46
|
+
return await self._api.post("/anime/catalog/releases", json_data=final_body)
|
47
|
+
|
48
|
+
async def catalog_references_age_ratings(
|
49
|
+
self
|
50
|
+
):
|
51
|
+
"""
|
52
|
+
Возвращает список возможных возрастных рейтингов в каталоге
|
53
|
+
"""
|
54
|
+
return await self._api.get("/anime/catalog/references/age-ratings")
|
55
|
+
|
56
|
+
async def catalog_references_genres(
|
57
|
+
self
|
58
|
+
):
|
59
|
+
"""
|
60
|
+
Возвращает список всех жанров в каталоге
|
61
|
+
"""
|
62
|
+
return await self._api.get("/anime/catalog/references/genres")
|
63
|
+
|
64
|
+
async def catalog_references_production_statuses(
|
65
|
+
self
|
66
|
+
):
|
67
|
+
"""
|
68
|
+
Возвращает список возможных статусов озвучки релиза в каталоге
|
69
|
+
"""
|
70
|
+
return await self._api.get("/anime/catalog/references/production-statuses")
|
71
|
+
|
72
|
+
async def catalog_references_publish_statuses(
|
73
|
+
self
|
74
|
+
):
|
75
|
+
"""
|
76
|
+
Возвращает список возможных статусов выхода релиза в каталоге
|
77
|
+
"""
|
78
|
+
return await self._api.get("/anime/catalog/references/publish-statuses")
|
79
|
+
|
80
|
+
async def catalog_references_seasons(
|
81
|
+
self
|
82
|
+
):
|
83
|
+
"""
|
84
|
+
Возвращает список возможных сезонов релизов в каталоге
|
85
|
+
"""
|
86
|
+
return await self._api.get("/anime/catalog/references/seasons")
|
87
|
+
|
88
|
+
async def catalog_references_sorting(
|
89
|
+
self
|
90
|
+
):
|
91
|
+
"""
|
92
|
+
Возвращает список возможных типов сортировок в каталоге
|
93
|
+
"""
|
94
|
+
return await self._api.get("/anime/catalog/references/sorting")
|
95
|
+
|
96
|
+
async def catalog_references_types(
|
97
|
+
self
|
98
|
+
):
|
99
|
+
"""
|
100
|
+
Возвращает список возможных типов релизов в каталоге
|
101
|
+
"""
|
102
|
+
return await self._api.get("/anime/catalog/references/types")
|
103
|
+
|
104
|
+
async def catalog_references_years(
|
105
|
+
self
|
106
|
+
):
|
107
|
+
"""
|
108
|
+
Возвращает список годов в каталоге
|
109
|
+
"""
|
110
|
+
return await self._api.get("/anime/catalog/references/years")
|
111
|
+
|
112
|
+
async def franchises(
|
113
|
+
self,
|
114
|
+
include: Optional[str] = None,
|
115
|
+
exclude: Optional[str] = None
|
116
|
+
):
|
117
|
+
"""
|
118
|
+
Возвращает список франшиз
|
119
|
+
|
120
|
+
Args:
|
121
|
+
include: Поля для включения
|
122
|
+
exclude: Поля для исключения
|
123
|
+
"""
|
124
|
+
params = {
|
125
|
+
"include": include,
|
126
|
+
"exclude": exclude
|
127
|
+
}
|
128
|
+
return await self._api.get("/anime/franchises", params=params)
|
129
|
+
|
130
|
+
async def franchises_franchiseId(
|
131
|
+
self,
|
132
|
+
franchiseId: str,
|
133
|
+
include: Optional[str] = None,
|
134
|
+
exclude: Optional[str] = None
|
135
|
+
):
|
136
|
+
"""
|
137
|
+
Возвращает данные франшизы по Id
|
138
|
+
|
139
|
+
Args:
|
140
|
+
franchiseId: Обязательно. Id франшизы
|
141
|
+
include: Поля для включения
|
142
|
+
exclude: Поля для исключения
|
143
|
+
"""
|
144
|
+
params = {
|
145
|
+
"include": include,
|
146
|
+
"exclude": exclude
|
147
|
+
}
|
148
|
+
|
149
|
+
endpoint = self._api.build_endpoint_with_params("/anime/franchises/{franchiseId}", franchiseId=franchiseId)
|
150
|
+
return await self._api.get(endpoint=endpoint, params=params)
|
151
|
+
|
152
|
+
async def franchises_random(
|
153
|
+
self,
|
154
|
+
limit: Optional[int] = None,
|
155
|
+
include: Optional[str] = None,
|
156
|
+
exclude: Optional[str] = None
|
157
|
+
):
|
158
|
+
"""
|
159
|
+
Возвращает список случайных франшиз.
|
160
|
+
|
161
|
+
Args:
|
162
|
+
limit: Лимит случайных франшиз
|
163
|
+
include: Поля для включения
|
164
|
+
exclude: Поля для исключения
|
165
|
+
"""
|
166
|
+
params = {
|
167
|
+
"limit": limit,
|
168
|
+
"include": include,
|
169
|
+
"exclude": exclude
|
170
|
+
}
|
171
|
+
|
172
|
+
return await self._api.get("/anime/franchises/random", params=params)
|
173
|
+
|
174
|
+
async def franchises_release_releaseId(
|
175
|
+
self,
|
176
|
+
releaseId: str,
|
177
|
+
include: Optional[str] = None,
|
178
|
+
exclude: Optional[str] = None
|
179
|
+
):
|
180
|
+
"""
|
181
|
+
Возвращает список франшиз, в которых участвует релиз
|
182
|
+
|
183
|
+
Args:
|
184
|
+
releaseId: Обязательно. Id франшизы
|
185
|
+
include: Поля для включения
|
186
|
+
exclude: Поля для исключения
|
187
|
+
"""
|
188
|
+
params = {
|
189
|
+
"include": include,
|
190
|
+
"exclude": exclude
|
191
|
+
}
|
192
|
+
|
193
|
+
endpoint = self._api.build_endpoint_with_params("/anime/franchises/release/{releaseId}", releaseId=releaseId)
|
194
|
+
return await self._api.get(endpoint=endpoint, params=params)
|
195
|
+
|
196
|
+
async def genres(
|
197
|
+
self,
|
198
|
+
include: Optional[str] = None,
|
199
|
+
exclude: Optional[str] = None
|
200
|
+
):
|
201
|
+
"""
|
202
|
+
Возвращает список всех жанров
|
203
|
+
|
204
|
+
Args:
|
205
|
+
include: Поля для включения
|
206
|
+
exclude: Поля для исключения
|
207
|
+
"""
|
208
|
+
params = {
|
209
|
+
"include": include,
|
210
|
+
"exclude": exclude
|
211
|
+
}
|
212
|
+
|
213
|
+
return await self._api.get("/anime/genres", params=params)
|
214
|
+
|
215
|
+
async def genres_genreId(
|
216
|
+
self,
|
217
|
+
genreId: int,
|
218
|
+
include: Optional[str] = None,
|
219
|
+
exclude: Optional[str] = None
|
220
|
+
):
|
221
|
+
"""
|
222
|
+
Возвращает список всех жанров
|
223
|
+
|
224
|
+
Args:
|
225
|
+
genreId: ID жанра, обязательно
|
226
|
+
include: Поля для включения
|
227
|
+
exclude: Поля для исключения
|
228
|
+
"""
|
229
|
+
params = {
|
230
|
+
"include": include,
|
231
|
+
"exclude": exclude
|
232
|
+
}
|
233
|
+
|
234
|
+
endpoint = self._api.build_endpoint_with_params("/anime/genres/{genreId}", genreId=genreId)
|
235
|
+
return await self._api.get(endpoint, params=params)
|
236
|
+
|
237
|
+
async def genres_random(
|
238
|
+
self,
|
239
|
+
limit: Optional[int] = None,
|
240
|
+
include: Optional[str] = None,
|
241
|
+
exclude: Optional[str] = None
|
242
|
+
):
|
243
|
+
"""
|
244
|
+
Возвращает список случайных жанров
|
245
|
+
|
246
|
+
Args:
|
247
|
+
limit: Лимит случайных жанров
|
248
|
+
include: Поля для включения
|
249
|
+
exclude: Поля для исключения
|
250
|
+
"""
|
251
|
+
params = {
|
252
|
+
"limit": limit,
|
253
|
+
"include": include,
|
254
|
+
"exclude": exclude
|
255
|
+
}
|
256
|
+
|
257
|
+
return await self._api.get("/anime/genres/random", params=params)
|
258
|
+
|
259
|
+
async def genres_genreId_releases(
|
260
|
+
self,
|
261
|
+
genreId: int,
|
262
|
+
page: Optional[int] = None,
|
263
|
+
limit: Optional[int] = None,
|
264
|
+
include: Optional[str] = None,
|
265
|
+
exclude: Optional[str] = None
|
266
|
+
):
|
267
|
+
"""
|
268
|
+
Возвращает список всех релизов жанра
|
269
|
+
|
270
|
+
Args:
|
271
|
+
genreId: Обязательно. ID жанра
|
272
|
+
page: Номер страницы
|
273
|
+
limit: Лимит на страницу
|
274
|
+
include: Поля для включения
|
275
|
+
exclude: Поля для исключения
|
276
|
+
"""
|
277
|
+
params = {
|
278
|
+
"page": page,
|
279
|
+
"limit": limit,
|
280
|
+
"include": include,
|
281
|
+
"exclude": exclude
|
282
|
+
}
|
283
|
+
|
284
|
+
endpoint = self._api.build_endpoint_with_params("/anime/genres/{genreId}/releases", genreId=genreId)
|
285
|
+
return await self._api.get(endpoint, params=params)
|
286
|
+
|
287
|
+
async def releases_latest(
|
288
|
+
self,
|
289
|
+
limit: Optional[int] = None,
|
290
|
+
include: Optional[str] = None,
|
291
|
+
exclude: Optional[str] = None
|
292
|
+
):
|
293
|
+
"""
|
294
|
+
Возвращает данные по последним релизам
|
295
|
+
|
296
|
+
Args:
|
297
|
+
limit: Количество последних релизов в выдаче
|
298
|
+
include: Поля для включения
|
299
|
+
exclude: Поля для исключения
|
300
|
+
"""
|
301
|
+
params = {
|
302
|
+
"limit": limit,
|
303
|
+
"include": include,
|
304
|
+
"exclude": exclude
|
305
|
+
}
|
306
|
+
|
307
|
+
return await self._api.get("/anime/releases/latest", params=params)
|
308
|
+
|
309
|
+
async def releases_random(
|
310
|
+
self,
|
311
|
+
limit: Optional[int] = None,
|
312
|
+
include: Optional[str] = None,
|
313
|
+
exclude: Optional[str] = None
|
314
|
+
):
|
315
|
+
"""
|
316
|
+
Возвращает данные по случайным релизам
|
317
|
+
|
318
|
+
Args:
|
319
|
+
limit: Количество случайных релизов
|
320
|
+
include: Поля для включения
|
321
|
+
exclude: Поля для исключения
|
322
|
+
"""
|
323
|
+
params = {
|
324
|
+
"limit": limit,
|
325
|
+
"include": include,
|
326
|
+
"exclude": exclude
|
327
|
+
}
|
328
|
+
|
329
|
+
return await self._api.get("/anime/releases/random", params=params)
|
330
|
+
|
331
|
+
async def releases_recommended(
|
332
|
+
self,
|
333
|
+
limit: Optional[int] = None,
|
334
|
+
release_id: Optional[int] = None,
|
335
|
+
include: Optional[str] = None,
|
336
|
+
exclude: Optional[str] = None
|
337
|
+
):
|
338
|
+
"""
|
339
|
+
Возвращает данные по рекомендованным релизам
|
340
|
+
|
341
|
+
Args:
|
342
|
+
limit: Количество рекомендованных релизов
|
343
|
+
release_id: Идентификатор релиза, для которого рекомендуем
|
344
|
+
include: Поля для включения
|
345
|
+
exclude: Поля для исключения
|
346
|
+
"""
|
347
|
+
params = {
|
348
|
+
"limit": limit,
|
349
|
+
"release_id": release_id,
|
350
|
+
"include": include,
|
351
|
+
"exclude": exclude
|
352
|
+
}
|
353
|
+
|
354
|
+
return await self._api.get("/anime/releases/recommended", params=params)
|
355
|
+
|
356
|
+
async def releases_list(
|
357
|
+
self,
|
358
|
+
ids: List[int],
|
359
|
+
aliases: List[str],
|
360
|
+
page: Optional[int] = None,
|
361
|
+
limit: Optional[int] = None,
|
362
|
+
include: Optional[str] = None,
|
363
|
+
exclude: Optional[str] = None
|
364
|
+
):
|
365
|
+
"""
|
366
|
+
Возвращает данные по списку релизов
|
367
|
+
|
368
|
+
Args:
|
369
|
+
ids: Список ID релизов Обязательно
|
370
|
+
aliases: Список alias релизов Обязательно
|
371
|
+
page: Номер страницы
|
372
|
+
limit: Лимит на страницу
|
373
|
+
include: Поля для включения
|
374
|
+
exclude: Поля для исключения
|
375
|
+
"""
|
376
|
+
params = {
|
377
|
+
"ids": ids,
|
378
|
+
"aliases": aliases,
|
379
|
+
"page": page,
|
380
|
+
"limit": limit,
|
381
|
+
"include": include,
|
382
|
+
"exclude": exclude
|
383
|
+
}
|
384
|
+
|
385
|
+
return await self._api.get("/anime/releases/list", params=params)
|
386
|
+
|
387
|
+
async def releases_idOrAlias(
|
388
|
+
self,
|
389
|
+
idOrAlias: str,
|
390
|
+
include: Optional[str] = None,
|
391
|
+
exclude: Optional[str] = None
|
392
|
+
):
|
393
|
+
"""
|
394
|
+
Возвращает данные по релизу
|
395
|
+
|
396
|
+
Args:
|
397
|
+
idOrAlias: id или alias релиза Обязательно
|
398
|
+
include: Поля для включения
|
399
|
+
exclude: Поля для исключения
|
400
|
+
"""
|
401
|
+
params = {
|
402
|
+
"include": include,
|
403
|
+
"exclude": exclude
|
404
|
+
}
|
405
|
+
|
406
|
+
endpoint = self._api.build_endpoint_with_params("/anime/releases/{idOrAlias}", idOrAlias=idOrAlias)
|
407
|
+
return await self._api.get(endpoint, params)
|
408
|
+
|
409
|
+
async def releases_idOrAlias_members(
|
410
|
+
self,
|
411
|
+
idOrAlias: str,
|
412
|
+
include: Optional[str] = None,
|
413
|
+
exclude: Optional[str] = None
|
414
|
+
):
|
415
|
+
"""
|
416
|
+
Возвращает данные по участникам релиза
|
417
|
+
|
418
|
+
Args:
|
419
|
+
idOrAlias: id или alias релиза Обязательно
|
420
|
+
include: Поля для включения
|
421
|
+
exclude: Поля для исключения
|
422
|
+
"""
|
423
|
+
params = {
|
424
|
+
"include": include,
|
425
|
+
"exclude": exclude
|
426
|
+
}
|
427
|
+
|
428
|
+
endpoint = self._api.build_endpoint_with_params("/anime/releases/{idOrAlias}/members", idOrAlias=idOrAlias)
|
429
|
+
return await self._api.get(endpoint, params)
|
430
|
+
|
431
|
+
async def releases_idOrAlias_episodes_timecodes(
|
432
|
+
self,
|
433
|
+
idOrAlias: str,
|
434
|
+
include: Optional[str] = None,
|
435
|
+
exclude: Optional[str] = None
|
436
|
+
):
|
437
|
+
"""
|
438
|
+
Возвращает данные по всем существующим таймкодам просмотра эпизодов релиза. Имеет 1-2-x минутный кэш.
|
439
|
+
|
440
|
+
Args:
|
441
|
+
idOrAlias: id или alias релиза Обязательно
|
442
|
+
include: Поля для включения
|
443
|
+
exclude: Поля для исключения
|
444
|
+
"""
|
445
|
+
params = {
|
446
|
+
"include": include,
|
447
|
+
"exclude": exclude
|
448
|
+
}
|
449
|
+
|
450
|
+
endpoint = self._api.build_endpoint_with_params("/anime/releases/{idOrAlias}/episodes/timecodes", idOrAlias=idOrAlias)
|
451
|
+
return await self._api.get(endpoint, params)
|
452
|
+
|
453
|
+
async def releases_episodes_releaseEpisodeId(
|
454
|
+
self,
|
455
|
+
releaseEpisodeId: str,
|
456
|
+
include: Optional[str] = None,
|
457
|
+
exclude: Optional[str] = None
|
458
|
+
):
|
459
|
+
"""
|
460
|
+
Возвращает данные по эпизоду
|
461
|
+
|
462
|
+
Args:
|
463
|
+
releaseEpisodeId: Идентификатор эпизода Обязательно
|
464
|
+
include: Поля для включения
|
465
|
+
exclude: Поля для исключения
|
466
|
+
"""
|
467
|
+
params = {
|
468
|
+
"include": include,
|
469
|
+
"exclude": exclude
|
470
|
+
}
|
471
|
+
|
472
|
+
endpoint = self._api.build_endpoint_with_params("/anime/releases/episodes/{releaseEpisodeId}", releaseEpisodeId=releaseEpisodeId)
|
473
|
+
return await self._api.get(endpoint, params)
|
474
|
+
|
475
|
+
async def releases_episodes_releaseEpisodeId_timecode(
|
476
|
+
self,
|
477
|
+
releaseEpisodeId: str,
|
478
|
+
include: Optional[str] = None,
|
479
|
+
exclude: Optional[str] = None
|
480
|
+
):
|
481
|
+
"""
|
482
|
+
Возвращает данные по просмотру указанного эпизода авторизованным пользователем. Имеет 1-2-x минутный кэш.
|
483
|
+
|
484
|
+
Args:
|
485
|
+
releaseEpisodeId: Идентификатор эпизода Обязательно
|
486
|
+
include: Поля для включения
|
487
|
+
exclude: Поля для исключения
|
488
|
+
"""
|
489
|
+
params = {
|
490
|
+
"include": include,
|
491
|
+
"exclude": exclude
|
492
|
+
}
|
493
|
+
|
494
|
+
endpoint = self._api.build_endpoint_with_params("/anime/releases/episodes/{releaseEpisodeId}/timecode", releaseEpisodeId=releaseEpisodeId)
|
495
|
+
return await self._api.get(endpoint, params)
|
496
|
+
|
497
|
+
async def schedule_now(
|
498
|
+
self,
|
499
|
+
include: Optional[str] = None,
|
500
|
+
exclude: Optional[str] = None
|
501
|
+
):
|
502
|
+
"""
|
503
|
+
Возвращает список релизов в расписании на текущую дату
|
504
|
+
|
505
|
+
Args:
|
506
|
+
include: Поля для включения
|
507
|
+
exclude: Поля для исключения
|
508
|
+
"""
|
509
|
+
params = {
|
510
|
+
"include": include,
|
511
|
+
"exclude": exclude
|
512
|
+
}
|
513
|
+
|
514
|
+
return await self._api.get("/anime/schedule/now", params=params)
|
515
|
+
|
516
|
+
async def schedule_week(
|
517
|
+
self,
|
518
|
+
include: Optional[str] = None,
|
519
|
+
exclude: Optional[str] = None
|
520
|
+
):
|
521
|
+
"""
|
522
|
+
Возвращает список релизов в расписании на текущую неделю
|
523
|
+
|
524
|
+
Args:
|
525
|
+
include: Поля для включения
|
526
|
+
exclude: Поля для исключения
|
527
|
+
"""
|
528
|
+
params = {
|
529
|
+
"include": include,
|
530
|
+
"exclude": exclude
|
531
|
+
}
|
532
|
+
|
533
|
+
return await self._api.get("/anime/schedule/week", params=params)
|
534
|
+
|
535
|
+
|
536
|
+
async def torrents(
|
537
|
+
self,
|
538
|
+
page: Optional[int] = None,
|
539
|
+
limit: Optional[int] = None,
|
540
|
+
include: Optional[str] = None,
|
541
|
+
exclude: Optional[str] = None
|
542
|
+
):
|
543
|
+
"""
|
544
|
+
Возвращает данные по последним торрентам
|
545
|
+
|
546
|
+
Args:
|
547
|
+
page: Номер страницы
|
548
|
+
limit: Лимит на страницу
|
549
|
+
include: Поля для включения
|
550
|
+
exclude: Поля для исключения
|
551
|
+
"""
|
552
|
+
params = {
|
553
|
+
"page": page,
|
554
|
+
"limit": limit,
|
555
|
+
"include": include,
|
556
|
+
"exclude": exclude
|
557
|
+
}
|
558
|
+
|
559
|
+
return await self._api.get("/anime/torrents", params=params)
|
560
|
+
|
561
|
+
async def torrents_hashOrId(
|
562
|
+
self,
|
563
|
+
hashOrId: str,
|
564
|
+
include: Optional[str] = None,
|
565
|
+
exclude: Optional[str] = None
|
566
|
+
):
|
567
|
+
"""
|
568
|
+
Возвращает данные по последним торрентам
|
569
|
+
|
570
|
+
Args:
|
571
|
+
hashOrId: Обязательно Хэш или ID торрента
|
572
|
+
include: Поля для включения
|
573
|
+
exclude: Поля для исключения
|
574
|
+
"""
|
575
|
+
params = {
|
576
|
+
"include": include,
|
577
|
+
"exclude": exclude
|
578
|
+
}
|
579
|
+
|
580
|
+
endpoint = self._api.build_endpoint_with_params("/anime/torrents/{hashOrId}", hashOrId=hashOrId)
|
581
|
+
return await self._api.get(endpoint, params)
|
582
|
+
|
583
|
+
async def torrents_hashOrId_file(
|
584
|
+
self,
|
585
|
+
hashOrId: str,
|
586
|
+
pk: Optional[str] = None
|
587
|
+
):
|
588
|
+
"""
|
589
|
+
Возвращает данные по последним торрентам
|
590
|
+
|
591
|
+
Args:
|
592
|
+
hashOrId: Обязательно Хэш или ID торрента
|
593
|
+
pk: passkey пользователя. Оставьте пустым для собственного pk (если аутентифицирован)
|
594
|
+
"""
|
595
|
+
params = {
|
596
|
+
"pk": pk
|
597
|
+
}
|
598
|
+
headers = {
|
599
|
+
"Content-Type": "application/x-bittorrent; utf-8",
|
600
|
+
"Accept": "application/x-bittorrent"
|
601
|
+
}
|
602
|
+
|
603
|
+
endpoint = self._api.build_endpoint_with_params("/anime/torrents/{hashOrId}/file", hashOrId=hashOrId)
|
604
|
+
return await self._api.get(endpoint, params, headers)
|
605
|
+
|
606
|
+
async def torrents_release_releaseId(
|
607
|
+
self,
|
608
|
+
releaseId: int,
|
609
|
+
include: Optional[str] = None,
|
610
|
+
exclude: Optional[str] = None
|
611
|
+
):
|
612
|
+
"""
|
613
|
+
Возвращает данные по последним торрентам
|
614
|
+
|
615
|
+
Args:
|
616
|
+
releaseId: Обязательно ID релиза
|
617
|
+
include: Поля для включения
|
618
|
+
exclude: Поля для исключения
|
619
|
+
"""
|
620
|
+
params = {
|
621
|
+
"include": include,
|
622
|
+
"exclude": exclude
|
623
|
+
}
|
624
|
+
|
625
|
+
endpoint = self._api.build_endpoint_with_params("/anime/torrents/release/{releaseId}", releaseId=releaseId)
|
626
|
+
return await self._api.get(endpoint, params)
|
627
|
+
|
628
|
+
async def torrents_rss(
|
629
|
+
self,
|
630
|
+
limit: Optional[int] = None,
|
631
|
+
pk: Optional[str] = None
|
632
|
+
):
|
633
|
+
"""
|
634
|
+
Возвращает данные по последним торрентам в виде XML документа
|
635
|
+
|
636
|
+
Args:
|
637
|
+
limit: Количество торрентов в выдаче. По умолчанию 10
|
638
|
+
pk: passkey пользователя. Оставьте пустым для собственного pk (если аутентифицирован)
|
639
|
+
"""
|
640
|
+
params = {
|
641
|
+
"limit": limit,
|
642
|
+
"pk": pk
|
643
|
+
}
|
644
|
+
headers = {
|
645
|
+
"Content-Type": "application/xml",
|
646
|
+
}
|
647
|
+
|
648
|
+
return await self._api.get("/anime/torrents/rss", params=params, headers=headers)
|
649
|
+
|
650
|
+
async def torrents_rss_release_releaseId(
|
651
|
+
self,
|
652
|
+
releaseId: int,
|
653
|
+
pk: Optional[str] = None
|
654
|
+
):
|
655
|
+
"""
|
656
|
+
Возвращает данные по торрентам релиза в виде RSS ленты (xml)
|
657
|
+
|
658
|
+
Args:
|
659
|
+
releaseId: Обязательно ID релиза
|
660
|
+
pk: passkey пользователя. Оставьте пустым для собственного pk (если аутентифицирован)
|
661
|
+
"""
|
662
|
+
params = {
|
663
|
+
"pk": pk
|
664
|
+
}
|
665
|
+
headers = {
|
666
|
+
"Content-Type": "application/xml",
|
667
|
+
}
|
668
|
+
|
669
|
+
endpoint = self._api.build_endpoint_with_params("/anime/torrents/rss/release/{releaseId}", releaseId=releaseId)
|
670
|
+
return await self._api.get(endpoint=endpoint, params=params, headers=headers)
|
methods/app.py
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
from ._libria import BaseMethod
|
2
|
+
from typing import Optional
|
3
|
+
|
4
|
+
|
5
|
+
class AppMethod(BaseMethod):
|
6
|
+
async def search_releases(
|
7
|
+
self,
|
8
|
+
query: str,
|
9
|
+
include: Optional[str] = None,
|
10
|
+
exclude: Optional[str] = None
|
11
|
+
):
|
12
|
+
"""
|
13
|
+
Возвращает данные по релизам, которые удовлетворяют поисковому запросу
|
14
|
+
|
15
|
+
Args:
|
16
|
+
query: Обязательный параметр. Строка поиска
|
17
|
+
include: Поля для включения
|
18
|
+
exclude: Поля для исключения
|
19
|
+
"""
|
20
|
+
params = {
|
21
|
+
"query": query,
|
22
|
+
"include": include,
|
23
|
+
"exclude": exclude
|
24
|
+
}
|
25
|
+
|
26
|
+
return await self._api.get("/app/search/releases", params=params)
|
27
|
+
|
28
|
+
async def status(
|
29
|
+
self
|
30
|
+
):
|
31
|
+
"""
|
32
|
+
Возвращает информацию о статусе API
|
33
|
+
"""
|
34
|
+
return await self._api.get("/app/status")
|