Jelajahi Sumber

Small Fixes

Fixed #191 - Added option to set domain for cookies
Fixed #190 - Added code for dealing with Plex Now Playing trailers
Fixed #189 - Fixed issue not settings nzbget port
Fixed #188 - Add code line for Headphones to show up on calendar
Fixed #183 - SABnzbd Port not saving
causefx 9 tahun lalu
induk
melakukan
e4964fd57c
13 mengubah file dengan 416 tambahan dan 117 penghapusan
  1. 4 2
      css/style.css
  2. 160 0
      downloader.php
  3. 24 12
      functions.php
  4. 190 76
      homepage.php
  5. 2 1
      lang/de.ini
  6. 2 1
      lang/en.ini
  7. 2 1
      lang/es.ini
  8. 2 1
      lang/fr.ini
  9. 2 1
      lang/it.ini
  10. 2 1
      lang/nl.ini
  11. 2 1
      lang/pl.ini
  12. 8 5
      settings.php
  13. 16 15
      user.php

+ 4 - 2
css/style.css

@@ -2150,8 +2150,10 @@ table.dataTable.no-footer, table.dataTable thead th, table.dataTable thead td {
 .fc-calendar {
   background: #fff;
   margin-bottom: 30px;
-  -webkit-border-radius: 3px;
-          border-radius: 3px;
+  border-radius: 10px 10px 0 0;
+    -webkit-background-clip: padding-box;
+    -moz-background-clip: padding;
+    background-clip: padding-box;
 }
 
 .fc-calendar .fc-toolbar {

+ 160 - 0
downloader.php

@@ -0,0 +1,160 @@
+<?php
+
+require_once("user.php");
+
+isset($_GET['downloader']) ? $downloader = $_GET['downloader'] : die("Error");
+isset($_GET['list']) ? $list = $_GET['list'] : die("Error");
+    
+if($downloader == "nzbget"){
+    
+    $url = NZBGETURL;
+    $port = NZBGETPORT;
+    $username = NZBGETUSERNAME;
+    $password = NZBGETPASSWORD;
+
+    $urlCheck = stripos($url, "http");
+
+    if ($urlCheck === false) {
+
+        $url = "http://" . $url;
+
+    }
+
+    if($port !== ""){ $url = $url . ":" . $port; }
+
+    $address = $url;
+
+    $api = file_get_contents("$url/$username:$password/jsonrpc/$list");
+
+    $api = json_decode($api, true);
+
+    $i = 0;
+
+    $gotNZB = "";
+
+    foreach ($api['result'] AS $child) {
+
+        $i++;
+        //echo '<pre>' . var_export($child, true) . '</pre>';
+        $downloadName = $child['NZBName'];
+        $downloadStatus = $child['Status'];
+        $downloadCategory = $child['Category'];
+        if($list == "history"){ $downloadPercent = "100"; $progressBar = ""; }
+        if($list == "listgroups"){ $downloadPercent = (($child['FileSizeMB'] - $child['RemainingSizeMB']) / $child['FileSizeMB']) * 100; $progressBar = "progress-bar-striped active"; }
+        if($child['Health'] <= "750"){ 
+            $downloadHealth = "danger"; 
+        }elseif($child['Health'] <= "900"){ 
+            $downloadHealth = "warning"; 
+        }elseif($child['Health'] <= "1000"){ 
+            $downloadHealth = "success"; 
+        }
+
+        $gotNZB .= '<tr>
+
+                        <td>'.$downloadName.'</td>
+                        <td>'.$downloadStatus.'</td>
+                        <td>'.$downloadCategory.'</td>
+
+                        <td>
+
+                            <div class="progress">
+
+                                <div class="progress-bar progress-bar-'.$downloadHealth.' '.$progressBar.'" role="progressbar" aria-valuenow="'.$downloadPercent.'" aria-valuemin="0" aria-valuemax="100" style="width: '.$downloadPercent.'%">
+
+                                    <p class="text-center">'.round($downloadPercent).'%</p>
+                                    <span class="sr-only">'.$downloadPercent.'% Complete</span>
+
+                                </div>
+
+                            </div>
+
+                        </td>
+
+                    </tr>';
+
+
+    }
+
+    if($i > 0){ echo $gotNZB; }
+    if($i == 0){ echo '<tr><td colspan="4"><p class="text-center">No Results</p></td></tr>'; }
+    
+}
+    
+if($downloader == "sabnzbd"){
+    
+    $url = SABNZBDURL;
+    $port = SABNZBDPORT;
+    $key = SABNZBDKEY;
+    
+    $urlCheck = stripos($url, "http");
+
+    if ($urlCheck === false) {
+        
+        $url = "http://" . $url;
+    
+    }
+    
+    if($port !== ""){ $url = $url . ":" . $port; }
+    
+    $address = $url;
+
+    $api = file_get_contents("$url/api?mode=$list&output=json&apikey=$key&limit=40");
+                    
+    $api = json_decode($api, true);
+    
+    $i = 0;
+    
+    $gotNZB = "";
+    
+    foreach ($api[$list]['slots'] AS $child) {
+        
+        $i++;
+        if($list == "queue"){ $downloadName = $child['filename']; $downloadCategory = $child['cat']; $downloadPercent = (($child['mb'] - $child['mbleft']) / $child['mb']) * 100; $progressBar = "progress-bar-striped active"; } 
+        if($list == "history"){ $downloadName = $child['name']; $downloadCategory = $child['category']; $downloadPercent = "100"; $progressBar = ""; }
+        $downloadStatus = $child['status'];
+        
+        if($child['missing'] > "400"){ 
+            $downloadHealth = "danger"; 
+        }elseif($child['missing'] <= "400"){ 
+            $downloadHealth = "warning"; 
+        }elseif($child['missing'] <= "200"){ 
+            $downloadHealth = "success"; 
+        }
+        
+        if(!isset($child['missing'])){
+            $downloadHealth = "success";
+        }
+        
+        
+        $gotNZB .= '<tr>
+
+                        <td>'.$downloadName.'</td>
+                        <td>'.$downloadStatus.'</td>
+                        <td>'.$downloadCategory.'</td>
+
+                        <td>
+
+                            <div class="progress">
+
+                                <div class="progress-bar progress-bar-'.$downloadHealth.' '.$progressBar.'" role="progressbar" aria-valuenow="'.$downloadPercent.'" aria-valuemin="0" aria-valuemax="100" style="width: '.$downloadPercent.'%">
+
+                                    <p class="text-center">'.round($downloadPercent).'%</p>
+                                    <span class="sr-only">'.$downloadPercent.'% Complete</span>
+
+                                </div>
+
+                            </div>
+
+                        </td>
+
+                    </tr>';
+        
+        
+    }
+    
+    if($i > 0){ echo $gotNZB; }
+    if($i == 0){ echo '<tr><td colspan="4"><p class="text-center">No Results</p></td></tr>'; }
+
+}
+
+?>

+ 24 - 12
functions.php

@@ -249,7 +249,7 @@ function getPlexRecent($url, $port, $type, $token, $size, $header){
             }
             
             
-            $gotPlex .= '<div class="item '.$active.'"><img class="carousel-image '.$type.'" src="image.php?img='.$thumb.'&height='.$height.'&width='.$width.'"><div class="carousel-caption '.$type.'" style="overflow:auto"><h4>'.$title.'</h4><small><em>'.$summary.'</em></small></div></div>';
+            $gotPlex .= '<div class="item '.$active.'"><img class="carousel-image '.$type.'" src="image.php?img='.$thumb.'&height='.$height.'&width='.$width.'"><div class="carousel-caption '.$type.'"><h4>'.$title.'</h4><small><em>'.$summary.'</em></small></div></div>';
 
         }
         
@@ -331,13 +331,22 @@ function getPlexStreams($url, $port, $token, $size, $header){
             $height = "150";
             $width = "150";
 
+        }elseif($type == "clip"){
+
+            $title = $child['title'].' - Trailer';
+            $summary = ($child['summary'] != "" ? $child['summary'] : "<i>No summary loaded.</i>");
+            $thumb = ($child['thumb'] != "" ? $child['thumb'] : 'images/nadaplaying.jpg');
+            $image = "movie";
+            $height = "150";
+            $width = "100";
+
         }
 
         $gotPlex .= '<div class="item '.$active.'">';
 
         $gotPlex .= "<img class='carousel-image $image' src='image.php?img=$thumb&height=$height&width=$width'>";
 
-        $gotPlex .= '<div class="carousel-caption '. $image . '" style="overflow:auto"><h4>'.$title.'</h4><small><em>'.$summary.'</em></small></div></div>';
+        $gotPlex .= '<div class="carousel-caption '. $image . '""><h4>'.$title.'</h4><small><em>'.$summary.'</em></small></div></div>';
 
         
     }
