Metadata-Version: 2.3
Name: anicli-ru
Version: 5.0.11
Summary: cli tool for watching anime
Project-URL: Documentation, https://github.com/vypivshiy/ani-cli-ru#readme
Project-URL: Issues, https://github.com/vypivshiy/ani-cli-ru/issues
Project-URL: Source, https://github.com/vypivshiy/ani-cli-ru
Author: vypivshiy
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.8
Requires-Dist: anicli-api
Requires-Dist: eggella
Requires-Dist: setuptools
Description-Content-Type: text/markdown

# anicli-ru

___
 Скрипт для поиска и просмотра аниме из терминала с русской озвучкой или субтитрами.
Поддерживает unix, linux, windows 10/11 (windows terminal)

https://github.com/vypivshiy/ani-cli-ru/assets/59173419/bf7e78bd-cdd1-4871-a5b3-f48e6ed7ec28


# Установка

## API

[anicli-api](https://github.com/vypivshiy/anicli-api) Если вам нужен только программный API интерфейс и информация об используемых парсерах

## Клиент

### Плеер

Для работы этого клиента требуется внешний видеоплеер. 
Рекомендуется ставить через менеджер пакетов:

- mpv (рекомендуется)
- vlc (мало тестов, корректная работоспособность не гарантируется)

### CLI

Рекомендуется устанавливать через [pipx](https://pipx.pypa.io/stable/installation/)

#### pipx (рекомендуется)

```shell
pipx install anicli-ru 
```

Обновление:

```shell
pipx upgrade anicli-ru
```

#### pip (не рекомендуется)

```shell
pip install anicli-ru
```

# Usage:

```shell
anicli-ru
```

## Примеры:

Сменить источник:

```shell
anicli-ru -s anilibria
```

Запуск поиска/онгоингов при старте:

```shell
# запуск и поиск тайтлов по фразе `lain`
anicli-ru --search "lain"
# запуск и вывод онгоингов
anicli-ru --ongoing
```

Передача дополнительных аргументов в плеер. 
Например, если у вас специально настроенный профиль в mpv плеере:

```shell
anicli-ru -pa="--profile=my_profile" 
```

## Ключи запуска

```
-s --source - выбор источника. По умолчанию "animego"
-q --quality - минимально выбранное разрешение видео. Доступны: 0, 144, 240, 360, 480, 720, 1080. По умолчанию 1080
  Например, если вы установили 1080 и такое видео отсутстует - выведет максимально допустимое 
--ffmpeg - использовать ffmpeg для перенаправления видеопотока в видеоплеер
-p --player - какой видеоплеер использовать. доступны "vlc", "mpv". По умолчанию "mpv"
--m3u - для SLICE-режима просмотра создавать плейлист (ЭКСПЕРИМЕНТАЛЬНЫЙ РЕЖИМ, СОБИРАЕТ ВИДЕО МЕДЛЕННО)
--m3u-size - максимальный размер m3u плейлиста. По умолчанию 12
-pa --playlist-args - дополнительные аргументы для плеера. Например, -pa="--profile=foo" -pa="--no-video". 
  подробнее о них смотрите в документации по плееру
--search - запустить и найти тайтл по строке
--ongoing - запустить и найти онгоинги
```

## Прочее

~~Если вы будете использовать плеер без поддержки настройки http заголовков - рекомендуется 
дополнительно установить `ffmpeg` для перенаправления видео потока.~~

---

Отличия от старой версии:

- Клиент основан на prompt-toolkit, реализована надстройка [eggella](https://github.com/vypivshiy/eggella)
- [Api интерфейс парсера](https://github.com/vypivshiy/anicli-api/tree/dev) и Cli клиента 
разделены в отдельные репозитории. Также, API интерфейс поддерживает asyncio!
- http клиент заменен с `requests` на `httpx` со следующими модификациями:
    - **http2** протокол по умолчанию
    - минимальные надстройки headers для работы
    - retry-connect подключения
    - обнаружение ddos защиты источника
    - парсеры работают в связке  `parsel`, `chompjs`, `jmespath` и `regex` библиотек


## Roadmap
- [x] минимальная реализация
- [x] выбор источника
- [x] ffmpeg адаптер
- [x] конфигурация http клиента (прокси, таймаут)
- [ ] кеширование
- [ ] синхронизация с shikimori
- [ ] поиск и переключение по нескольким источникам в одной сессии (без перезапуска)
- [ ] конфигурация приложения
- [ ] система плагинов, кастомизация (?)
- [ ] простой http сервер-прослойка для передачи видео в плееры
