downloader.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <?php
  2. require_once("user.php");
  3. isset($_GET['downloader']) ? $downloader = $_GET['downloader'] : die("Error");
  4. isset($_GET['list']) ? $list = $_GET['list'] : die("Error");
  5. if($downloader == "nzbget"){
  6. $url = NZBGETURL;
  7. $port = NZBGETPORT;
  8. $username = NZBGETUSERNAME;
  9. $password = NZBGETPASSWORD;
  10. $urlCheck = stripos($url, "http");
  11. if ($urlCheck === false) {
  12. $url = "http://" . $url;
  13. }
  14. if($port !== ""){ $url = $url . ":" . $port; }
  15. $address = $url;
  16. $api = file_get_contents("$url/$username:$password/jsonrpc/$list");
  17. $api = json_decode($api, true);
  18. $i = 0;
  19. $gotNZB = "";
  20. foreach ($api['result'] AS $child) {
  21. $i++;
  22. //echo '<pre>' . var_export($child, true) . '</pre>';
  23. $downloadName = $child['NZBName'];
  24. $downloadStatus = $child['Status'];
  25. $downloadCategory = $child['Category'];
  26. if($list == "history"){ $downloadPercent = "100"; $progressBar = ""; }
  27. if($list == "listgroups"){ $downloadPercent = (($child['FileSizeMB'] - $child['RemainingSizeMB']) / $child['FileSizeMB']) * 100; $progressBar = "progress-bar-striped active"; }
  28. if($child['Health'] <= "750"){
  29. $downloadHealth = "danger";
  30. }elseif($child['Health'] <= "900"){
  31. $downloadHealth = "warning";
  32. }elseif($child['Health'] <= "1000"){
  33. $downloadHealth = "success";
  34. }
  35. $gotNZB .= '<tr>
  36. <td>'.$downloadName.'</td>
  37. <td>'.$downloadStatus.'</td>
  38. <td>'.$downloadCategory.'</td>
  39. <td>
  40. <div class="progress">
  41. <div class="progress-bar progress-bar-'.$downloadHealth.' '.$progressBar.'" role="progressbar" aria-valuenow="'.$downloadPercent.'" aria-valuemin="0" aria-valuemax="100" style="width: '.$downloadPercent.'%">
  42. <p class="text-center">'.round($downloadPercent).'%</p>
  43. <span class="sr-only">'.$downloadPercent.'% Complete</span>
  44. </div>
  45. </div>
  46. </td>
  47. </tr>';
  48. }
  49. if($i > 0){ echo $gotNZB; }
  50. if($i == 0){ echo '<tr><td colspan="4"><p class="text-center">No Results</p></td></tr>'; }
  51. }
  52. if($downloader == "sabnzbd"){
  53. $url = SABNZBDURL;
  54. $port = SABNZBDPORT;
  55. $key = SABNZBDKEY;
  56. $urlCheck = stripos($url, "http");
  57. if ($urlCheck === false) {
  58. $url = "http://" . $url;
  59. }
  60. if($port !== ""){ $url = $url . ":" . $port; }
  61. $address = $url;
  62. $api = file_get_contents("$url/api?mode=$list&output=json&apikey=$key&limit=40");
  63. $api = json_decode($api, true);
  64. $i = 0;
  65. $gotNZB = "";
  66. foreach ($api[$list]['slots'] AS $child) {
  67. $i++;
  68. if($list == "queue"){
  69. $downloadName = $child['filename'];
  70. $downloadCategory = $child['cat'];
  71. $downloadPercent = (($child['mb'] - $child['mbleft']) / $child['mb']) * 100;
  72. $progressBar = "progress-bar-striped active";
  73. if($child['missing'] > "400"){
  74. $downloadHealth = "danger";
  75. }elseif($child['missing'] <= "200"){
  76. $downloadHealth = "success";
  77. }elseif($child['missing'] <= "400"){
  78. $downloadHealth = "warning";
  79. }
  80. }
  81. if($list == "history"){
  82. $downloadName = $child['name'];
  83. $downloadCategory = $child['category'];
  84. $downloadPercent = "100";
  85. $progressBar = "";
  86. $downloadHealth = "success";
  87. }
  88. $downloadStatus = $child['status'];
  89. $gotNZB .= '<tr>
  90. <td>'.$downloadName.'</td>
  91. <td>'.$downloadStatus.'</td>
  92. <td>'.$downloadCategory.'</td>
  93. <td>
  94. <div class="progress">
  95. <div class="progress-bar progress-bar-'.$downloadHealth.' '.$progressBar.'" role="progressbar" aria-valuenow="'.$downloadPercent.'" aria-valuemin="0" aria-valuemax="100" style="width: '.$downloadPercent.'%">
  96. <p class="text-center">'.round($downloadPercent).'%</p>
  97. <span class="sr-only">'.$downloadPercent.'% Complete</span>
  98. </div>
  99. </div>
  100. </td>
  101. </tr>';
  102. }
  103. if($i > 0){ echo $gotNZB; }
  104. if($i == 0){ echo '<tr><td colspan="4"><p class="text-center">No Results</p></td></tr>'; }
  105. }
  106. ?>