@@ -357,7 +366,7 @@ function getPlexStreams($url, $port, $token, $size, $header){
     $noPlex .= '<div class="carousel-inner" role="listbox">';
     $noPlex .= '<div class="item active">';
     $noPlex .= "<img class='carousel-image movie' src='images/nadaplaying.jpg'>";
-    $noPlex .= '<div class="carousel-caption" style="overflow:auto"><h4>Nothing Playing</h4><small><em>Get to Streaming!</em></small></div></div></div></div></div>';
+    $noPlex .= '<div class="carousel-caption"><h4>Nothing Playing</h4><small><em>Get to Streaming!</em></small></div></div></div></div></div>';
     
     if ($i != 0){ return $gotPlex; }
     if ($i == 0){ return $noPlex; }
@@ -398,9 +407,11 @@ function getSonarrCalendar($url, $port, $key){
         $episodeAirDate = $child['airDateUtc'];
         $episodeAirDate = strtotime($episodeAirDate);
         $episodeAirDate = date("Y-m-d H:i:s", $episodeAirDate);
+        
+        if (new DateTime() < new DateTime($episodeAirDate)) { $unaired = true; }
 
         $downloaded = $child['hasFile'];
-        if($downloaded == "0"){ $downloaded = "red-bg";}elseif($downloaded == "1"){ $downloaded = "green-bg";}
+        if($downloaded == "0" && isset($unaired)){ $downloaded = "indigo-bg"; }elseif($downloaded == "1"){ $downloaded = "green-bg";}else{ $downloaded = "red-bg"; }
         
         $gotCalendar .= "{ title: \"$seriesName\", start: \"$episodeAirDate\", className: \"$downloaded\", imagetype: \"tv\" }, \n";
         
@@ -443,9 +454,11 @@ function getRadarrCalendar($url, $port, $key){
             $physicalRelease = $child['physicalRelease'];
             $physicalRelease = strtotime($physicalRelease);
             $physicalRelease = date("Y-m-d", $physicalRelease);
+            
+            if (new DateTime() < new DateTime($physicalRelease)) { $notReleased = true; }
 
             $downloaded = $child['hasFile'];
-            if($downloaded == "0"){ $downloaded = "progress-bar-danger progress-bar-striped";}elseif($downloaded == "1"){ $downloaded = "progress-bar-success progress-bar-striped";}
+            if($downloaded == "0" && isset($notReleased)){ $downloaded = "indigo-bg"; }elseif($downloaded == "1"){ $downloaded = "green-bg"; }else{ $downloaded = "red-bg"; }
 
             $gotCalendar .= "{ title: \"$movieName\", start: \"$physicalRelease\", className: \"$downloaded\", imagetype: \"film\" }, \n";
         }
@@ -554,9 +567,6 @@ function sabnzbdConnect($url, $port, $key, $list){
         if($list == "queue"){ $downloadName = $child['filename']; $downloadCategory = $child['cat']; $downloadPercent = (($child['mb'] - $child['mbleft']) / $child['mb']) * 100; $progressBar = "progress-bar-striped active"; } 
         if($list == "history"){ $downloadName = $child['name']; $downloadCategory = $child['category']; $downloadPercent = "100"; $progressBar = ""; }
         $downloadStatus = $child['status'];
-        //echo '<pre>' . var_export($child, true) . '</pre>';
-
-
         
         $gotNZB .= '<tr>
 
@@ -612,8 +622,6 @@ function getHeadphonesCalendar($url, $port, $key, $list){
     $gotCalendar = "";
 
     foreach($api AS $child) {
-        
-        //echo '<pre>' . var_export($child, true) . '</pre>';
 
         if($child['Status'] != "Skipped"){
         
@@ -621,11 +629,15 @@ function getHeadphonesCalendar($url, $port, $key, $list){
             $albumName = $child['AlbumTitle'];
             $albumArtist = $child['ArtistName'];
             $albumDate = $child['ReleaseDate'];
+            $albumDate = strtotime($albumDate);
+            $albumDate = date("Y-m-d", $albumDate);
             $albumStatus = $child['Status'];
+            
+            if (new DateTime() < new DateTime($albumDate)) {  $notReleased = "true"; }else{ $notReleased = "false"; }
 
-            if($albumStatus == "Wanted"){ $albumStatus = "red-bg";}elseif($albumStatus == "Downloaded"){ $albumStatus = "green-bg";}
+            if($albumStatus == "Wanted" && $notReleased == "true"){ $albumStatusColor = "indigo-bg"; }elseif($albumStatus == "Downloaded"){ $albumStatusColor = "green-bg"; }else{ $albumStatusColor = "red-bg"; }
 
-            $gotCalendar .= "{ title: \"$albumArtist - $albumName\", start: \"$albumDate\", className: \"$albumStatus\", imagetype: \"music\" }, \n";
+            $gotCalendar .= "{ title: \"$albumArtist - $albumName\", start: \"$albumDate\", className: \"$albumStatusColor\", imagetype: \"music\" }, \n";
             
         }
         

+ 190 - 76
homepage.php

@@ -88,9 +88,6 @@ endif;
 
         <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
         <link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css">
-        <!--<link rel="stylesheet" href="bower_components/mdi/css/materialdesignicons.min.css">
-        <link rel="stylesheet" href="bower_components/metisMenu/dist/metisMenu.min.css">
-        <link rel="stylesheet" href="bower_components/Waves/dist/waves.min.css"> -->
         <link rel="stylesheet" href="bower_components/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css"> 
         
         <script src="js/menu/modernizr.custom.js"></script>
@@ -109,6 +106,8 @@ endif;
         <style>
             table.fc-list-table {
                 table-layout: auto;
+            }.tabbable{
+                margin-bottom: 0;
             }.fc-day-grid-event .fc-content {
                 white-space: normal;
             }.fc-list-item {
@@ -165,6 +164,7 @@ endif;
                 color: #fff;
                 text-align: left;
                 padding-bottom: 2px !important;
+                overflow: hidden !important;
             }<?php if(CUSTOMCSS == "true") : 
 $template_file = "custom.css";
 $file_handle = fopen($template_file, "rb");
@@ -183,100 +183,125 @@ endif; ?>
             
             <div id="content" class="container-fluid">
                 
-                <br>
+                <br/>
                 <?php if(NZBGETURL != "" || SABNZBDURL != "") : ?>
                 <div id="downloadClientRow" class="row">
 
-                    <div class="col-md-12">
+                    <div class="col-xs-12 col-md-12">
+                        
+                        <div class="content-box">
 
-                        <div class="tabbable panel with-nav-tabs panel-default">
+                            <div class="tabbable panel with-nav-tabs panel-default">
 
-                            <div class="panel-heading">
+                                <div class="panel-heading">
 
-                                <h3 class="pull-left"><?php if(NZBGETURL != ""){ echo "NZBGet "; } if(SABNZBDURL != ""){ echo "SABnzbd "; } ?></h3>
+                                    <div class="content-tools i-block pull-right">
 
-                                <ul class="nav nav-tabs pull-right">
+                                        <a id="getDownloader" class="repeat-btn">
 
-                                    <li class="active"><a href="#downloadQueue" data-toggle="tab" aria-expanded="true"><?php echo $language->translate("QUEUE");?></a></li>
+                                            <i class="fa fa-repeat"></i>
 
-                                    <li class=""><a href="#downloadHistory" data-toggle="tab" aria-expanded="false"><?php echo $language->translate("HISTORY");?></a></li>
+                                        </a>
 
-                                </ul>
+                                        <a class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
+                                          
+                                            <i class="fa fa-chevron-down"></i>
+                                        
+                                        </a>
+                                        
+                                        <ul id="downloaderSeconds" class="dropdown-menu" style="top: 32px !important">
 
-                                <div class="clearfix"></div>
+                                            <li data-value="5000"><a>Refresh every 5 seconds</a></li>
+                                            <li data-value="10000"><a>Refresh every 10 seconds</a></li>
+                                            <li data-value="30000"><a>Refresh every 30 seconds</a></li>
+                                            <li data-value="60000"><a>Refresh every 60 seconds</a></li>
 
-                            </div>
+                                        </ul>
 
-                            <div class="panel-body">
+                                    </div>
 
-                                <div class="tab-content">
+                                    <h3 class="pull-left"><?php if(NZBGETURL != ""){ echo "NZBGet "; } if(SABNZBDURL != ""){ echo "SABnzbd "; } ?></h3>
 
-                                    <div class="tab-pane fade active in" id="downloadQueue">
+                                    <ul class="nav nav-tabs pull-right">
 
-                                            <div class="table-responsive">
+                                        <li class="active"><a href="#downloadQueue" data-toggle="tab" aria-expanded="true"><?php echo $language->translate("QUEUE");?></a></li>
 
-                                                <table class="table table-striped progress-widget zero-m">
+                                        <li class=""><a href="#downloadHistory" data-toggle="tab" aria-expanded="false"><?php echo $language->translate("HISTORY");?></a></li>
 
-                                                    <thead>
+                                    </ul>
 
-                                                        <tr>
+                                    <div class="clearfix"></div>
+
+                                </div>
 
-                                                            <th><?php echo $language->translate("FILE");?></th>
-                                                            <th><?php echo $language->translate("STATUS");?></th>
-                                                            <th><?php echo $language->translate("CATEGORY");?></th>
-                                                            <th><?php echo $language->translate("PROGRESS");?></th>
+                                <div class="panel-body">
 
-                                                        </tr>
+                                    <div class="tab-content">
 
-                                                    </thead>
+                                        <div class="tab-pane fade active in" id="downloadQueue">
 
-                                                    <tbody>
-                <?php if(NZBGETURL != ""){ echo nzbgetConnect(NZBGETURL, NZBGETPORT, NZBGETUSERNAME, NZBGETPASSWORD, "listgroups"); }?>                                   
-                <?php if(SABNZBDURL != ""){ echo sabnzbdConnect(SABNZBDURL, SABNZBDPORT, SABNZBDKEY, "queue"); }?>                                   
+                                                <div class="table-responsive" style="max-height: 300px">
 
-                                                    </tbody>
+                                                    <table class="table table-striped progress-widget zero-m" style="max-height: 300px">
 
-                                                </table>
+                                                        <thead>
 
-                                            </div>
+                                                            <tr>
 
-                                    </div>
+                                                                <th><?php echo $language->translate("FILE");?></th>
+                                                                <th><?php echo $language->translate("STATUS");?></th>
+                                                                <th><?php echo $language->translate("CATEGORY");?></th>
+                                                                <th><?php echo $language->translate("PROGRESS");?></th>
+
+                                                            </tr>
 
-                                    <div class="tab-pane fade" id="downloadHistory">
+                                                        </thead>
 
-                                        <div class="table-responsive">
+                                                        <tbody id="downloaderQueue">                               
 
-                                            <table class="table table-striped progress-widget zero-m">
+                                                        </tbody>
 
-                                                <thead>
+                                                    </table>
 
-                                                    <tr>
+                                                </div>
 
-                                                        <th>File</th>
-                                                        <th>Status</th>
-                                                        <th>Category</th>
-                                                        <th>Progress</th>
+                                        </div>
 
-                                                    </tr>
+                                        <div class="tab-pane fade" id="downloadHistory">
 
-                                                </thead>
+                                            <div class="table-responsive" style="max-height: 300px">
 
-                                                <tbody>
-            <?php if(NZBGETURL != ""){ echo nzbgetConnect(NZBGETURL, NZBGETPORT, NZBGETUSERNAME, NZBGETPASSWORD, "history"); }?>  
-            <?php if(SABNZBDURL != ""){ echo sabnzbdConnect(SABNZBDURL, SABNZBDPORT, SABNZBDKEY, "history"); }?>                                        
+                                                <table class="table table-striped progress-widget zero-m" style="max-height: 300px">
 
-                                                </tbody>
+                                                    <thead>
+
+                                                        <tr>
+
+                                                            <th>File</th>
+                                                            <th>Status</th>
+                                                            <th>Category</th>
+                                                            <th>Progress</th>
+
+                                                        </tr>
+
+                                                    </thead>
+
+                                                    <tbody id="downloaderHistory">                                      
+
+                                                    </tbody>
+
+                                                </table>
 
-                                            </table>
+                                                </div>
 
-                                            </div>
+                                        </div>
 
                                     </div>
 
                                 </div>
 
                             </div>
-
+                            
                         </div>
 
                     </div>
@@ -302,15 +327,14 @@ endif; ?>
 
                 </div>
                 
-                <?php if(SONARRURL != "" || RADARRURL != "") : ?>
+                <?php if(SONARRURL != "" || RADARRURL != "" || HEADPHONESURL != "") : ?>
                 <div id="calendarLegendRow" class="row" style="padding: 0 0 10px 0;">
                     
                     <div class="col-lg-4">
-                    
-                        <span class="label progress-bar-success progress-bar-striped well-sm"><span class="fc-image"><i class="fa fa-film"></i></span> Available</span>
-                        <span class="label progress-bar-danger progress-bar-striped well-sm"><span class="fc-image"><i class="fa fa-film"></i></span> Unavailable</span>
-                        <span class="label label-primary well-sm"><span class="fc-image"><i class="fa fa-tv"></i></span> Available</span>
-                        <span class="label label-danger well-sm"><span class="fc-image"><i class="fa fa-tv"></i></span> Unavailable</span>
+
+                        <span class="label label-primary well-sm">Available</span>
+                        <span class="label label-danger well-sm">Unavailable</span>
+                        <span class="label indigo-bg well-sm">Unreleased</span>
                     
                     </div>
                     
@@ -338,43 +362,133 @@ endif; ?>
         <script src="bower_components/jquery.nicescroll/jquery.nicescroll.min.js"></script>
         <script src="bower_components/slimScroll/jquery.slimscroll.min.js"></script>
         <script src="bower_components/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.js"></script>
+        <script src="bower_components/jquery.nicescroll/jquery.nicescroll.min.js"></script>
         <script src="bower_components/cta/dist/cta.min.js"></script>
         
         <script src="bower_components/fullcalendar/dist/fullcalendar.js"></script>
 
         <script src="js/jqueri_ui_custom/jquery-ui.min.js"></script>
 	    <script src="js/jquery.mousewheel.min.js" type="text/javascript"></script>
-
         
         <script>
         
         $( document ).ready(function() {
             
-            $(".carousel-caption").mCustomScrollbar({
-                theme:"inset-2",
-                scrollInertia: 300,
-                autoHideScrollbar: true,
-                autoExpandScrollbar: true
+             $('.repeat-btn').click(function(){
+                var refreshBox = $(this).closest('div.content-box');
+                $("<div class='refresh-preloader'><div class='la-timer la-dark'><div></div></div></div>").appendTo(refreshBox).fadeIn(300);
+
+                setTimeout(function(){
+                  var refreshPreloader = refreshBox.find('.refresh-preloader'),
+                      deletedRefreshBox = refreshPreloader.fadeOut(300, function(){
+                      refreshPreloader.remove();
+                  });
+                },1500);
+
+              });
+
+            $("body").niceScroll({
+                railpadding: {top:0,right:0,left:0,bottom:0},
+                scrollspeed: 30,
+                mousescrollstep: 60
+            });
+            
+            $(".table-responsive").niceScroll({
+                railpadding: {top:0,right:0,left:0,bottom:0},
+                scrollspeed: 30,
+                mousescrollstep: 60
             });
             
-            $(".scroller-body").mCustomScrollbar({
-                theme:"inset-3",
-                scrollInertia: 300,
-                autoHideScrollbar: true,
-                autoExpandScrollbar: true
+            /*$(".carousel-caption").niceScroll({
+                railpadding: {top:0,right:0,left:0,bottom:0},
+                scrollspeed: 30,
+                mousescrollstep: 60
+            });*/
+            
+            // check if browser support HTML5 local storage
+            function localStorageSupport() {
+                return (('localStorage' in window) && window['localStorage'] !== null)
+            }
+            
+            <?php if(NZBGETURL != "" || SABNZBDURL != ""){ ?>
+            
+            var downloaderSeconds = localStorage.getItem("downloaderSeconds");
+            var myInterval = undefined;
+            $("ul").find("[data-value='" + downloaderSeconds + "']").addClass("active");
+            
+            if(  downloaderSeconds === null ) {
+                localStorage.setItem("downloaderSeconds",'60000');
+                var downloaderSeconds = "60000";
+            }
+            
+            $('#downloaderSeconds li').click(function() {
+                
+                $('#downloaderSeconds li').removeClass("active");
+                $(this).addClass("active");
+
+                var newDownloaderSeconds = $(this).attr('data-value');
+                console.log('New Time is ' + newDownloaderSeconds + ' Old Time was ' + downloaderSeconds);
+                
+                if (localStorageSupport) {
+                    localStorage.setItem("downloaderSeconds",newDownloaderSeconds);
+                }
+                
+                if(typeof myInterval != 'undefined'){ clearInterval(myInterval); }
+                refreshDownloader(newDownloaderSeconds);
+                
             });
             
-            $("fc-scroller").mCustomScrollbar({
-                theme:"inset-3",
-                scrollInertia: 300,
-                autoHideScrollbar: true,
-                autoExpandScrollbar: true
+            <?php } ?>
+            
+            
+            <?php if(NZBGETURL != ""){ ?>
+            
+            $("#downloaderHistory").load("downloader.php?downloader=nzbget&list=history");
+            $("#downloaderQueue").load("downloader.php?downloader=nzbget&list=listgroups");
+            
+            refreshDownloader = function(secs){
+                myInterval = setInterval(function(){
+                    $("#downloaderHistory").load("downloader.php?downloader=nzbget&list=history");
+                    $("#downloaderQueue").load("downloader.php?downloader=nzbget&list=listgroups");
+                }, secs);                
+            }
+
+            refreshDownloader(downloaderSeconds);
+
+            $("#getDownloader").click(function(){
+                $("#downloaderHistory").load("downloader.php?downloader=nzbget&list=history");
+                $("#downloaderQueue").load("downloader.php?downloader=nzbget&list=listgroups");
+                console.log('completed'); 
             });
+
+            <?php } ?>
+            
+            <?php if(SABNZBDURL != ""){ ?>
             
+            $("#downloaderHistory").load("downloader.php?downloader=sabnzbd&list=history");
+            $("#downloaderQueue").load("downloader.php?downloader=sabnzbd&list=queue");
+            
+            refreshDownloader = function(secs){
+                myInterval = setInterval(function(){
+                    $("#downloaderHistory").load("downloader.php?downloader=sabnzbd&list=history");
+                    $("#downloaderQueue").load("downloader.php?downloader=sabnzbd&list=queue");
+                }, secs);                
+            }
+
+            refreshDownloader(downloaderSeconds);
+
+            $("#getDownloader").click(function(){
+                $("#downloaderHistory").load("downloader.php?downloader=sabnzbd&list=history");
+                $("#downloaderQueue").load("downloader.php?downloader=sabnzbd&list=queue");
+                console.log('completed'); 
+            });
+
+            <?php } ?>
+                        
         });
              
         </script>
-        <?php if(SONARRURL != "" || RADARRURL != "") : ?>
+        <?php if(SONARRURL != "" || RADARRURL != "" || HEADPHONESURL != "") : ?>
         <script>
             
             $(function () {
@@ -426,4 +540,4 @@ endif; ?>
 
     </body>
 
-</html>
+</html>

+ 2 - 1
lang/de.ini

@@ -205,4 +205,5 @@ SABNZBD_PORT = "SABnzbd Port"
 SABNZBD_KEY = "SABnzbd API Key"
 HEADPHONES_URL = "Headphones URL"
 HEADPHONES_PORT = "Headphones Port"
-HEADPHONES_KEY = "Headphones API Key"
+HEADPHONES_KEY = "Headphones API Key"
+COOKIE_DOMAIN = "Domain Name for Cookie"

+ 2 - 1
lang/en.ini

@@ -205,4 +205,5 @@ SABNZBD_PORT = "SABnzbd Port"
 SABNZBD_KEY = "SABnzbd API Key"
 HEADPHONES_URL = "Headphones URL"
 HEADPHONES_PORT = "Headphones Port"
-HEADPHONES_KEY = "Headphones API Key"
+HEADPHONES_KEY = "Headphones API Key"
+COOKIE_DOMAIN = "Domain Name for Cookie"

+ 2 - 1
lang/es.ini

@@ -205,4 +205,5 @@ SABNZBD_PORT = "SABnzbd Port"
 SABNZBD_KEY = "SABnzbd API Key"
 HEADPHONES_URL = "Headphones URL"
 HEADPHONES_PORT = "Headphones Port"
-HEADPHONES_KEY = "Headphones API Key"
+HEADPHONES_KEY = "Headphones API Key"
+COOKIE_DOMAIN = "Domain Name for Cookie"

+ 2 - 1
lang/fr.ini

@@ -205,4 +205,5 @@ SABNZBD_PORT = "SABnzbd Port"
 SABNZBD_KEY = "SABnzbd API Key"
 HEADPHONES_URL = "Headphones URL"
 HEADPHONES_PORT = "Headphones Port"
-HEADPHONES_KEY = "Headphones API Key"
+HEADPHONES_KEY = "Headphones API Key"
+COOKIE_DOMAIN = "Domain Name for Cookie"

+ 2 - 1
lang/it.ini

@@ -205,4 +205,5 @@ SABNZBD_PORT = "SABnzbd Port"
 SABNZBD_KEY = "SABnzbd API Key"
 HEADPHONES_URL = "Headphones URL"
 HEADPHONES_PORT = "Headphones Port"
-HEADPHONES_KEY = "Headphones API Key"
+HEADPHONES_KEY = "Headphones API Key"
+COOKIE_DOMAIN = "Domain Name for Cookie"

+ 2 - 1
lang/nl.ini

@@ -205,4 +205,5 @@ SABNZBD_PORT = "SABnzbd Port"
 SABNZBD_KEY = "SABnzbd API Key"
 HEADPHONES_URL = "Headphones URL"
 HEADPHONES_PORT = "Headphones Port"
-HEADPHONES_KEY = "Headphones API Key"
+HEADPHONES_KEY = "Headphones API Key"
+COOKIE_DOMAIN = "Domain Name for Cookie"

+ 2 - 1
lang/pl.ini

@@ -205,4 +205,5 @@ SABNZBD_PORT = "SABnzbd Port"
 SABNZBD_KEY = "SABnzbd API Key"
 HEADPHONES_URL = "Headphones URL"
 HEADPHONES_PORT = "Headphones Port"
-HEADPHONES_KEY = "Headphones API Key"
+HEADPHONES_KEY = "Headphones API Key"
+COOKIE_DOMAIN = "Domain Name for Cookie"

+ 8 - 5
settings.php

@@ -1003,10 +1003,6 @@ endif; ?>
 
                                                     </div>
                                                     
-                                                    
-                                                    
-                                                    <!--<button type="submit" onclick="User.processRegistration()" class="btn btn-primary btn-icon waves waves-circle waves-effect waves-float"><i class="fa fa-user-plus"></i></button>-->
-                                                    
                                                     <button type="submit" onclick="User.processRegistration()" class="btn waves btn-labeled btn-primary btn btn-sm text-uppercase waves-effect waves-float promoteUser">
 
                                                         <span class="btn-label"><i class="fa fa-user-plus"></i></span><?php echo $language->translate("CREATE_USER");?>
@@ -1188,6 +1184,13 @@ endif; ?>
 
                                                     </div>
                                                     
+                                                    <div class="form-group">
+
+                                                        <input type="text" class="form-control material input-sm" name="domain" placeholder="<?php echo $language->translate("COOKIE_DOMAIN");?>" value="<?php echo DOMAIN;?>">
+                                                        <p class="help-text"><?php echo $language->translate("COOKIE_DOMAIN");?></p>
+
+                                                    </div>
+                                                    
                                                     <div class="form-group">
 
                                                         <input type="text" class="form-control material input-sm" name="registerPassword" placeholder="<?php echo $language->translate("REGISTER_PASSWORD");?>" value="<?php echo REGISTERPASSWORD;?>">
@@ -1512,7 +1515,7 @@ endif; ?>
 
                                                             <div class="form-group">
 
-                                                                <input type="text" class="form-control material input-sm" name="nzbgetPort" placeholder="<?php echo $language->translate("SABNZBD_PORT");?>" autocorrect="off" autocapitalize="off" value="<?php echo SABNZBDPORT;?>">
+                                                                <input type="text" class="form-control material input-sm" name="sabnzbdPort" placeholder="<?php echo $language->translate("SABNZBD_PORT");?>" autocorrect="off" autocapitalize="off" value="<?php echo SABNZBDPORT;?>">
                                                                 <p class="help-text"><?php echo $language->translate("SABNZBD_PORT");?></p>
 
                                                             </div>

+ 16 - 15
user.php

@@ -8,7 +8,7 @@
 	 * salting subsequent password checks.
 	 */
     
-    define('INSTALLEDVERSION', '1.20');
+    define('INSTALLEDVERSION', '1.21');
 
     $databaseConfig = parse_ini_file('databaseLocation.ini.php', true);
     define('USER_HOME', $databaseConfig['databaseLocation'] . '/users/');
@@ -24,6 +24,7 @@
     if(!empty($databaseConfig['registerPassword'])) : define('REGISTERPASSWORD', $databaseConfig['registerPassword']); else : define('REGISTERPASSWORD', ''); endif;
     if(!empty($databaseConfig['gravatar'])) : define('GRAVATAR', $databaseConfig['gravatar']); else : define('GRAVATAR', 'true'); endif;
     if(!empty($databaseConfig['notifyEffect'])) : define('NOTIFYEFFECT', $databaseConfig['notifyEffect']); else : define('NOTIFYEFFECT', 'bar-slidetop'); endif;
+    if(!empty($databaseConfig['domain'])) : define('DOMAIN', $databaseConfig['domain']); else : define('DOMAIN', $_SERVER['HTTP_HOST']); endif;
 
     if(!file_exists('homepageSettings.ini.php')){ touch('homepageSettings.ini.php'); }
         
@@ -467,11 +468,11 @@ EOT;
 			$_SESSION["username"] = User::GUEST_USER;
 			$_SESSION["token"] = -1;
             unset($_COOKIE['Organizr']);
-            setcookie('Organizr', '', time() - 3600, '/');
+            setcookie('Organizr', '', time() - 3600, '/', DOMAIN);
             unset($_COOKIE['OrganizrU']);
-            setcookie('OrganizrU', '', time() - 3600, '/');
+            setcookie('OrganizrU', '', time() - 3600, '/', DOMAIN);
             unset($_COOKIE['cookiePassword']);
-            setcookie("cookiePassword", '', time() - 3600, '/');
+            setcookie("cookiePassword", '', time() - 3600, '/', DOMAIN);
 		}
 
 		/**
@@ -524,11 +525,11 @@ EOT;
 
                         $this->error("cookie token mismatch for $username");
                         unset($_COOKIE['Organizr']);
-                        setcookie('Organizr', '', time() - 3600, '/');
+                        setcookie('Organizr', '', time() - 3600, '/', DOMAIN);
                         unset($_COOKIE['OrganizrU']);
-                        setcookie('OrganizrU', '', time() - 3600, '/');
+                        setcookie('OrganizrU', '', time() - 3600, '/', DOMAIN);
                         unset($_COOKIE['cookiePassword']);
-                        setcookie("cookiePassword", '', time() - 3600, '/');
+                        setcookie("cookiePassword", '', time() - 3600, '/', DOMAIN);
                         return false;
 
                     }
@@ -543,14 +544,14 @@ EOT;
                     }
 
                     // active, using the correct token -> authenticated
-                     setcookie("cookiePassword", COOKIEPASSWORD, time() + (86400 * 7), "/");
+                     setcookie("cookiePassword", COOKIEPASSWORD, time() + (86400 * 7), "/", DOMAIN);
                      return true;
                     
                 }
                 
             }else{
                 
-                setcookie("cookiePassword", COOKIEPASSWORD, time() + (86400 * 7), "/");
+                setcookie("cookiePassword", COOKIEPASSWORD, time() + (86400 * 7), "/", DOMAIN);
                 return true;
                 
             }    
@@ -705,14 +706,14 @@ EOT;
 					$this->setSession($username, $this->update_user_token($username, $sha1, false));
 					// authentication passed - 2) signal authenticated
                     if($remember == "true") {
-                        setcookie("Organizr", $this->get_user_token($username), time() + (86400 * 7), "/");
-                        setcookie("OrganizrU", $username, time() + (86400 * 7), "/");
+                        setcookie("Organizr", $this->get_user_token($username), time() + (86400 * 7), "/", DOMAIN);
+                        setcookie("OrganizrU", $username, time() + (86400 * 7), "/", DOMAIN);
                         
                     }
 					$this->info("Welcome $username");
                     file_put_contents(FAIL_LOG, buildLog($username, "good_auth"));
                     chmod(FAIL_LOG, 0660);
-                    setcookie("cookiePassword", COOKIEPASSWORD, time() + (86400 * 7), "/");
+                    setcookie("cookiePassword", COOKIEPASSWORD, time() + (86400 * 7), "/", DOMAIN);
                     return true; 
                     
                 }
@@ -761,11 +762,11 @@ EOT;
 			$this->resetSession();
 			$this->info("Buh-Bye <strong>$username</strong>!");
             unset($_COOKIE['Organizr']);
-            setcookie('Organizr', '', time() - 3600, '/');
+            setcookie('Organizr', '', time() - 3600, '/', DOMAIN);
             unset($_COOKIE['OrganizrU']);
-            setcookie('OrganizrU', '', time() - 3600, '/');
+            setcookie('OrganizrU', '', time() - 3600, '/', DOMAIN);
             unset($_COOKIE['cookiePassword']);
-            setcookie("cookiePassword", '', time() - 3600, '/');
+            setcookie("cookiePassword", '', time() - 3600, '/', DOMAIN);
 			return true;
 		}