halorrr
7 years ago
committed by
GitHub
1 changed files with 77 additions and 0 deletions
@ -0,0 +1,77 @@ |
|||||
|
<?php namespace App\SupportedApps; |
||||
|
|
||||
|
use GuzzleHttp\Exception\GuzzleException; |
||||
|
use GuzzleHttp\Client; |
||||
|
|
||||
|
class Tautulli implements Contracts\Applications, Contracts\Livestats { |
||||
|
|
||||
|
public $config; |
||||
|
|
||||
|
public function defaultColour() |
||||
|
{ |
||||
|
return '#2d2208'; |
||||
|
} |
||||
|
public function icon() |
||||
|
{ |
||||
|
return 'supportedapps/tautulli.png'; |
||||
|
} |
||||
|
public function configDetails() |
||||
|
{ |
||||
|
return 'tautulli'; |
||||
|
} |
||||
|
public function testConfig() |
||||
|
{ |
||||
|
$res = $this->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 = ' |
||||
|
<ul class="livestats"> |
||||
|
<li><span class="title">Stream Count</span><strong>'.$stream_count.'</strong></li> |
||||
|
</ul> |
||||
|
'; |
||||
|
|
||||
|
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; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
Loading…
Reference in new issue