Skip to main content

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.4.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anicli_api-0.4.4-py3-none-any.whl (29.9 kB view details)

Uploaded Python 3

File details

Details for the file anicli_api-0.4.4.tar.gz.

File metadata

  • Download URL: anicli_api-0.4.4.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

Hashes for anicli_api-0.4.4.tar.gz
Algorithm Hash digest
SHA256 1d1fe043fe8d22d84970bfdeb2717f7864ed19d4957dd58c30a3bb140894c718
MD5 38cd1395f5183362c706556ecc209c6a
BLAKE2b-256 c0bae8c6a44669949e185bac350e3d567189966dd83fd6de727f63b9ff483ef2

See more details on using hashes here.

File details

Details for the file anicli_api-0.4.4-py3-none-any.whl.

File metadata

  • Download URL: anicli_api-0.4.4-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

Hashes for anicli_api-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0e1491f819f93667dc82c2cb4a13e1b22ba9c7d2501ac5253211481288e4d6d5
MD5 8ebe5fb992ccccfe752ed94e2a54c0a8
BLAKE2b-256 4372a9698a63b0c6e5b45d48861cbaec0899424df6a3b78b16a81da700ed0248

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page