TorrentMonitor Go следит за форумными торрент-раздачами, обнаруживает обновления и отправляет новый .torrent в qBittorrent. Трекеры описываются декларативными YAML-шаблонами, поэтому поддержку нового сайта можно добавить без изменения Go-кода.
- периодическая и ручная проверка тем;
- автоматическая проверка сразу после добавления темы;
- загрузка обновлённого
.torrentи отправка в qBittorrent; - отдельный путь сохранения для каждой темы;
- сохранение info-hash и безопасная обработка уже существующей раздачи;
- встроенные шаблоны RuTracker, NNM-Club и Tapochek.net;
- подключение и автоматическое обновление внешних шаблонов;
- уведомления Telegram;
- HTTP/SOCKS-прокси для Native HTTP и отдельных интеграций;
- общий скрипт после обновления;
- SQLite, JSON и временное in-memory хранилище;
- светлая, тёмная и системная тема интерфейса.
Режим выбирается отдельно для каждого трекера в разделе Учётные данные.
TorrentMonitor самостоятельно выполняет HTTP-запросы, авторизацию и загрузку .torrent.
Преимущества:
- минимальное потребление памяти и CPU;
- подходит для роутеров, одноплатных компьютеров и слабых ARM-устройств;
- не требует графической сессии;
- поддерживает глобальный User-Agent и прокси;
- сохраняет session cookie в базе.
Native HTTP следует использовать всегда, когда трекер не требует JavaScript, Cloudflare или интерактивную CAPTCHA.
TorrentMonitor подключается к Chromium через Chrome DevTools Protocol и использует постоянный браузерный профиль. Страницы темы и загрузка могут выполняться в той же авторизованной сессии.
В веб-интерфейсе доступен просмотр интерактивной браузерной сессии. В ней можно вручную:
- войти на трекер;
- пройти CAPTCHA;
- пройти Cloudflare или другую JavaScript-проверку;
- подтвердить дополнительные запросы сайта.
После успешной авторизации профиль сохраняется и повторно используется планировщиком. Chromium можно запустить самим TorrentMonitor в существующей графической сессии либо отдельным сервисом внутри headless Weston.
git clone --recurse-submodules https://github.com/lifespirit/TorrentMonitor-go.git
cd TorrentMonitor-go
CGO_ENABLED=1 go run ./cmd/torrentmonitorПо умолчанию интерфейс слушает :8080, а база создаётся в ~/.local/share/torrentmonitor-go/torrentmonitor.sqlite3.
Откройте http://127.0.0.1:8080.
| Переменная | Назначение | Значение по умолчанию |
|---|---|---|
TM_LISTEN |
Адрес HTTP-сервера | :8080 |
TM_STORE |
sqlite, json или memory |
sqlite |
TM_DATA_FILE |
Путь к базе/JSON | каталог данных пользователя |
TM_MONITOR_INTERVAL |
Начальный интервал планировщика | 15m |
TM_TEMPLATE_DIR |
Каталог внешних шаблонов | каталог данных пользователя |
TM_TEMPLATE_SOURCE_URL |
ZIP/YAML/JSON/каталог с шаблонами | пусто |
TM_BROWSER_CONNECT_URL |
DevTools URL внешнего Chromium | пусто |
TM_BROWSER_BINARY |
Путь к Chromium | автоопределение |
TM_BROWSER_PROFILE_BASE |
Базовый каталог профилей | каталог данных пользователя |
TM_BROWSER_DEBUG |
Дополнительные логи BrowserBroker | false |
Большинство параметров после первого запуска настраивается и сохраняется через веб-интерфейс.
Встроенные шаблоны всегда доступны. Внешние YAML/JSON из template_directory загружаются поверх них: новый id дополняет registry, а совпадающий id переопределяет встроенный шаблон.
Рекомендуемый источник официального набора:
https://github.com/lifespirit/TorrentMonitor-templates/archive/refs/heads/main.zip
GNU General Public License v3.0. См. LICENSE.