From cd4715e00d9b58b94b338f86bc6593d1f13a6d06 Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Tue, 5 Nov 2024 18:31:56 -0300 Subject: [PATCH] feat: refactor get_download_status --- torrent-client/torrent_downloader.py | 71 ++++++++++++---------------- 1 file changed, 29 insertions(+), 42 deletions(-) diff --git a/torrent-client/torrent_downloader.py b/torrent-client/torrent_downloader.py index 4bae51f4..b3b7dfe1 100644 --- a/torrent-client/torrent_downloader.py +++ b/torrent-client/torrent_downloader.py @@ -137,51 +137,38 @@ class TorrentDownloader: self.downloading_game_id = -1 def get_download_status(self): - if self.downloading_game_id == -1: - return None - response = { - 'downloading': {}, + 'downloading': None, 'seeding': [] } - if self.downloading_game_id != -1: - torrent_handle = self.torrent_handles.get(self.downloading_game_id) - if torrent_handle: - status = torrent_handle.status() - info = torrent_handle.torrent_file() - if status.progress < 1.0: - response['downloading'] = { - 'folderName': info.name() if info else "", - 'fileSize': info.total_size() if info else 0, - 'gameId': self.downloading_game_id, - 'progress': status.progress, - 'downloadSpeed': status.download_rate, - 'uploadSpeed': status.upload_rate, - 'numPeers': status.num_peers, - 'numSeeds': status.num_seeds, - 'status': status.state, - 'bytesDownloaded': status.progress * info.total_size() if info else status.all_time_download, - } - for game_id, torrent_handle in self.torrent_handles.items(): - if torrent_handle: - status = torrent_handle.status() - if status.state == 5: - info = torrent_handle.torrent_file() - seed_info = { - 'folderName': info.name() if info else "", - 'fileSize': info.total_size() if info else 0, - 'gameId': self.downloading_game_id, - 'progress': status.progress, - 'downloadSpeed': status.download_rate, - 'uploadSpeed': status.upload_rate, - 'numPeers': status.num_peers, - 'numSeeds': status.num_seeds, - 'status': status.state, - 'bytesDownloaded': status.progress * info.total_size() if info else status.all_time_download, - } + status = torrent_handle.status() + info = torrent_handle.torrent_file() + + torrent_info = { + 'folderName': info.name() if info else "", + 'fileSize': info.total_size() if info else 0, + 'gameId': self.downloading_game_id, + 'progress': status.progress, + 'downloadSpeed': status.download_rate, + 'uploadSpeed': status.upload_rate, + 'numPeers': status.num_peers, + 'numSeeds': status.num_seeds, + 'status': status.state, + 'bytesDownloaded': status.progress * info.total_size() if info else status.all_time_download, + } + + if game_id == self.downloading_game_id: + response['downloading'] = torrent_info + + if status.progress == 1: + # this probably should stay here + self.downloading_game_id = -1 + + elif status.state == 5: + response['seeding'].append(torrent_info) - response['seeding'].append(seed_info) - - print(response) \ No newline at end of file + print(response) + # return response + return None \ No newline at end of file