4 changed files with 133 additions and 0 deletions
@ -0,0 +1,94 @@ |
|||||
|
<?php namespace App\SupportedApps; |
||||
|
|
||||
|
use GuzzleHttp\Exception\GuzzleException; |
||||
|
use GuzzleHttp\Client; |
||||
|
|
||||
|
class Runeaudio implements Contracts\Applications, Contracts\Livestats { |
||||
|
public function defaultColour() |
||||
|
{ |
||||
|
return '#05A'; |
||||
|
} |
||||
|
public function icon() |
||||
|
{ |
||||
|
return 'supportedapps/runeaudio.png'; |
||||
|
} |
||||
|
|
||||
|
public function configDetails() |
||||
|
{ |
||||
|
return 'runeaudio'; |
||||
|
} |
||||
|
|
||||
|
public function testConfig() |
||||
|
{ |
||||
|
$res = $this->buildRequest('status'); |
||||
|
switch($res->getStatusCode()) { |
||||
|
case 200: |
||||
|
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() |
||||
|
{ |
||||
|
$output = ''; |
||||
|
$artist = ''; |
||||
|
$song_title = ''; |
||||
|
$res = $this->buildRequest('currentsong'); |
||||
|
$array = explode("\n", $res->getBody()); |
||||
|
foreach($array as $item) { |
||||
|
$item_array = explode(": ", $item); |
||||
|
if ($item_array[0] == 'Artist') { |
||||
|
$artist = $item_array[1]; |
||||
|
} elseif ($item_array[0] == 'Title') { |
||||
|
$song_title = $item_array[1]; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
$output = '<ul class="livestats">'; |
||||
|
|
||||
|
if (strlen($artist) > 12) { |
||||
|
$output = $output.'<li><span class="title-marquee"><span>'.$artist.'</span></span></li>'; |
||||
|
} else { |
||||
|
$output = $output.'<li><span class="title">'.$artist.'</span></li>'; |
||||
|
} |
||||
|
|
||||
|
$output = $output.'</ul><ul class="livestats">'; |
||||
|
|
||||
|
if (strlen($song_title) > 12) { |
||||
|
$output = $output.'<li><span class="title-marquee"><span>'.$song_title.'</span></span></li>'; |
||||
|
} else { |
||||
|
$output = $output.'<li><span class="title">'.$song_title.'</span></li>'; |
||||
|
} |
||||
|
|
||||
|
$output = $output.'</ul>'; |
||||
|
|
||||
|
return $output; |
||||
|
} |
||||
|
|
||||
|
public function buildRequest($endpoint) |
||||
|
{ |
||||
|
$config = $this->config; |
||||
|
$url = $config->url; |
||||
|
|
||||
|
$url = rtrim($url, '/'); |
||||
|
|
||||
|
$api_url = $url.'/command/?cmd='.$endpoint; |
||||
|
//die( $api_url.' --- '); |
||||
|
|
||||
|
$client = new Client(['http_errors' => false]); |
||||
|
$res = $client->request('GET', $api_url); |
||||
|
return $res; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,21 @@ |
|||||
|
<h2>{{ __('app.apps.config') }} ({{ __('app.optional') }})</h2> |
||||
|
<div class="items"> |
||||
|
<input type="hidden" data-config="type" class="config-item" name="config[type]" value="\App\SupportedApps\Runeaudio" /> |
||||
|
<input type="hidden" data-config="dataonly" class="config-item" name="config[dataonly]" value="1" /> |
||||
|
<div class="input"> |
||||
|
<label>{{ __('app.apps.enable') }}</label> |
||||
|
{!! Form::hidden('config[enabled]', '0') !!} |
||||
|
<label class="switch"> |
||||
|
<?php |
||||
|
$checked = false; |
||||
|
if(isset($item->config->enabled) && (bool)$item->config->enabled === true) $checked = true; |
||||
|
$set_checked = ($checked) ? ' checked="checked"' : ''; |
||||
|
?> |
||||
|
<input type="checkbox" name="config[enabled]" value="1"<?php echo $set_checked;?> /> |
||||
|
<span class="slider round"></span> |
||||
|
</label> |
||||
|
</div> |
||||
|
<div class="input"> |
||||
|
<button style="margin-top: 32px;" class="btn test" id="test_config">Test</button> |
||||
|
</div> |
||||
|
</div> |
After Width: | Height: | Size: 26 KiB |
Loading…
Reference in new issue