|
|
@@ -30,11 +30,15 @@ trait JackettHomepageItem
|
|
|
'Options' => [
|
|
|
$this->settingsOption('switch', 'homepageJackettBackholeDownload', ['label' => 'Prefer black hole download', 'help' => 'Prefer black hole download link instead of direct/magnet download']),
|
|
|
],
|
|
|
+ 'Test Connection' => [
|
|
|
+ $this->settingsOption('blank', null, ['label' => 'Please Save before Testing']),
|
|
|
+ $this->settingsOption('test', 'jackett'),
|
|
|
+ ]
|
|
|
]
|
|
|
];
|
|
|
return array_merge($homepageInformation, $homepageSettings);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public function jackettHomepagePermissions($key = null)
|
|
|
{
|
|
|
$permissions = [
|
|
|
@@ -49,11 +53,20 @@ trait JackettHomepageItem
|
|
|
'jackettURL',
|
|
|
'jackettToken'
|
|
|
]
|
|
|
+ ],
|
|
|
+ 'test' => [
|
|
|
+ 'auth' => [
|
|
|
+ 'homepageJackettAuth'
|
|
|
+ ],
|
|
|
+ 'not_empty' => [
|
|
|
+ 'jackettURL',
|
|
|
+ 'jackettToken'
|
|
|
+ ]
|
|
|
]
|
|
|
];
|
|
|
return $this->homepageCheckKeyPermissions($key, $permissions);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public function homepageOrderJackett()
|
|
|
{
|
|
|
if ($this->homepageItemPermissions($this->jackettHomepagePermissions('main'))) {
|
|
|
@@ -69,7 +82,35 @@ trait JackettHomepageItem
|
|
|
';
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ public function testConnectionJackett()
|
|
|
+ {
|
|
|
+ if (!$this->homepageItemPermissions($this->jackettHomepagePermissions('test'), true)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ $apiURL = $this->qualifyURL($this->config['jackettURL']);
|
|
|
+ $endpoint = $apiURL . '/api/v2.0/indexers/all/results?apikey=' . $this->config['jackettToken'] . '&Query=this-is-just-a-test-for-organizr';
|
|
|
+ try {
|
|
|
+ $headers = [];
|
|
|
+ $options = $this->requestOptions($apiURL, 120, $this->config['jackettDisableCertCheck'], $this->config['jackettUseCustomCertificate']);
|
|
|
+ $response = Requests::get($endpoint, $headers, $options);
|
|
|
+ if ($response->success) {
|
|
|
+ $apiData = json_decode($response->body, true);
|
|
|
+ $api['content'] = $apiData;
|
|
|
+ unset($apiData);
|
|
|
+ } else {
|
|
|
+ $this->setResponse(403, 'Error connecting to Jackett');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ } catch (Requests_Exception $e) {
|
|
|
+ $this->setResponse(500, $e->getMessage());
|
|
|
+ return false;
|
|
|
+ };
|
|
|
+ $api['content'] = $api['content'] ?? false;
|
|
|
+ $this->setResponse(200, null, $api);
|
|
|
+ return $api;
|
|
|
+ }
|
|
|
+
|
|
|
public function searchJackettIndexers($query = null)
|
|
|
{
|
|
|
if (!$this->homepageItemPermissions($this->jackettHomepagePermissions('main'), true)) {
|
|
|
@@ -91,15 +132,14 @@ trait JackettHomepageItem
|
|
|
unset($apiData);
|
|
|
}
|
|
|
} catch (Requests_Exception $e) {
|
|
|
- $this->writeLog('error', 'Weather And Air Connect Function - Error: ' . $e->getMessage(), 'SYSTEM');
|
|
|
- $this->setAPIResponse('error', $e->getMessage(), 500);
|
|
|
+ $this->setResponse(500, $e->getMessage());
|
|
|
return false;
|
|
|
};
|
|
|
$api['content'] = isset($api['content']) ? $api['content'] : false;
|
|
|
$this->setAPIResponse('success', null, 200, $api);
|
|
|
return $api;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public function performJackettBackHoleDownload($url = null)
|
|
|
{
|
|
|
if (!$this->homepageItemPermissions($this->jackettHomepagePermissions('main'), true)) {
|