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

Added option to combine all downloaders

causefx 7 лет назад
Родитель
Сommit
596659a664

+ 7 - 0
api/config/default.php

@@ -53,18 +53,22 @@ return array(
 	'sickrageToken' => '',
 	'sabnzbdURL' => '',
 	'sabnzbdToken' => '',
+	'sabnzbdCombine' => false,
 	'nzbgetURL' => '',
 	'nzbgetUsername' => '',
 	'nzbgetPassword' => '',
+	'nzbgetCombine' => false,
 	'transmissionURL' => '',
 	'transmissionUsername' => '',
 	'transmissionPassword' => '',
 	'transmissionHideSeeding' => false,
 	'transmissionHideCompleted' => false,
+	'transmissionCombine' => false,
 	'delugeURL' => '',
 	'delugePassword' => '',
 	'delugeHideSeeding' => false,
 	'delugeHideCompleted' => false,
+	'delugeCombine' => false,
 	'qBittorrentURL' => '',
 	'qBittorrentUsername' => '',
 	'qBittorrentPassword' => '',
@@ -72,6 +76,7 @@ return array(
 	'qBittorrentHideCompleted' => false,
 	'qBittorrentSortOrder' => 'eta',
 	'qBittorrentReverseSorting' => false,
+	'qBittorrentCombine' => false,
 	'rTorrentURL' => '',
 	'rTorrentUsername' => '',
 	'rTorrentPassword' => '',
@@ -79,6 +84,7 @@ return array(
 	'rTorrentHideCompleted' => false,
 	'rTorrentSortOrder' => 'datea',
 	'rTorrentReverseSorting' => false,
+	'rTorrentCombine' => false,
 	'homepageCalendarEnabled' => 'true',
 	'homepageCalendarAuth' => '4',
 	'calendariCal' => '',
@@ -132,6 +138,7 @@ return array(
 	'homepageOrderombi' => '13',
 	'homepageOrdercalendar' => '14',
 	'homepageOrderrTorrent' => '15',
+	'homepageOrderdownloader' => '16',
 	'homepageShowStreamNames' => false,
 	'homepageShowStreamNamesAuth' => '1',
 	'homepageStreamRefresh' => '60000',

+ 170 - 60
api/functions/homepage-functions.php

@@ -18,6 +18,7 @@ function homepageOrder()
 		"homepageOrderqBittorrent" => $GLOBALS['homepageOrderqBittorrent'],
 		"homepageOrderdeluge" => $GLOBALS['homepageOrderdeluge'],
 		"homepageOrderrTorrent" => $GLOBALS['homepageOrderrTorrent'],
+		"homepageOrderdownloader" => $GLOBALS['homepageOrderdownloader'],
 	);
 	asort($homepageOrder);
 	return $homepageOrder;
@@ -53,80 +54,146 @@ function buildHomepageItem($homepageItem)
 			break;
 		case 'homepageOrderqBittorrent':
 			if ($GLOBALS['homepageqBittorrentEnabled']) {
-				$item .= '<div class="white-box"><h2 class="text-center" lang="en">Loading Download Queue...</h2></div>';
-				$item .= '
-                <script>
-                // homepageOrderqBittorrent
-                $("#' . $homepageItem . '").html(buildDownloader("qBittorrent"));
-                homepageDownloader("qBittorrent", "' . $GLOBALS['homepageDownloadRefresh'] . '");
-                // End homepageOrderqBittorrent
-                </script>
-                ';
+				if ($GLOBALS['qBittorrentCombine']) {
+					$item .= '
+	                <script>
+	                // homepageOrderqBittorrent
+	                buildDownloaderCombined(\'qBittorrent\');
+	                homepageDownloader("qBittorrent", "' . $GLOBALS['homepageDownloadRefresh'] . '");
+	                // End homepageOrderqBittorrent
+	                </script>
+	                ';
+				} else {
+					$item .= '<div class="white-box"><h2 class="text-center" lang="en">Loading Download Queue...</h2></div>';
+					$item .= '
+	                <script>
+	                // homepageOrderqBittorrent
+	                $("#' . $homepageItem . '").html(buildDownloader("qBittorrent"));
+	                homepageDownloader("qBittorrent", "' . $GLOBALS['homepageDownloadRefresh'] . '");
+	                // End homepageOrderqBittorrent
+	                </script>
+	                ';
+				}
 			}
 			break;
 		case 'homepageOrderrTorrent':
 			if ($GLOBALS['homepagerTorrentEnabled']) {
-				$item .= '<div class="white-box"><h2 class="text-center" lang="en">Loading Download Queue...</h2></div>';
-				$item .= '
-                <script>
-                // homepageOrderrTorrent
-                $("#' . $homepageItem . '").html(buildDownloader("rTorrent"));
-                homepageDownloader("rTorrent", "' . $GLOBALS['homepageDownloadRefresh'] . '");
-                // End homepageOrderrTorrent
-                </script>
-                ';
+				if ($GLOBALS['rTorrentCombine']) {
+					$item .= '
+	                <script>
+	                // homepageOrderrTorrent
+	                buildDownloaderCombined(\'rTorrent\');
+	                homepageDownloader("rTorrent", "' . $GLOBALS['homepageDownloadRefresh'] . '");
+	                // End homepageOrderrTorrent
+	                </script>
+	                ';
+				} else {
+					$item .= '<div class="white-box"><h2 class="text-center" lang="en">Loading Download Queue...</h2></div>';
+					$item .= '
+	                <script>
+	                // homepageOrderrTorrent
+	                $("#' . $homepageItem . '").html(buildDownloader("rTorrent"));
+	                homepageDownloader("rTorrent", "' . $GLOBALS['homepageDownloadRefresh'] . '");
+	                // End homepageOrderrTorrent
+	                </script>
+	                ';
+				}
 			}
 			break;
 		case 'homepageOrderdeluge':
 			if ($GLOBALS['homepageDelugeEnabled']) {
-				$item .= '<div class="white-box"><h2 class="text-center" lang="en">Loading Download Queue...</h2></div>';
-				$item .= '
-				<script>
-				// Deluge
-				$("#' . $homepageItem . '").html(buildDownloader("deluge"));
-				homepageDownloader("deluge", "' . $GLOBALS['homepageDownloadRefresh'] . '");
-				// End Deluge
-				</script>
-				';
+				if ($GLOBALS['delugeCombine']) {
+					$item .= '
+					<script>
+					// Deluge
+					buildDownloaderCombined(\'deluge\');
+					homepageDownloader("deluge", "' . $GLOBALS['homepageDownloadRefresh'] . '");
+					// End Deluge
+					</script>
+					';
+				} else {
+					$item .= '<div class="white-box"><h2 class="text-center" lang="en">Loading Download Queue...</h2></div>';
+					$item .= '
+					<script>
+					// Deluge
+					$("#' . $homepageItem . '").html(buildDownloader("deluge"));
+					homepageDownloader("deluge", "' . $GLOBALS['homepageDownloadRefresh'] . '");
+					// End Deluge
+					</script>
+					';
+				}
 			}
 			break;
 		case 'homepageOrdertransmission':
 			if ($GLOBALS['homepageTransmissionEnabled']) {
-				$item .= '<div class="white-box"><h2 class="text-center" lang="en">Loading Download Queue...</h2></div>';
-				$item .= '
-				<script>
-				// Transmission
-				$("#' . $homepageItem . '").html(buildDownloader("transmission"));
-				homepageDownloader("transmission", "' . $GLOBALS['homepageDownloadRefresh'] . '");
-				// End Transmission
-				</script>
-				';
+				if ($GLOBALS['transmissionCombine']) {
+					$item .= '
+					<script>
+					// Transmission
+					buildDownloaderCombined(\'transmission\');
+					homepageDownloader("transmission", "' . $GLOBALS['homepageDownloadRefresh'] . '");
+					// End Transmission
+					</script>
+					';
+				} else {
+					$item .= '<div class="white-box"><h2 class="text-center" lang="en">Loading Download Queue...</h2></div>';
+					$item .= '
+					<script>
+					// Transmission
+					$("#' . $homepageItem . '").html(buildDownloader("transmission"));
+					homepageDownloader("transmission", "' . $GLOBALS['homepageDownloadRefresh'] . '");
+					// End Transmission
+					</script>
+					';
+				}
 			}
 			break;
 		case 'homepageOrdernzbget':
 			if ($GLOBALS['homepageNzbgetEnabled']) {
-				$item .= '<div class="white-box"><h2 class="text-center" lang="en">Loading Download Queue...</h2></div>';
-				$item .= '
-				<script>
-				// NZBGet
-				$("#' . $homepageItem . '").html(buildDownloader("nzbget"));
-				homepageDownloader("nzbget", "' . $GLOBALS['homepageDownloadRefresh'] . '");
-				// End NZBGet
-				</script>
-				';
+				if ($GLOBALS['nzbgetCombine']) {
+					$item .= '
+					<script>
+					// NZBGet
+					buildDownloaderCombined(\'nzbget\');
+					homepageDownloader("nzbget", "' . $GLOBALS['homepageDownloadRefresh'] . '");
+					// End NZBGet
+					</script>
+					';
+				} else {
+					$item .= '<div class="white-box"><h2 class="text-center" lang="en">Loading Download Queue...</h2></div>';
+					$item .= '
+					<script>
+					// NZBGet
+					$("#' . $homepageItem . '").html(buildDownloader("nzbget"));
+					homepageDownloader("nzbget", "' . $GLOBALS['homepageDownloadRefresh'] . '");
+					// End NZBGet
+					</script>
+					';
+				}
 			}
 			break;
 		case 'homepageOrdersabnzbd':
 			if ($GLOBALS['homepageSabnzbdEnabled']) {
-				$item .= '<div class="white-box"><h2 class="text-center" lang="en">Loading Download Queue...</h2></div>';
-				$item .= '
-				<script>
-				// SabNZBd
-				$("#' . $homepageItem . '").html(buildDownloader("sabnzbd"));
-				homepageDownloader("sabnzbd", "' . $GLOBALS['homepageDownloadRefresh'] . '");
-				// End SabNZBd
-				</script>
-				';
+				if ($GLOBALS['sabnzbdCombine']) {
+					$item .= '
+					<script>
+					// SabNZBd
+					buildDownloaderCombined(\'sabnzbd\');
+					homepageDownloader("sabnzbd", "' . $GLOBALS['homepageDownloadRefresh'] . '");
+					// End SabNZBd
+					</script>
+					';
+				} else {
+					$item .= '<div class="white-box"><h2 class="text-center" lang="en">Loading Download Queue...</h2></div>';
+					$item .= '
+					<script>
+					// SabNZBd
+					$("#' . $homepageItem . '").html(buildDownloader("sabnzbd"));
+					homepageDownloader("sabnzbd", "' . $GLOBALS['homepageDownloadRefresh'] . '");
+					// End SabNZBd
+					</script>
+					';
+				}
 			}
 			break;
 		case 'homepageOrderplexnowplaying':
@@ -922,7 +989,13 @@ function getHomepageList()
 						'label' => 'Refresh Seconds',
 						'value' => $GLOBALS['homepageDownloadRefresh'],
 						'options' => optionTime()
-					)
+					),
+					array(
+						'type' => 'switch',
+						'name' => 'sabnzbdCombine',
+						'label' => 'Add to Combined Downloader',
+						'value' => $GLOBALS['sabnzbdCombine']
+					),
 				),
 				'Test Connection' => array(
 					array(
@@ -989,7 +1062,13 @@ function getHomepageList()
 						'label' => 'Refresh Seconds',
 						'value' => $GLOBALS['homepageDownloadRefresh'],
 						'options' => optionTime()
-					)
+					),
+					array(
+						'type' => 'switch',
+						'name' => 'nzbgetCombine',
+						'label' => 'Add to Combined Downloader',
+						'value' => $GLOBALS['nzbgetCombine']
+					),
 				),
 				'Test Connection' => array(
 					array(
@@ -1067,7 +1146,13 @@ function getHomepageList()
 						'label' => 'Refresh Seconds',
 						'value' => $GLOBALS['homepageDownloadRefresh'],
 						'options' => optionTime()
-					)
+					),
+					array(
+						'type' => 'switch',
+						'name' => 'transmissionCombine',
+						'label' => 'Add to Combined Downloader',
+						'value' => $GLOBALS['transmissionCombine']
+					),
 				)
 			)
 		),
@@ -1143,7 +1228,13 @@ function getHomepageList()
 						'label' => 'Refresh Seconds',
 						'value' => $GLOBALS['homepageDownloadRefresh'],
 						'options' => optionTime()
-					)
+					),
+					array(
+						'type' => 'switch',
+						'name' => 'qBittorrentCombine',
+						'label' => 'Add to Combined Downloader',
+						'value' => $GLOBALS['qBittorrentCombine']
+					),
 				)
 			)
 		),
