Anime extractor api implementation
Project description
# anicli-api
Программный интерфейс набора парсеров аниме с различных источников.
# requirements
```python
ht
```
Присутствует поддержка sync и async методов с помощью `httpx` библиотеки
Парсеры работают на REST-API (если у источника есть доступ), parsel и обёртки scrape-schema
# install
`pip install anicli-api`
# Overview
Структура проекта
```
anicli_api
├── base.py - базовый класс модуля-парсера
├── _http.py - сконфигурированный классы httpx
├── _logger.py - логгер
├── player - модули получения ссылок на видео
│ ├── __template__.py - шаблон модуля PlayerExtractor
│ ├── ... ready-made модули
│ ...
├── source - модули парсеров с источников
│ ├── __template__.py
│ ├─ ... ready-made парсеры
│ ...
└── tools - прочие модули
```
Модули имеют следующий алгоритм пошагового получения объектов:
```shell
# Extractor works schema:
[Extractor]
| search(<query>)/ongoing() -> List[Search | Ongoing]
V
[Search | Ongoing]
| get_anime() -> AnimeInfo
V
[Anime]
| get_episodes() -> List[Episode]
V
[Episode]
| get_videos() -> List[Video]
V
[Source]
| get_source() -> MetaVideo or Str
V
Video(type, quality, url, extra_headers) or url
```
# Quickstart example
Демонстрация простого prompt-line приложения.
```python
from anicli_api.source.animejoy import Extractor # или любой другой источник
if __name__ == '__main__':
ex = Extractor()
while True:
print("PRESS CTRL + C for exit")
results = ex.search(input("search query > "))
print(*[f"{i}) {r}" for i, r in enumerate(results)], sep="\n")
anime = results[int(input("anime > "))].get_anime()
episodes = anime.get_episodes()
print(*[f"{i}) {ep}" for i, ep in enumerate(episodes)], sep="\n")
episode = episodes[int(input("episode > "))]
sources = episode.get_sources()
print(*[f"{i}) {source}" for i, source in enumerate(sources)])
source = sources[int(input("source > "))]
videos = source.get_videos()
print(*videos, sep="\n")
video = videos[int(input("video > "))]
print(video.type, video.quality, video.url, video.headers)
```
С asyncio аналогично, но методы получения объектов имеют префикс `a_`
# Video
Объект `Video` (полученный из `Source.get_video` или `Source.a_get_video`) имеет следующую структуру:
* type - тип видео
* quality - разрешение видео
* url - прямая ссылка на видео
* headers - заголовки требуемые для воспроизведения видео.
Если возвращает пустой словарь - заголовки не нужны
# Примечания
Проект разработан преимущественно на личное, некоммерческое использование с client-side
стороны.
Автор проекта не несет ответственности за поломки, убытки в высоко нагруженных проектах и решение
предоставляется "Как есть" в соответствии с [MIT](LIENSE) лицензией.
**Этот проект не включает инструменты кеширования и сохранения всех полученных данных,
только готовые реализации парсеров**
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
anicli_api-0.4.2.tar.gz
(20.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file anicli_api-0.4.2.tar.gz.
File metadata
- Download URL: anicli_api-0.4.2.tar.gz
- Upload date:
- Size: 20.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.10.6 Linux/5.15.0-72-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a41fa8333108d4091571b01b537af17b3111df32da1a095c4620eb29261cbca5
|
|
| MD5 |
0db66a634fcc335f1842a65dde5ff8ba
|
|
| BLAKE2b-256 |
f99fb97a50ab186bf03fb0c87b09385737e7eab5bdc8b9cd646e957abbea7721
|
File details
Details for the file anicli_api-0.4.2-py3-none-any.whl.
File metadata
- Download URL: anicli_api-0.4.2-py3-none-any.whl
- Upload date:
- Size: 29.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.10.6 Linux/5.15.0-72-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a4e505e82bac7fd16c95df941370bb504fc1d97f658a32a995c7fa68a51ed67
|
|
| MD5 |
ab8fd16425318b0f1ac28e779b74f9da
|
|
| BLAKE2b-256 |
a7e7eb357a720dd5e7c403ce5e51a4b9c224fd2987befe0d30ea6b3ba05faa26
|