feat: implement seeding functionality and enhance download management with seeded magnets tracking

This commit is contained in:
Vxrtrauter
2026-03-08 12:00:00 +01:00
parent dcc12c0b28
commit 8d1b3ba68f
5 changed files with 28 additions and 3 deletions
+1
View File
@@ -30,6 +30,7 @@ class AppState(QObject):
self.settings_path: str = ""
self.dl_session: Any = None
self.active_downloads: Dict = {}
self.seeded_magnets: set = set()
self.window_transparency: bool = False
self.interfaces: List = []
self.active_interfaces: List = []
+2 -1
View File
@@ -1,5 +1,5 @@
from core.utils.logging.logs import consoleLog, remove_download_log
from core.utils.network.download import run_download_direct
from core.utils.network.download import run_download_direct, seed_magnet
import os
@@ -22,6 +22,7 @@ def check_downloads(downloads):
for download in downloads:
if os.path.exists(download.path):
consoleLog(f"Existing Download: {download.title}")
seed_magnet(download.magnet_uri, download.path)
else:
consoleLog(f"Inexistent Download: {download.title}")
remove_download_log(download.magnet_uri)
+6 -1
View File
@@ -4,6 +4,7 @@ from core.utils.data.tracker import get_magnet_link
from core.network.libtorrent_wrapper import add_download
from core.utils.general.wrappers import run_thread
from core.utils.logging.logs import add_download_log
from core.network.libtorrent_int import add_seed
import threading
@@ -25,4 +26,8 @@ def run_download(item, posts, post_titles):
def run_download_direct(magnet_uri):
consoleLog(f"Direct download: {magnet_uri[:60]}")
add_download(magnet_uri)
add_download_log("Direct Download", "", magnet_uri, False)
add_download_log("Direct Download", "", magnet_uri, False)
def seed_magnet(magnet_uri, file_path):
consoleLog(f"Seeding: {magnet_uri[:60]}")
add_seed(magnet_uri, file_path)