@@ -1237,7 +1328,13 @@ function getHomepageList()
 						'label' => 'Refresh Seconds',
 						'value' => $GLOBALS['homepageDownloadRefresh'],
 						'options' => optionTime()
-					)
+					),
+					array(
+						'type' => 'switch',
+						'name' => 'rTorrentCombine',
+						'label' => 'Add to Combined Downloader',
+						'value' => $GLOBALS['rTorrentCombine']
+					),
 				),
 				'Test Connection' => array(
 					array(
@@ -1329,7 +1426,13 @@ function getHomepageList()
 						'label' => 'Refresh Seconds',
 						'value' => $GLOBALS['homepageDownloadRefresh'],
 						'options' => optionTime()
-					)
+					),
+					array(
+						'type' => 'switch',
+						'name' => 'delugeCombine',
+						'label' => 'Add to Combined Downloader',
+						'value' => $GLOBALS['delugeCombine']
+					),
 				),
 				'Test Connection' => array(
 					array(
@@ -2045,6 +2148,13 @@ function buildHomepageSettings()
 					$class .= ' faded';
 				}
 				break;
+			case 'homepageOrderdownloader':
+				$class = 'bg-inverse';
+				$image = 'plugins/images/tabs/downloader.png';
+				if (!$GLOBALS['sabnzbdCombine'] && !$GLOBALS['nzbgetCombine'] && !$GLOBALS['rTorrentCombine'] && !$GLOBALS['delugeCombine'] && !$GLOBALS['transmissionCombine'] && !$GLOBALS['qBittorrentCombine']) {
+					$class .= ' faded';
+				}
+				break;
 			default:
 				$class = 'blue-bg';
 				$image = '';

+ 1 - 8
api/pages/login.php

@@ -13,14 +13,7 @@ if(activeInfo.settings.login.rememberMe){
         <div id="oAuth-div" class="form-group hidden">
           <div class="col-xs-12">
             <div class="panel panel-success animated tada">
-                <div class="panel-heading"> oAuth
-                    <div class="pull-right"><a href="#" data-perform="panel-collapse"><i class="ti-minus"></i></a> <a href="#" data-perform="panel-dismiss"><i class="ti-close"></i></a> </div>
-                </div>
-                <div class="panel-wrapper collapse in" aria-expanded="true">
-                    <div class="panel-body">
-	                   oAuth Was Successful - Please wait...
-                    </div>
-                </div>
+                <div class="panel-heading">oAuth Successful - Please wait...</div>
             </div>
           </div>
         </div>

+ 101 - 2
js/functions.js

@@ -4067,7 +4067,7 @@ function requestList (list, type, page=1) {
 	});
 }
 function buildDownloaderItem(array, source, type='none'){
-    console.log(array);
+    //console.log(array);
     var queue = '';
     var history = '';
 	switch (source) {
@@ -4442,6 +4442,106 @@ function buildDownloader(source){
 	</div>
 	`;
 }
+function buildDownloaderCombined(source){
+    var first = ($('.combinedDownloadRow').length == 0) ? true : false;
+    var active = (first) ? 'active' : '';
+    var queueButton = 'QUEUE';
+    var historyButton = 'HISTORY';
+    switch (source) {
+        case 'sabnzbd':
+        case 'nzbget':
+            var queue = true;
+            var history = true;
+            break;
+        case 'transmission':
+        case 'qBittorrent':
+        case 'deluge':
+        case 'rTorrent':
+            var queue = true;
+            var history = false;
+            queueButton = 'REFRESH';
+            break;
+        default:
+            var queue = false;
+            var history = false;
+
+    }
+
+    var mainMenu = `<ul class="nav customtab nav-tabs combinedMenuList" role="tablist">`;
+    var addToMainMenu = `<li role="presentation" class="`+active+`"><a href="#combined-`+source+`" aria-controls="home" role="tab" data-toggle="tab" aria-expanded="true"><span class=""><img src="./plugins/images/tabs/`+source+`.png" class="homepageImageTitle"></span></a></li>`;
+    var listing = '';
+
+    var headerAlt = '';
+    var header = '';
+
+
+    var menu = `<ul class="nav customtab nav-tabs pull-right" role="tablist">`;
+    if(queue){
+        menu += `
+			<li role="presentation" class="active" onclick="homepageDownloader('`+source+`')"><a href="#`+source+`-queue" aria-controls="home" role="tab" data-toggle="tab" aria-expanded="true"><span class="visible-xs"><i class="ti-download"></i></span><span class="hidden-xs">`+queueButton+`</span></a></li>
+			`;
+        listing += `
+		<div role="tabpanel" class="tab-pane fade active in" id="`+source+`-queue">
+			<div class="inbox-center table-responsive" data-simplebar>
+				<table class="table table-hover">
+					<tbody class="`+source+`-queue"></tbody>
+				</table>
+			</div>
+			<div class="clearfix"></div>
+		</div>
+		`;
+    }
+    if(history){
+        menu += `
+		<li role="presentation" class=""><a href="#`+source+`-history" aria-controls="profile" role="tab" data-toggle="tab" aria-expanded="false"><span class="visible-xs"><i class="ti-time"></i></span> <span class="hidden-xs">`+historyButton+`</span></a></li>
+		`;
+        listing += `
+		<div role="tabpanel" class="tab-pane fade" id="`+source+`-history">
+			<div class="inbox-center table-responsive" data-simplebar>
+				<table class="table table-hover">
+					<tbody class="`+source+`-history"></tbody>
+				</table>
+			</div>
+			<div class="clearfix"></div>
+		</div>
+		`;
+    }
+    menu += '</ul><div class="clearfix"></div>';
+    var listingMain = '<div role="tabpanel" class="tab-pane fade '+active+' in" id="combined-'+source+'">'+menu+'<div class="tab-content m-t-0 listingSingle">'+listing+'</div></div>';
+    mainMenu += (first) ? addToMainMenu + '</ul>' : '';
+    if(first){
+        if(activeInfo.settings.homepage.options.alternateHomepageHeaders){
+            var headerAlt = `
+            <div class="col-md-12">
+                `+mainMenu+`
+                <div class="clearfix"></div>
+            </div>
+            `;
+        }else{
+            var header = `
+            <div class="white-box bg-info m-b-0 p-b-0 p-10 mailbox-widget">
+                `+mainMenu+`
+                <div class="clearfix"></div>
+            </div>
+            `;
+        }
+        var built = `
+        <div class="row combinedDownloadRow">
+            `+headerAlt+`
+            <div class="col-lg-12">
+                `+header+`
+                <div class="white-box p-0">
+                    <div class="tab-content m-t-0 listingMain">`+listingMain+`</div>
+                </div>
+            </div>
+        </div>
+        `;
+        $('#homepageOrderdownloader').html(built);
+    }else{
+        $(addToMainMenu).appendTo('.combinedMenuList');
+        $(listingMain).appendTo('.listingMain');
+    }
+}
 function buildMetadata(array, source){
 	var metadata = '';
 	var genres = '';
@@ -4580,7 +4680,6 @@ function homepageDownloader(type, timeout){
 		var response = JSON.parse(data);
 		//document.getElementById('homepageOrder'+type).innerHTML = '';
 		if(response.data !== null){
-		    console.log(response.data);
 			buildDownloaderItem(response.data, type);
 		}
 	}).fail(function(xhr) {

BIN
plugins/images/tabs/downloader.png