downloader.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <?php
  2. $auth = strpos($_SERVER['HTTP_REFERER'], "homepage.php");
  3. if ($auth === false) { die("WTF? Bro!"); }
  4. require_once("user.php");
  5. isset($_GET['downloader']) ? $downloader = $_GET['downloader'] : die("Error");
  6. isset($_GET['list']) ? $list = $_GET['list'] : die("Error");
  7. if($downloader == "nzbget"){
  8. $url = NZBGETURL;
  9. $username = NZBGETUSERNAME;
  10. $password = NZBGETPASSWORD;
  11. $urlCheck = stripos($url, "http");
  12. if ($urlCheck === false) {
  13. $url = "http://" . $url;
  14. }
  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. $downloadName = $child['NZBName'];
  23. $downloadStatus = $child['Status'];
  24. $downloadCategory = $child['Category'];
  25. if($list == "history"){
  26. $downloadPercent = "100";
  27. $progressBar = "";
  28. }
  29. if($list == "listgroups"){ $downloadPercent = (($child['FileSizeMB'] - $child['RemainingSizeMB']) / $child['FileSizeMB']) * 100; $progressBar = "progress-bar-striped active"; }
  30. if($child['Health'] <= "750"){
  31. $downloadHealth = "danger";
  32. }elseif($child['Health'] <= "900"){
  33. $downloadHealth = "warning";
  34. }elseif($child['Health'] <= "1000"){
  35. $downloadHealth = "success";
  36. }
  37. $gotNZB .= '<tr>
  38. <td>'.$downloadName.'</td>
  39. <td>'.$downloadStatus.'</td>
  40. <td>'.$downloadCategory.'</td>
  41. <td>
  42. <div class="progress">
  43. <div class="progress-bar progress-bar-'.$downloadHealth.' '.$progressBar.'" role="progressbar" aria-valuenow="'.$downloadPercent.'" aria-valuemin="0" aria-valuemax="100" style="width: '.$downloadPercent.'%">
  44. <p class="text-center">'.round($downloadPercent).'%</p>
  45. <span class="sr-only">'.$downloadPercent.'% Complete</span>
  46. </div>
  47. </div>
  48. </td>
  49. </tr>';
  50. }
  51. if($i > 0){ echo $gotNZB; }
  52. if($i == 0){ echo '<tr><td colspan="4"><p class="text-center">No Results</p></td></tr>'; }
  53. }
  54. if($downloader == "sabnzbd"){
  55. $url = SABNZBDURL;
  56. $key = SABNZBDKEY;
  57. $urlCheck = stripos($url, "http");
  58. if ($urlCheck === false) {
  59. $url = "http://" . $url;
  60. }
  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. ?>