Добавлена система уведомлений о завершении загрузки в Telegram
- Реализован класс DownloadMonitor для мониторинга загрузок в qBittorrent - Добавлена автоматическая аутентификация в qBittorrent API - Система проверяет статус загрузок каждые 30 секунд - Автоматические уведомления при завершении загрузки: * ✅ Успешное завершение с информацией о фильме и торренте * ❌ Уведомления об ошибках загрузки - Интеграция с API: возврат torrent_hash и torrent_name - Отслеживание загрузок по hash с привязкой к пользователю - Фоновый мониторинг через отдельный поток - Уведомления отправляются напрямую в Telegram чат пользователя Технические детали: - Добавлен класс DownloadMonitor в telegram_bot.py - Модифицирован API endpoint /api/add-torrent в app.py - Добавлена поддержка возврата torrent_hash и torrent_name - Реализована система отслеживания активных загрузок - Автоматическое удаление из мониторинга после уведомления Теперь пользователи получают уведомления: 🎉 'Фильм скачался!' - при успешном завершении ❌ 'Ошибка загрузки' - при проблемах с загрузкой
This commit is contained in:
parent
bc461d36a6
commit
215b471a5e
2 changed files with 183 additions and 3 deletions
21
app.py
21
app.py
|
|
@ -684,9 +684,19 @@ async def add_torrent_to_client(torrent_id: str = Form(...)):
|
|||
torrent_hash = torrent_info.get('hash', '').upper()
|
||||
for torrent in torrents:
|
||||
if torrent.get('hash', '').upper() == torrent_hash:
|
||||
return {"status": "success", "message": f"Торрент '{torrent_info.get('title', 'Unknown')[:50]}...' добавлен в qBittorrent через magnet-ссылку!"}
|
||||
return {
|
||||
"status": "success",
|
||||
"message": f"Торрент '{torrent_info.get('title', 'Unknown')[:50]}...' добавлен в qBittorrent через magnet-ссылку!",
|
||||
"torrent_hash": torrent.get('hash'),
|
||||
"torrent_name": torrent_info.get('title', 'Unknown')
|
||||
}
|
||||
|
||||
return {"status": "success", "message": f"Торрент '{torrent_info.get('title', 'Unknown')[:50]}...' добавлен в qBittorrent через magnet-ссылку!"}
|
||||
return {
|
||||
"status": "success",
|
||||
"message": f"Торрент '{torrent_info.get('title', 'Unknown')[:50]}...' добавлен в qBittorrent через magnet-ссылку!",
|
||||
"torrent_hash": torrent_hash,
|
||||
"torrent_name": torrent_info.get('title', 'Unknown')
|
||||
}
|
||||
else:
|
||||
print(f"Magnet link failed, trying .torrent file...")
|
||||
|
||||
|
|
@ -703,7 +713,12 @@ async def add_torrent_to_client(torrent_id: str = Form(...)):
|
|||
print(f"Add via .torrent response text: {add_response.text}")
|
||||
|
||||
if add_response.status_code == 200 and add_response.text.strip() == "Ok.":
|
||||
return {"status": "success", "message": f"Торрент '{torrent_info.get('title', 'Unknown')[:50]}...' добавлен в qBittorrent через .torrent файл!"}
|
||||
return {
|
||||
"status": "success",
|
||||
"message": f"Торрент '{torrent_info.get('title', 'Unknown')[:50]}...' добавлен в qBittorrent через .torrent файл!",
|
||||
"torrent_hash": torrent_info.get('hash', ''),
|
||||
"torrent_name": torrent_info.get('title', 'Unknown')
|
||||
}
|
||||
else:
|
||||
return {"status": "error", "message": f"Ошибка добавления торрента (HTTP {add_response.status_code}): {add_response.text}"}
|
||||
else:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue