From 3680c2b3494f04b2d84667b4f44b334c41b5a764 Mon Sep 17 00:00:00 2001 From: Noam Date: Mon, 13 Mar 2017 10:41:46 +0200 Subject: [PATCH 1/3] Fix typo causing Qbittorrent config to show while Deluge is selected --- data/interfaces/default/config.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/interfaces/default/config.html b/data/interfaces/default/config.html index a1f8ba64..f5f9ea78 100644 --- a/data/interfaces/default/config.html +++ b/data/interfaces/default/config.html @@ -2405,7 +2405,7 @@ } if ($("#torrent_downloader_deluge").is(":checked")) { - $("#torrent_blackhole_options,#transmission_options,#utorrent_options,#qbittorent_options").hide(); + $("#torrent_blackhole_options,#transmission_options,#utorrent_options,#qbittorrent_options").hide(); $("#deluge_options").show(); } From 3f67396a55be2b9d7dd5e633647035dc558a8494 Mon Sep 17 00:00:00 2001 From: Noam Date: Mon, 13 Mar 2017 18:32:36 +0200 Subject: [PATCH 2/3] Deluge: check if torrent finished seeding before deleting --- headphones/deluge.py | 39 +++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/headphones/deluge.py b/headphones/deluge.py index cfab6355..0bb0e38b 100644 --- a/headphones/deluge.py +++ b/headphones/deluge.py @@ -246,18 +246,41 @@ def removeTorrent(torrentid, remove_data=False): _get_auth() try: - result = False - post_data = json.dumps({"method": "core.remove_torrent", + logger.debug('Deluge: Checking if torrent %s finished seeding' % str(torrentid)) + post_data = json.dumps({"method": "web.get_torrent_status", "params": [ - torrentid, - remove_data - ], - "id": 25}) + result['hash'], + [ + "name", + "ratio", + "state" + ] + ], + "id": 26}) + response = requests.post(delugeweb_url, data=post_data.encode('utf-8'), cookies=delugeweb_auth, verify=deluge_verify_cert, headers=headers) - result = json.loads(response.text)['result'] - return result + state = json.loads(response.text)['result']['state'] + + not_finished = ["queued", "seeding", "downloading", "checking", "error"] + result = False + if state.lower() in not_finished: + logger.debug('Deluge: Torrent %s is either queued or seeding, not removing yet' % str(torrentid)) + return False + else: + logger.debug('Deluge: Removing torrent %s' % str(torrentid)) + post_data = json.dumps({"method": "core.remove_torrent", + "params": [ + torrentid, + remove_data + ], + "id": 25}) + response = requests.post(delugeweb_url, data=post_data.encode('utf-8'), cookies=delugeweb_auth, + verify=deluge_verify_cert, headers=headers) + result = json.loads(response.text)['result'] + + return result except Exception as e: logger.error('Deluge: Removing torrent failed: %s' % str(e)) formatted_lines = traceback.format_exc().splitlines() From 33fdb3d7bdedb09493a735c1098658d1a9ad8535 Mon Sep 17 00:00:00 2001 From: Noam Date: Mon, 13 Mar 2017 18:46:04 +0200 Subject: [PATCH 3/3] Wrong variable name --- headphones/deluge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/headphones/deluge.py b/headphones/deluge.py index 0bb0e38b..062789c6 100644 --- a/headphones/deluge.py +++ b/headphones/deluge.py @@ -249,7 +249,7 @@ def removeTorrent(torrentid, remove_data=False): logger.debug('Deluge: Checking if torrent %s finished seeding' % str(torrentid)) post_data = json.dumps({"method": "web.get_torrent_status", "params": [ - result['hash'], + torrentid, [ "name", "ratio",