Files
oxpanel25/app/torrent/tasks.py
2026-04-11 22:07:59 +02:00

25 lines
791 B
Python

from celery import shared_task
from app.utils import send_sync_channel_message
from .models import Torrent
from .utils import transmission_handler
@shared_task
def update_transmission_data():
data = transmission_handler.get_all_data()
updated_torrents = []
for torrent in Torrent.objects.all():
if torrent.id in data and torrent.transmission_data != data[torrent.id]:
torrent.transmission_data = data[torrent.id]
updated_torrents.append(torrent)
if updated_torrents:
Torrent.objects.bulk_update(updated_torrents, ["transmission_data"])
send_sync_channel_message(
"torrent",
"transmission_data_updated",
{torrent.id: torrent.transmission_data for torrent in updated_torrents},
)