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.2.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.2-py3-none-any.whl (29.9 kB view details)

Uploaded Python 3

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

Hashes for anicli_api-0.4.2.tar.gz
Algorithm Hash digest
SHA256 a41fa8333108d4091571b01b537af17b3111df32da1a095c4620eb29261cbca5
MD5 0db66a634fcc335f1842a65dde5ff8ba
BLAKE2b-256 f99fb97a50ab186bf03fb0c87b09385737e7eab5bdc8b9cd646e957abbea7721

See more details on using hashes here.

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

Hashes for anicli_api-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8a4e505e82bac7fd16c95df941370bb504fc1d97f658a32a995c7fa68a51ed67
MD5 ab8fd16425318b0f1ac28e779b74f9da
BLAKE2b-256 a7e7eb357a720dd5e7c403ce5e51a4b9c224fd2987befe0d30ea6b3ba05faa26

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