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.
- {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/PKG-INFO +12 -4
- {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/README.md +2 -2
- anilibria_api_client-0.1.6/anilibria_api_client/__init__.py +5 -0
- anilibria_api_client-0.1.6/anilibria_api_client/api_client.py +58 -0
- anilibria_api_client-0.1.6/anilibria_api_client/exceptions.py +5 -0
- anilibria_api_client-0.1.6/anilibria_api_client/helper.py +93 -0
- anilibria_api_client-0.1.6/anilibria_api_client/models.py +55 -0
- anilibria_api_client-0.1.6/anilibria_api_client/types.py +56 -0
- {anilibria_api_client-0.1.4/anilibria_api_client → anilibria_api_client-0.1.6}/anilibria_api_client.egg-info/PKG-INFO +12 -4
- anilibria_api_client-0.1.6/anilibria_api_client.egg-info/SOURCES.txt +24 -0
- anilibria_api_client-0.1.6/anilibria_api_client.egg-info/requires.txt +14 -0
- anilibria_api_client-0.1.6/anilibria_api_client.egg-info/top_level.txt +1 -0
- {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/pyproject.toml +16 -7
- anilibria_api_client-0.1.4/anilibria_api_client/anilibria_api_client.egg-info/SOURCES.txt +0 -18
- anilibria_api_client-0.1.4/anilibria_api_client/anilibria_api_client.egg-info/requires.txt +0 -5
- anilibria_api_client-0.1.4/anilibria_api_client/anilibria_api_client.egg-info/top_level.txt +0 -2
- {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/LICENSE +0 -0
- {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/base_api/api_class.py +0 -0
- {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/__init__.py +0 -0
- {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/_helper.py +0 -0
- {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/_libria.py +0 -0
- {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/accounts.py +0 -0
- {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/ads.py +0 -0
- {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/anime.py +0 -0
- {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/app.py +0 -0
- {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/media.py +0 -0
- {anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/teams.py +0 -0
- {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
- {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.
|
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.
|
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
|
[](https://pypi.org/project/anilibria-api-client)
|
22
|
-

|
23
31
|

|
24
32
|

|
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
|
[](https://pypi.org/project/anilibria-api-client)
|
4
|
-

|
5
5
|

|
6
6
|

|
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,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,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.
|
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.
|
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
|
[](https://pypi.org/project/anilibria-api-client)
|
22
|
-

|
23
31
|

|
24
32
|

|
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.
|
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.
|
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
|
-
|
29
|
-
|
27
|
+
[tool.setuptools.packages.find]
|
28
|
+
where = ["."]
|
29
|
+
include = ["anilibria_api_client*"]
|
30
|
+
exclude = ["tests*", "dist*", "build*", "docs*"]
|
30
31
|
|
31
|
-
[
|
32
|
-
|
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
|
File without changes
|
{anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/base_api/api_class.py
RENAMED
File without changes
|
{anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/__init__.py
RENAMED
File without changes
|
{anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/_helper.py
RENAMED
File without changes
|
{anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/_libria.py
RENAMED
File without changes
|
{anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/accounts.py
RENAMED
File without changes
|
{anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/ads.py
RENAMED
File without changes
|
{anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/anime.py
RENAMED
File without changes
|
{anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/app.py
RENAMED
File without changes
|
{anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/media.py
RENAMED
File without changes
|
{anilibria_api_client-0.1.4 → anilibria_api_client-0.1.6}/anilibria_api_client/methods/teams.py
RENAMED
File without changes
|
File without changes
|
File without changes
|