diff --git a/app/Item.php b/app/Item.php index 29a77fdb..7a7c125f 100644 --- a/app/Item.php +++ b/app/Item.php @@ -57,6 +57,7 @@ class Item extends Model 'Sabnzbd' => \App\SupportedApps\Sabnzbd::class, 'Sickrage' => \App\SupportedApps\Sickrage::class, 'Sonarr' => \App\SupportedApps\Sonarr::class, + 'Tautulli' => \App\SupportedApps\Tautulli::class, 'Transmission' => \App\SupportedApps\Transmission::class, 'Traefik' => \App\SupportedApps\Traefik::class, 'Ttrss' => \App\SupportedApps\Ttrss::class, diff --git a/app/SupportedApps/Tautulli.php b/app/SupportedApps/Tautulli.php new file mode 100644 index 00000000..fc22c5ad --- /dev/null +++ b/app/SupportedApps/Tautulli.php @@ -0,0 +1,77 @@ +buildRequest('arnold'); + switch($res->getStatusCode()) { + case 200: + $data = json_decode($res->getBody()); + if(isset($data->error) && !empty($data->error)) { + echo 'Failed: '.$data->error; + } else { + echo 'Successfully connected to the API'; + } + break; + case 401: + echo 'Failed: Invalid credentials'; + break; + case 404: + echo 'Failed: Please make sure your URL is correct and that there is a trailing slash'; + break; + default: + echo 'Something went wrong... Code: '.$res->getStatusCode(); + break; + } + } + public function executeConfig() + { + $html = ''; + $active = 'active'; + $res = $this->buildRequest('get_activity'); + $data = json_decode($res->getBody()); + $stream_count = $data->response->data->stream_count; + + $html = ' + + '; + + return json_encode(['status' => $active, 'html' => $html]); + } + public function buildRequest($endpoint) + { + $config = $this->config; + $url = $config->url; + $apikey = $config->apikey; + + $url = rtrim($url, '/'); + + $api_url = $url.'/api/v2?apikey='.$apikey.'&cmd='.$endpoint; + + $client = new Client(['http_errors' => false, 'timeout' => 15, 'connect_timeout' => 15]); + $res = $client->request('GET', $api_url); + return $res; + + } + +} diff --git a/readme.md b/readme.md index c21a106b..c45167c9 100644 --- a/readme.md +++ b/readme.md @@ -34,6 +34,7 @@ You can use the app to link to any site or application, but Foundation apps will - Proxmox - Runeaudio - Sabnzbd +- Tautulli - Transmission **Foundation** diff --git a/resources/views/supportedapps/tautulli.blade.php b/resources/views/supportedapps/tautulli.blade.php new file mode 100644 index 00000000..e2b02c2b --- /dev/null +++ b/resources/views/supportedapps/tautulli.blade.php @@ -0,0 +1,15 @@ +

{{ __('app.apps.config') }} ({{ __('app.optional') }})

+
+ +
+ + {!! Form::text('config[override_url]', null, array('placeholder' => __('app.apps.override'), 'id' => 'override_url', 'class' => 'form-control')) !!} +
+
+ + {!! Form::text('config[apikey]', null, array('placeholder' => __('app.apps.apikey'), 'data-config' => 'apikey', 'class' => 'form-control config-item')) !!} +
+
+ +
+
diff --git a/storage/app/public/supportedapps/tautulli.png b/storage/app/public/supportedapps/tautulli.png new file mode 100644 index 00000000..dbde75cf Binary files /dev/null and b/storage/app/public/supportedapps/tautulli.png differ