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

Added JDownloader Actions
- added start/stop
- added pause/unpause
- added update
- ensured compatibility with RSScrawler

rix1337 6 лет назад
Родитель
Сommit
5fb3719b68

+ 1 - 1
api/functions/homepage-connect-functions.php

@@ -739,7 +739,7 @@ function jdownloaderConnect()
 {
     if ($GLOBALS['homepageJdownloaderEnabled'] && !empty($GLOBALS['jdownloaderURL']) && qualifyRequest($GLOBALS['homepageJdownloaderAuth'])) {
         $url = qualifyURL($GLOBALS['jdownloaderURL']);
-        $url = $url . '/';
+
         try {
             $options = (localURL($url)) ? array('verify' => false) : array();
             $response = Requests::get($url, array(), $options);

+ 1 - 0
api/functions/homepage-functions.php

@@ -1017,6 +1017,7 @@ function getHomepageList()
                                 <div class="panel-body">
 									<ul class="list-icons">
                                         <li><i class="fa fa-chevron-right text-danger"></i> <a href="https://pypi.org/project/myjd-api/" target="_blank">Download [myjd-api] Module</a></li>
+                                        <li><i class="fa fa-chevron-right text-danger"></i> Add <b>/api/myjd</b> to the URL if you are using <a href="https://pypi.org/project/RSScrawler/" target="_blank">RSScrawler</a></li>
                                     </ul>
                                 </div>
                             </div>

+ 24 - 13
api/functions/organizr-functions.php

@@ -1942,13 +1942,16 @@ function downloader($array)
 			break;
         case 'jdownloader':
             switch ($array['data']['action']) {
-                case 'resume':
+                case 'start':
                     jdownloaderAction($array['data']['action'], $array['data']['target']);
                     break;
-                case 'pause':
+                case 'stop':
                     jdownloaderAction($array['data']['action'], $array['data']['target']);
                     break;
-                case 'stop':
+                case 'resume':
+                    jdownloaderAction($array['data']['action'], $array['data']['target']);
+                    break;
+                case 'pause':
                     jdownloaderAction($array['data']['action'], $array['data']['target']);
                     break;
                 case 'update':
@@ -1975,22 +1978,30 @@ function downloader($array)
 
 function jdownloaderAction($action = null, $target = null)
 {
-    if ($GLOBALS['homepageJdownloaderEnabled'] && !empty($GLOBALS['jdownloaderURL']) && !empty($GLOBALS['jdownloaderToken']) && qualifyRequest($GLOBALS['homepageJdownloaderAuth'])) {
+    if ($GLOBALS['homepageJdownloaderEnabled'] && !empty($GLOBALS['jdownloaderURL']) && qualifyRequest($GLOBALS['homepageJdownloaderAuth'])) {
         $url = qualifyURL($GLOBALS['jdownloaderURL']);
+
+        # This ensures compatibility with RSScrawler
+        $url = str_replace('/myjd', '', $url);
+        if(substr($url , -1)=='/') {
+            $url = substr_replace($url ,"",-1);
+        }
+
         switch ($action) {
+            case 'start':
+                $url = $url . '/myjd_start/';
+                break;
+            case 'stop':
+                $url = $url . '/myjd_stop/';
+                break;
             case 'resume':
-                # TODO: fix this for unique packages (start online, delete offline ones)
-                $id = ($target !== '' && $target !== 'main' && isset($target)) ? 'mode=queue&name=pause&value=' . $target . '&' : 'mode=pause';
-                $url = $url . '/api?' . $id . '&output=json&apikey=' . $GLOBALS['jdownloaderToken'];
+                $url = $url . '/myjd_pause/false';
                 break;
             case 'pause':
-                # code...
-                break;
-            case 'stop':
-                # code...
+                $url = $url . '/myjd_pause/true';
                 break;
             case 'update':
-                # code...
+                $url = $url . '/myjd_update';
                 break;
             case 'retry':
                 # code...
@@ -2004,7 +2015,7 @@ function jdownloaderAction($action = null, $target = null)
         }
         try {
             $options = (localURL($url)) ? array('verify' => false) : array();
-            $response = Requests::get($url, array(), $options);
+            $response = Requests::post($url, array(), $options);
             if ($response->success) {
                 $api['content'] = json_decode($response->body, true);
             }

+ 1 - 1
js/functions.js

@@ -4923,7 +4923,7 @@ function buildDownloaderItem(array, source, type='none'){
                 }else if(array.content.$status[0] == 'PAUSE'){
                     queue += `<tr><td><a href="#"><span class="downloader mouse" data-source="jdownloader" data-action="resume" data-target="main"><i class="fa fa-fast-forward"></i></span></a></td></tr>`;
                 }else{
-                    queue += `<tr><td><a href="#"><span class="downloader mouse" data-source="jdownloader" data-action="resume" data-target="main"><i class="fa fa-play"></i></span></a></td></tr>`;
+                    queue += `<tr><td><a href="#"><span class="downloader mouse" data-source="jdownloader" data-action="start" data-target="main"><i class="fa fa-play"></i></span></a></td></tr>`;
                 }
                 if(array.content.$status[1]) {
                     queue += `<tr><td><a href="#"><span class="downloader mouse" data-source="jdownloader" data-action="update" data-target="main"><i class="fa fa-globe"></i></span></a></td></tr>`;