Files
Cheviiot 32fe518259 Add torrent streamer, UI overhaul, switch to GPL
Major updates: adds a libtorrent-based streaming service and refactors UI/behaviour.

Key changes:
- Add streaming service (src/kadr/services/streamer.py): HTTP server + sequential download streamer using libtorrent, StreamLog, buffering/ready states and local streaming URL.
- Rework Detail view (src/kadr/views/detail.py): new hero/backdrop layout, poster sizing, metadata chips, tagline, overview, cast placeholder and a "Watch" action that navigates to a Torrents view; loads full TMDB details/credits asynchronously.
- UI styling (src/kadr/data/style.css): many new classes for detail/hero/cast styling.
- Downloads manager improvements (src/kadr/services/downloads.py): temp dir for torrents, cleanup of stale files, history size cap, unified client launch with error handling.
- TMDB client refactor (src/kadr/services/tmdb.py): unified _fetch helper, added movie_credits/tv_credits endpoints.
- Utils improvements (src/kadr/utils.py): thread-safe LRU image cache, image download concurrency, and slight clipboard command ordering tweak.
- Jackett servers list updated (src/kadr/services/jackett.py): reorder/add servers.
- Project metadata & licensing: switch LICENSE to GPL-3.0-or-later, update pyproject.toml and application about dialog to GPL, adjust package/version in pyproject and __init__.
- README revamped (README.md): reorganized, added badges, Russian text, install/usage sections.
- Added new view/widget files (player/torrents/mpv_widget) and other UI tweaks across widgets/window.

These changes add streaming playback capability, tighten resource handling, and refresh the detail UI while changing the project license to GPL-3.0-or-later.
2026-04-01 22:00:37 +10:00

100 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<p align="center">
<img src="data/Kadr.png" alt="Kadr" width="128">
</p>
<h1 align="center">Kadr</h1>
<p align="center">
Поиск торрентов фильмов и сериалов через TMDB и Jackett
</p>
<p align="center">
<img src="https://img.shields.io/badge/GTK-4-4a86cf?style=flat-square" alt="GTK 4">
<img src="https://img.shields.io/badge/Libadwaita-1-3584e4?style=flat-square" alt="Libadwaita">
<img src="https://img.shields.io/badge/Python-3.10+-3776ab?style=flat-square" alt="Python 3.10+">
<a href="LICENSE"><img src="https://img.shields.io/badge/License-GPL--3.0-green?style=flat-square" alt="GPL-3.0"></a>
</p>
## О проекте
Kadr — приложение для поиска торрентов фильмов и сериалов.
Показывает каталог из TMDB с постерами и рейтингами, ищет торренты через публичные
Jackett-серверы и отправляет загрузку в любимый торрент-клиент — всё из одного окна.
## Возможности
- **Каталог** — популярные фильмы и сериалы из TMDB, постеры, рейтинги, бесконечная подгрузка
- **Поиск** — поиск по названию в реальном времени с пагинацией
- **Торренты** — поиск через публичные Jackett-серверы (jacred.xyz, jac-red.ru, jac.red), без настройки
- **Загрузка** — отправка в FDM, qBittorrent, Transmission, Deluge, KTorrent одним кликом
- **Автовыбор** — автоматический выбор работающего сервера, прокси и клиента
- **Настройки** — выбор сервера, TMDB-прокси, торрент-клиента с проверкой доступности
- **Локализация** — интерфейс на русском языке
## Установка
### Из исходников
```
git clone https://github.com/Cheviiot/Kadr.git
cd Kadr
./kadr
```
<details>
<summary><strong>Зависимости</strong></summary>
| Дистрибутив | Команда |
|------------------|---------------------------------------------------------------------------------|
| ALT Linux | `apt-get install python3-module-pygobject3 libgtk4 libadwaita python3-module-requests` |
| Fedora | `dnf install python3-gobject gtk4 libadwaita python3-requests` |
| Arch | `pacman -S python-gobject gtk4 libadwaita python-requests` |
| Debian / Ubuntu | `apt install python3-gi gir1.2-gtk-4.0 gir1.2-adw-1 python3-requests` |
</details>
## Использование
### Как работает Kadr
| Шаг | | |
|---|---|---|
| **1** | **Выбери фильм или сериал** | Найди в каталоге или через поиск (Ctrl+F) |
| **2** | **Открой детали** | Нажми на карточку — откроется страница с описанием |
| **3** | **Найди торрент** | Торренты загружаются автоматически с Jackett-серверов |
| **4** | **Скачай** | Нажми кнопку загрузки — файл откроется в торрент-клиенте |
### Горячие клавиши
| Действие | Комбинация |
|-------------|-------------|
| Поиск | `Ctrl+F` |
| Настройки | `Ctrl+,` |
| Выход | `Ctrl+Q` |
## Настройки
| Параметр | Варианты | По умолчанию |
|------------------|-------------------------------------------|----------------|
| Торрент-сервер | Автоматически / jacred.xyz / jac-red.ru / jac.red | Автоматически |
| TMDB-прокси | Автоматически / Напрямую / APN Render | Автоматически |
| Торрент-клиент | Автоматически / FDM / qBittorrent / Transmission / Deluge / KTorrent | Автоматически |
## Данные
| Путь | Содержимое |
|-----------------------------------|----------------------|
| `~/.config/Kadr/settings.json` | Настройки |
## Участие в разработке
> Это личный проект. Kadr создаётся одним человеком для собственного использования при помощи ИИ.
Код полностью открыт. Если хотите помочь — Pull Request и Issue приветствуются:
исправление ошибок, новые функции, переводы.
## Лицензия
[GPL-3.0-or-later](LICENSE)