Просмотр исходного кода

Fix deluge hide seeding etc - Fix #867

causefx 7 лет назад
Родитель
Сommit
4d195803f5
1 измененных файлов с 20 добавлено и 15 удалено
  1. 20 15
      api/functions/homepage-connect-functions.php

+ 20 - 15
api/functions/homepage-connect-functions.php

@@ -944,28 +944,33 @@ function qBittorrentConnect()
 	return false;
 	return false;
 }
 }
 
 
+function delugeStatus($queued, $status, $state)
+{
+	if ($queued == '-1' && $state == '100' && ($status == 'Seeding' || $status == 'Queued' || $status == 'Paused')) {
+		$state = 'Seeding';
+	} elseif ($state !== '100') {
+		$state = 'Downloading';
+	} else {
+		$state = 'Finished';
+	}
+	return $state;
+}
+
 function delugeConnect()
 function delugeConnect()
 {
 {
 	if ($GLOBALS['homepageDelugeEnabled'] && !empty($GLOBALS['delugeURL']) && !empty($GLOBALS['delugePassword']) && qualifyRequest($GLOBALS['homepageDelugeAuth'])) {
 	if ($GLOBALS['homepageDelugeEnabled'] && !empty($GLOBALS['delugeURL']) && !empty($GLOBALS['delugePassword']) && qualifyRequest($GLOBALS['homepageDelugeAuth'])) {
 		try {
 		try {
 			$deluge = new deluge($GLOBALS['delugeURL'], decrypt($GLOBALS['delugePassword']));
 			$deluge = new deluge($GLOBALS['delugeURL'], decrypt($GLOBALS['delugePassword']));
 			$torrents = $deluge->getTorrents(null, 'comment, download_payload_rate, eta, hash, is_finished, is_seed, message, name, paused, progress, queue, state, total_size, upload_payload_rate');
 			$torrents = $deluge->getTorrents(null, 'comment, download_payload_rate, eta, hash, is_finished, is_seed, message, name, paused, progress, queue, state, total_size, upload_payload_rate');
-			if ($GLOBALS['delugeHideSeeding'] || $GLOBALS['delugeHideCompleted']) {
-				$filter = array();
-				if ($GLOBALS['delugeHideSeeding']) {
-					array_push($filter, 'Seeding', 'Uploading', 'queuedUP');
-				}
-				if ($GLOBALS['delugeHideCompleted']) {
-					array_push($filter, 'Seeding', 'Completed');
-				}
-				//prettyPrint($torrents);
-				foreach ($torrents as $key => $value) {
-					if (!in_array($value->state, $filter)) {
-						$api['content']['queueItems'][] = $value;
-					}
+			foreach ($torrents as $key => $value) {
+				$tempStatus = delugeStatus($value->queue, $value->state, $value->progress);
+				if ($tempStatus == 'Seeding' && $GLOBALS['delugeHideSeeding']) {
+					//do nothing
+				} elseif ($tempStatus == 'Finished' && $GLOBALS['delugeHideCompleted']) {
+					//do nothing
+				} else {
+					$api['content']['queueItems'][] = $value;
 				}
 				}
-			} else {
-				$api['content']['queueItems'] = $torrents;
 			}
 			}
 			$api['content']['queueItems'] = (empty($api['content']['queueItems'])) ? [] : $api['content']['queueItems'];
 			$api['content']['queueItems'] = (empty($api['content']['queueItems'])) ? [] : $api['content']['queueItems'];
 			$api['content']['historyItems'] = false;
 			$api['content']['historyItems'] = false;