radarrplexorganizrnginxsonarrdashboardembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdall
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							95 lines
						
					
					
						
							2.6 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							95 lines
						
					
					
						
							2.6 KiB
						
					
					
				| <?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 = ''; | |
|         $active = 'active'; | |
|         $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 json_encode(['status' => $active, 'html' => $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, 'timeout' => 15, 'connect_timeout' => 15]); | |
|         $res = $client->request('GET', $api_url); | |
|         return $res; | |
| 
 | |
|     } | |
| 
 | |
| 
 | |
| }
 | |
| 
 |