TorFlash — приложение для Linux: поиск торрентов, скачивание и копирование на флешку в одно нажатие

Страницы:  1

Ответить
 

Professor Seleznov


Проблема
У меня телевизор, который читает файлы с USB-флешки. Флешка отформатирована в FAT32, а значит — максимум 4 ГБ на файл. Типичный вечер выглядит так:
  • Открыть браузер → найти торрент
  • Открыть KTorrent → добавить → ждать
  • Открыть файловый менеджер → скопировать на флешку
  • Упс, файл 8 ГБ → найти mkvmerge → разбить → скопировать заново
  • Безопасно извлечь
Пять шагов и три приложения. Мне надоело.
Решение
TorFlash — Linux-приложение на PyQt5, которое объединяет все эти шаги в одно окно:
  • Поиск по Rutor (с фоллбэком на зеркала), NoNaMe-Club и RuTracker (с логином и прокси)
  • Скачивание через libtorrent-rasterbar — параллельные загрузки, выбор файлов, возобновление
  • Копирование на флешку — автоматическое определение USB на /run/media/$USER/*
  • Умное разбиение для FAT32: MKV через mkvmerge --split (каждая часть — воспроизводимый файл), остальные форматы — побайтовое разбиение
Как выглядит
pic
screenshot
Слева — результаты поиска, справа — карточка с постером, скриншотами и mediainfo. Прогресс встроен в карточку: синий — скачивание, зелёный — копирование.
Что ещё умеет
Библиотека и раздача
  • Всё скачанное остаётся в ~/Storage и раздаётся, пока приложение открыто
  • При перезапуске раздача восстанавливается через resume_data
  • Пауза/возобновление/перепроверка для каждого торрента
Детали раздачи
  • Постер + галерея скриншотов (парсится со страницы торрента)
  • Mediainfo — кодек, разрешение, аудиодорожки, длительность
  • График скорости в реальном времени
  • Статистика за день и за всё время (хранение 90 дней)
Флешка
  • Вкладка управления: свободное место, список файлов, удаление, открыть в FM
  • Безопасное извлечение через udisksctl — показывает процесс, если устройство занято
  • “Отложенное копирование” — если флешка вставлена позже, копирование произойдёт автоматически
Приложение
  • Светлая/тёмная/авто тема
  • Русский и английский интерфейс
  • Автозапуск, сворачивание в трей, лимиты скорости
  • Автообновление с GitHub Releases
  • CLI-режим для headless: torflash_cli.pysearch "запрос"
Технические детали
Стек: Python 3.11, PyQt5, libtorrent-rasterbar, requests
Никаких BeautifulSoup или Scrapy — HTML парсится регулярками. Звучит как антипаттерн, но для конкретных сайтов с фиксированной структурой работает быстро и без лишних зависимостей.
Архитектура:
  • SearchWorker — скрапит HTML в отдельном потоке
  • SeedSession — единый libtorrent.session на всё приложение, библиотека в JSON
  • DownloadWorker — добавляет торренты в сессию, следит за прогрессом
  • CopyWorker — стриминговое копирование с разбиением
  • providers/ — подключаемые провайдеры поиска (легко добавить свой)
Собирается в один бинарник через PyInstaller (~50 МБ). Не требует pip install — только системные Qt5 и glibc.
Установка
# Бинарник (рекомендуется)
curl -L -o TorFlash https://github.com/steveast/torflash/releases/latest/download/TorFlash
chmod +x TorFlash && ./TorFlash
# Из исходников (Arch)
sudo pacman -S libtorrent-rasterbar python-pyqt5 python-requests mkvtoolnix-cli
git clone https://github.com/steveast/torflash.git && cd torflash
python3 src/rutor_search.py
-Источник
 
Loading...
Error