anilibria-api-client 0.1.4__tar.gz → 0.1.6__tar.gz

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.
Files changed (29) hide show
  1. {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/PKG-INFO +12 -4
  2. {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/README.md +2 -2
  3. anilibria_api_client-0.1.6/anilibria_api_client/__init__.py +5 -0
  4. anilibria_api_client-0.1.6/anilibria_api_client/api_client.py +58 -0
  5. anilibria_api_client-0.1.6/anilibria_api_client/exceptions.py +5 -0
  6. anilibria_api_client-0.1.6/anilibria_api_client/helper.py +93 -0
  7. anilibria_api_client-0.1.6/anilibria_api_client/models.py +55 -0
  8. anilibria_api_client-0.1.6/anilibria_api_client/types.py +56 -0
  9. {anilibria_api_client-0.1.4/anilibria_api_client → anilibria_api_client-0.1.6}/anilibria_api_client.egg-info/PKG-INFO +12 -4
  10. anilibria_api_client-0.1.6/anilibria_api_client.egg-info/SOURCES.txt +24 -0
  11. anilibria_api_client-0.1.6/anilibria_api_client.egg-info/requires.txt +14 -0
  12. anilibria_api_client-0.1.6/anilibria_api_client.egg-info/top_level.txt +1 -0
  13. {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/pyproject.toml +16 -7
  14. anilibria_api_client-0.1.4/anilibria_api_client/anilibria_api_client.egg-info/SOURCES.txt +0 -18
  15. anilibria_api_client-0.1.4/anilibria_api_client/anilibria_api_client.egg-info/requires.txt +0 -5
  16. anilibria_api_client-0.1.4/anilibria_api_client/anilibria_api_client.egg-info/top_level.txt +0 -2
  17. {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/LICENSE +0 -0
  18. {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/base_api/api_class.py +0 -0
  19. {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/__init__.py +0 -0
  20. {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/_helper.py +0 -0
  21. {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/_libria.py +0 -0
  22. {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/accounts.py +0 -0
  23. {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/ads.py +0 -0
  24. {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/anime.py +0 -0
  25. {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/app.py +0 -0
  26. {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/media.py +0 -0
  27. {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/teams.py +0 -0
  28. {anilibria_api_client-0.1.4/anilibria_api_client → anilibria_api_client-0.1.6}/anilibria_api_client.egg-info/dependency_links.txt +0 -0
  29. {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/setup.cfg +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: anilibria-api-client
3
- Version: 0.1.4
3
+ Version: 0.1.6
4
4
  Summary: Python async API wrapper for AniLibria Swagger
5
5
  Author-email: semen-bol <syoma.bolotov@bk.ru>
6
6
  License: MIT
7
7
  Project-URL: Homepage, https://github.com/semen-bol/Anilibria-Api-Client
8
8
  Project-URL: Issues, https://github.com/semen-bol/Anilibria-Api-Client/issues
9
- Requires-Python: >=3.11
9
+ Requires-Python: >=3.13
10
10
  Description-Content-Type: text/markdown
11
11
  License-File: LICENSE
12
12
  Requires-Dist: aiohttp==3.12.15
@@ -14,12 +14,20 @@ Requires-Dist: aiofiles==24.1.0
14
14
  Requires-Dist: pydantic==2.11.7
15
15
  Requires-Dist: m3u8-To-MP4==0.1.11
16
16
  Requires-Dist: ffmpeg-python==0.2.0
17
+ Provides-Extra: docs
18
+ Requires-Dist: sphinx>=7.0.0; extra == "docs"
19
+ Requires-Dist: sphinx-rtd-theme>=1.0.0; extra == "docs"
20
+ Requires-Dist: sphinx-autodoc-typehints>=1.0.0; extra == "docs"
21
+ Requires-Dist: sphinx_design>=0.6.1; extra == "docs"
22
+ Requires-Dist: furo>=2025.7.19; extra == "docs"
23
+ Requires-Dist: sphinx-hoverxref>=1.3.0; extra == "docs"
24
+ Requires-Dist: readthedocs-sphinx-search>=0.1.2; extra == "docs"
17
25
  Dynamic: license-file
18
26
 
19
27
  # Anilibria-Api-Client
20
28
 
21
29
  [![pypi](https://img.shields.io/badge/anilibria_api_client_on_PyPi-blue)](https://pypi.org/project/anilibria-api-client)
22
- ![version](https://img.shields.io/badge/Version-0.1.4-blue)
30
+ ![version](https://img.shields.io/badge/Version-0.1.6-blue)
23
31
  ![licence](https://img.shields.io/badge/License-MIT-green)
24
32
  ![python](https://img.shields.io/badge/Python-3.13%2B-blue)
25
33
 
@@ -51,7 +59,7 @@ async def main():
51
59
  ```
52
60
 
53
61
  ## Documentation 📃
54
- Docs..
62
+ [Docs](https://anilibria-api-client.readthedocs.io/latest/)
55
63
  ## Issues/Contributing
56
64
  ### Issues
57
65
  Report for any issues [here](https://github.com/semen-bol/Anilibria-Api-Client/issues)
@@ -1,7 +1,7 @@
1
1
  # Anilibria-Api-Client
2
2
 
3
3
  [![pypi](https://img.shields.io/badge/anilibria_api_client_on_PyPi-blue)](https://pypi.org/project/anilibria-api-client)
4
- ![version](https://img.shields.io/badge/Version-0.1.4-blue)
4
+ ![version](https://img.shields.io/badge/Version-0.1.6-blue)
5
5
  ![licence](https://img.shields.io/badge/License-MIT-green)
6
6
  ![python](https://img.shields.io/badge/Python-3.13%2B-blue)
7
7
 
@@ -33,7 +33,7 @@ async def main():
33
33
  ```
34
34
 
35
35
  ## Documentation 📃
36
- Docs..
36
+ [Docs](https://anilibria-api-client.readthedocs.io/latest/)
37
37
  ## Issues/Contributing
38
38
  ### Issues
39
39
  Report for any issues [here](https://github.com/semen-bol/Anilibria-Api-Client/issues)
@@ -0,0 +1,5 @@
1
+ from .api_client import *
2
+ from .types import *
3
+ from .models import *
4
+ from .exceptions import *
5
+ from .helper import *
@@ -0,0 +1,58 @@
1
+ from .base_api.api_class import AsyncBaseAPI
2
+ from typing import Optional, Dict, Any, Optional, Union
3
+
4
+ from .methods import (
5
+ AccountsMethod,
6
+ AdsMethod,
7
+ AnimeMethod,
8
+ AppMethod,
9
+ MediaMethod,
10
+ TeamsMethod
11
+ )
12
+
13
+ class AsyncAnilibriaAPI(AsyncBaseAPI):
14
+ """
15
+ Асинхронный клиент для работы с AnilibriaAPI
16
+ """
17
+ def __init__(
18
+ self,
19
+ base_url: str = "https://anilibria.top/api/v1",
20
+ authorization: str = "Bearer"
21
+ ):
22
+ headers = {
23
+ "Content-Type": "application/json",
24
+ "Authorization": authorization
25
+ }
26
+
27
+ super().__init__(base_url=base_url, headers=headers)
28
+
29
+ self.accounts = AccountsMethod(api=self)
30
+ self.ads = AdsMethod(api=self)
31
+ self.anime = AnimeMethod(api=self)
32
+ self.app = AppMethod(api=self)
33
+ self.media = MediaMethod(api=self)
34
+ self.teams = TeamsMethod(api=self)
35
+
36
+ async def execute(
37
+ self,
38
+ endpoint: str,
39
+ method: str = 'GET',
40
+ data: Optional[Union[Dict[str, Any], str, bytes]] = None,
41
+ json_data: Optional[Dict[str, Any]] = None,
42
+ headers: Optional[Dict[str, str]] = None,
43
+ **kwargs
44
+ ) -> Union[Dict[str, Any], str, bytes]:
45
+ """
46
+ Создание своего уникального запроса
47
+
48
+ :param method: Метод используемый для запроса, например GET (обязательно)
49
+ :param endpoint: Конечная точка API (обязательно)
50
+ :param data: Тело запроса
51
+ :param json_data: JSON тело запроса
52
+ :param headers: Дополнительные заголовки
53
+ :param kwargs: Дополнительные аргументы для aiohttp
54
+ :return: Ответ от API
55
+ """
56
+
57
+ return await self._request(method, endpoint, data=data, json_data=json_data, headers=headers, **kwargs)
58
+
@@ -0,0 +1,5 @@
1
+ class AnilibriaException(Exception):
2
+ pass
3
+
4
+ class AnilibriaValidationException(AnilibriaException):
5
+ pass
@@ -0,0 +1,93 @@
1
+ import m3u8_To_MP4
2
+ import os # only for path / make dir
3
+ import aiofiles
4
+
5
+ from .api_client import AsyncAnilibriaAPI
6
+ from .exceptions import AnilibriaException
7
+
8
+ from ffmpeg.asyncio import FFmpeg
9
+
10
+ async def async_download(url: str, output_path: str = None, filename: str = "output.mp4"):
11
+ """
12
+ Позволяет скачивать серию через URL (https://cache-rfn.libria.fun/videos/media/)
13
+ ffmpeg required
14
+
15
+ Args:
16
+ url: Ссылка на m3u8 плейлист
17
+ output_path: Полный путь к выходному файлу (включая имя файла и расширение .mp4)
18
+ """
19
+ if output_path is None:
20
+ mp4_file_dir = os.getcwd()
21
+ mp4_file_name = filename
22
+ else:
23
+ mp4_file_dir = os.path.dirname(output_path)
24
+ mp4_file_name = os.path.basename(output_path)
25
+
26
+ if not mp4_file_dir:
27
+ mp4_file_dir = os.getcwd()
28
+
29
+ if not os.path.exists(mp4_file_dir):
30
+ os.makedirs(mp4_file_dir, exist_ok=True)
31
+
32
+ return m3u8_To_MP4.multithread_download(
33
+ m3u8_uri=url,
34
+ mp4_file_dir=mp4_file_dir,
35
+ mp4_file_name=mp4_file_name
36
+ )
37
+
38
+ async def async_ffmpeg_download(url: str, output_path: str) -> bool:
39
+ """
40
+ Скачивание m3u8 через ffmpeg с обходом блокировок (при блокировки основного метода async_download)
41
+
42
+ Может быть медленным, используйте хороший интернет
43
+
44
+ Args:
45
+ url: Ссылка
46
+ output_path: Путь для сохранения MP4 файла
47
+ """
48
+ try:
49
+ ffmpeg = (
50
+ FFmpeg()
51
+ .input(url)
52
+ .output(output_path, **{
53
+ "vcodec": "libx264",
54
+ "crf": 27,
55
+ "preset": "veryfast",
56
+ "c:a": "copy",
57
+ "bsf:a": "aac_adtstoasc"
58
+ }
59
+ )
60
+ )
61
+ await ffmpeg.execute()
62
+ return True
63
+
64
+ except KeyError:
65
+ return "Запрашиваемое видео недоступно."
66
+ except ValueError:
67
+ return "Неверная ссылка."
68
+ except Exception as e:
69
+ return "Произошла непредвиденная ошибка при загрузке видео: " + str(e)
70
+
71
+ async def auth(api: AsyncAnilibriaAPI, login: str, password: str):
72
+ try:
73
+ res = await api.accounts.users_auth_login(login=login, password=password)
74
+
75
+ return AsyncAnilibriaAPI(authorization=f"Bearer {res.get("token")}")
76
+ except AnilibriaException as e:
77
+ raise AnilibriaException("Auth error!")
78
+
79
+ async def download_torrent_file(torrent_bytes: bytes, filename: str):
80
+ """
81
+ Асинхронно сохраняет .torrent файл
82
+
83
+ Args:
84
+ torrent_bytes: бинарные данные torrent-файла
85
+ filename: имя файла
86
+ """
87
+ if not filename.endswith('.torrent'):
88
+ filename += '.torrent'
89
+
90
+ async with aiofiles.open(filename, 'wb') as f:
91
+ await f.write(torrent_bytes)
92
+
93
+ return True
@@ -0,0 +1,55 @@
1
+ from pydantic import BaseModel
2
+ from typing import List
3
+ from .types import *
4
+
5
+ class TimeCode(BaseModel):
6
+ """
7
+ Класс для работы с этими методами:
8
+
9
+ accounts.users_me_views_timecodes_update
10
+ """
11
+ time: int
12
+ is_watched: bool
13
+ release_episode_id: str
14
+
15
+ class Release(BaseModel):
16
+ """
17
+ Класс для работы с этими методами:
18
+
19
+ anime.catalog_releases_get
20
+
21
+ anime.catalog_releases_post
22
+ """
23
+ page: int | None = None
24
+ limit: int | None = None
25
+ genres: str | None = None
26
+ types: List[ContentType] | None = None
27
+ seasons: List[Seasons] | None = None
28
+ from_year: int | None = None
29
+ to_year: int | None = None
30
+ search: str | None = None
31
+ sorting: SortType | None = None
32
+ age_ratings: List[AgeRating] | None = None
33
+ publish_statuses: List[PublishStatusesType] | None = None
34
+ production_statuses: List[ProductionStatusesType] | None = None
35
+ include: str | None = None
36
+ exclude: str | None = None
37
+
38
+ class ReleaseCollection(BaseModel):
39
+ """
40
+ Класс для работы с этими методами
41
+
42
+ users_me_collections_releases_get
43
+
44
+ users_me_collections_releases_post
45
+ """
46
+ type_of_collection: CollectionType
47
+ page: int | None = None
48
+ limit: int | None = None
49
+ genres: str | None = None
50
+ types: List[ContentType] | None = None
51
+ years: str | None = None
52
+ search: str | None = None
53
+ age_ratings: List[AgeRating] | None = None
54
+ include: str | None = None
55
+ exclude: str | None = None
@@ -0,0 +1,56 @@
1
+ from enum import Enum
2
+
3
+
4
+ class CollectionType(Enum):
5
+ """Типы коллекций"""
6
+ PLANNED = "PLANNED"
7
+ WATCHED = "WATCHED"
8
+ WATCHING = "WATCHING"
9
+ POSTPONED = "POSTPONED"
10
+ ABANDONED = "ABANDONED"
11
+
12
+
13
+ class ContentType(Enum):
14
+ """Типы контента"""
15
+ TV = "TV"
16
+ ONA = "ONA"
17
+ WEB = "WEB"
18
+ OVA = "OVA"
19
+ OAD = "OAD"
20
+ MOVIE = "MOVIE"
21
+ DORAMA = "DORAMA"
22
+ SPECIAL = "SPECIAL"
23
+
24
+ class AgeRating(Enum):
25
+ """Возрастные рейтинги"""
26
+ R0_PLUS = "R0_PLUS"
27
+ R6_PLUS = "R6_PLUS"
28
+ R12_PLUS = "R12_PLUS"
29
+ R16_PLUS = "R16_PLUS"
30
+ R18_PLUS = "R18_PLUS"
31
+
32
+ class Seasons(Enum):
33
+ """Сезоны"""
34
+ WINTER = "winter"
35
+ SPRING = "spring"
36
+ SUMMER = "summer"
37
+ AUTUMN = "autumn"
38
+
39
+ class SortType(Enum):
40
+ """Тип сортировки"""
41
+ FRESH_AT_DESC = "FRESH_AT_DESC"
42
+ FRESH_AT_ASC = "FRESH_AT_ASC"
43
+ RATING_DESC = "RATING_DESC"
44
+ RATING_ASC = "RATING_ASC"
45
+ YEAR_DESC = "YEAR_DESC"
46
+ YEAR_ASC = "YEAR_ASC"
47
+
48
+ class PublishStatusesType(Enum):
49
+ """Статус аниме (онгоинг)"""
50
+ IS_ONGOING = "IS_ONGOING"
51
+ IS_NOT_ONGOING = "IS_NOT_ONGOING"
52
+
53
+ class ProductionStatusesType(Enum):
54
+ """Статус аниме (в озвучке)"""
55
+ IS_IN_PRODUCTION = "IS_IN_PRODUCTION"
56
+ IS_NOT_IN_PRODUCTION = "IS_NOT_IN_PRODUCTION"
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: anilibria-api-client
3
- Version: 0.1.4
3
+ Version: 0.1.6
4
4
  Summary: Python async API wrapper for AniLibria Swagger
5
5
  Author-email: semen-bol <syoma.bolotov@bk.ru>
6
6
  License: MIT
7
7
  Project-URL: Homepage, https://github.com/semen-bol/Anilibria-Api-Client
8
8
  Project-URL: Issues, https://github.com/semen-bol/Anilibria-Api-Client/issues
9
- Requires-Python: >=3.11
9
+ Requires-Python: >=3.13
10
10
  Description-Content-Type: text/markdown
11
11
  License-File: LICENSE
12
12
  Requires-Dist: aiohttp==3.12.15
@@ -14,12 +14,20 @@ Requires-Dist: aiofiles==24.1.0
14
14
  Requires-Dist: pydantic==2.11.7
15
15
  Requires-Dist: m3u8-To-MP4==0.1.11
16
16
  Requires-Dist: ffmpeg-python==0.2.0
17
+ Provides-Extra: docs
18
+ Requires-Dist: sphinx>=7.0.0; extra == "docs"
19
+ Requires-Dist: sphinx-rtd-theme>=1.0.0; extra == "docs"
20
+ Requires-Dist: sphinx-autodoc-typehints>=1.0.0; extra == "docs"
21
+ Requires-Dist: sphinx_design>=0.6.1; extra == "docs"
22
+ Requires-Dist: furo>=2025.7.19; extra == "docs"
23
+ Requires-Dist: sphinx-hoverxref>=1.3.0; extra == "docs"
24
+ Requires-Dist: readthedocs-sphinx-search>=0.1.2; extra == "docs"
17
25
  Dynamic: license-file
18
26
 
19
27
  # Anilibria-Api-Client
20
28
 
21
29
  [![pypi](https://img.shields.io/badge/anilibria_api_client_on_PyPi-blue)](https://pypi.org/project/anilibria-api-client)
22
- ![version](https://img.shields.io/badge/Version-0.1.4-blue)
30
+ ![version](https://img.shields.io/badge/Version-0.1.6-blue)
23
31
  ![licence](https://img.shields.io/badge/License-MIT-green)
24
32
  ![python](https://img.shields.io/badge/Python-3.13%2B-blue)
25
33
 
@@ -51,7 +59,7 @@ async def main():
51
59
  ```
52
60
 
53
61
  ## Documentation 📃
54
- Docs..
62
+ [Docs](https://anilibria-api-client.readthedocs.io/latest/)
55
63
  ## Issues/Contributing
56
64
  ### Issues
57
65
  Report for any issues [here](https://github.com/semen-bol/Anilibria-Api-Client/issues)
@@ -0,0 +1,24 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ anilibria_api_client/__init__.py
5
+ anilibria_api_client/api_client.py
6
+ anilibria_api_client/exceptions.py
7
+ anilibria_api_client/helper.py
8
+ anilibria_api_client/models.py
9
+ anilibria_api_client/types.py
10
+ anilibria_api_client.egg-info/PKG-INFO
11
+ anilibria_api_client.egg-info/SOURCES.txt
12
+ anilibria_api_client.egg-info/dependency_links.txt
13
+ anilibria_api_client.egg-info/requires.txt
14
+ anilibria_api_client.egg-info/top_level.txt
15
+ anilibria_api_client/base_api/api_class.py
16
+ anilibria_api_client/methods/__init__.py
17
+ anilibria_api_client/methods/_helper.py
18
+ anilibria_api_client/methods/_libria.py
19
+ anilibria_api_client/methods/accounts.py
20
+ anilibria_api_client/methods/ads.py
21
+ anilibria_api_client/methods/anime.py
22
+ anilibria_api_client/methods/app.py
23
+ anilibria_api_client/methods/media.py
24
+ anilibria_api_client/methods/teams.py
@@ -0,0 +1,14 @@
1
+ aiohttp==3.12.15
2
+ aiofiles==24.1.0
3
+ pydantic==2.11.7
4
+ m3u8-To-MP4==0.1.11
5
+ ffmpeg-python==0.2.0
6
+
7
+ [docs]
8
+ sphinx>=7.0.0
9
+ sphinx-rtd-theme>=1.0.0
10
+ sphinx-autodoc-typehints>=1.0.0
11
+ sphinx_design>=0.6.1
12
+ furo>=2025.7.19
13
+ sphinx-hoverxref>=1.3.0
14
+ readthedocs-sphinx-search>=0.1.2
@@ -0,0 +1 @@
1
+ anilibria_api_client
@@ -4,14 +4,14 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "anilibria-api-client"
7
- version = "0.1.4"
7
+ version = "0.1.6"
8
8
  description = "Python async API wrapper for AniLibria Swagger"
9
9
  authors = [
10
10
  {name = "semen-bol", email = "syoma.bolotov@bk.ru"}
11
11
  ]
12
12
  license = {text = "MIT"}
13
13
  readme = "README.md"
14
- requires-python = ">=3.11"
14
+ requires-python = ">=3.13"
15
15
  dependencies = [
16
16
  "aiohttp==3.12.15",
17
17
  "aiofiles==24.1.0",
@@ -24,9 +24,18 @@ dependencies = [
24
24
  Homepage = "https://github.com/semen-bol/Anilibria-Api-Client"
25
25
  Issues = "https://github.com/semen-bol/Anilibria-Api-Client/issues"
26
26
 
27
- [tool.setuptools]
28
- packages = {find = {where = ["anilibria_api_client"]}}
29
- package-dir = {"" = "anilibria_api_client"}
27
+ [tool.setuptools.packages.find]
28
+ where = ["."]
29
+ include = ["anilibria_api_client*"]
30
+ exclude = ["tests*", "dist*", "build*", "docs*"]
30
31
 
31
- [tool.setuptools.package-data]
32
- "*" = ["*.py", "*.pyi", "**/*.py", "**/*.pyi"]
32
+ [project.optional-dependencies]
33
+ docs = [
34
+ "sphinx>=7.0.0",
35
+ "sphinx-rtd-theme>=1.0.0",
36
+ "sphinx-autodoc-typehints>=1.0.0",
37
+ "sphinx_design>=0.6.1",
38
+ "furo>=2025.7.19",
39
+ "sphinx-hoverxref>=1.3.0",
40
+ "readthedocs-sphinx-search>=0.1.2",
41
+ ]
@@ -1,18 +0,0 @@
1
- LICENSE
2
- README.md
3
- pyproject.toml
4
- anilibria_api_client/anilibria_api_client.egg-info/PKG-INFO
5
- anilibria_api_client/anilibria_api_client.egg-info/SOURCES.txt
6
- anilibria_api_client/anilibria_api_client.egg-info/dependency_links.txt
7
- anilibria_api_client/anilibria_api_client.egg-info/requires.txt
8
- anilibria_api_client/anilibria_api_client.egg-info/top_level.txt
9
- anilibria_api_client/base_api/api_class.py
10
- anilibria_api_client/methods/__init__.py
11
- anilibria_api_client/methods/_helper.py
12
- anilibria_api_client/methods/_libria.py
13
- anilibria_api_client/methods/accounts.py
14
- anilibria_api_client/methods/ads.py
15
- anilibria_api_client/methods/anime.py
16
- anilibria_api_client/methods/app.py
17
- anilibria_api_client/methods/media.py
18
- anilibria_api_client/methods/teams.py
@@ -1,5 +0,0 @@
1
- aiohttp==3.12.15
2
- aiofiles==24.1.0
3
- pydantic==2.11.7
4
- m3u8-To-MP4==0.1.11
5
- ffmpeg-python==0.2.0