feat: update lastfm & weather to use internal API
This commit is contained in:
		
					parent
					
						
							
								c10d758474
							
						
					
				
			
			
				commit
				
					
						45fd1d23c4
					
				
			
		
					 5 changed files with 84 additions and 23 deletions
				
			
		| 
						 | 
					@ -29,3 +29,4 @@ MEMCACHED_HOST=127.0.0.1
 | 
				
			||||||
LASTFM_KEY=
 | 
					LASTFM_KEY=
 | 
				
			||||||
LASTFM_USER=
 | 
					LASTFM_USER=
 | 
				
			||||||
LASTFM_TOP_TRACKS=10
 | 
					LASTFM_TOP_TRACKS=10
 | 
				
			||||||
 | 
					API_ROOT=http://127.0.0.1:3000
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -56,6 +56,7 @@
 | 
				
			||||||
    */
 | 
					    */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    'url' => env('APP_URL', 'http://localhost'),
 | 
					    'url' => env('APP_URL', 'http://localhost'),
 | 
				
			||||||
 | 
					    'api_root' => env('API_ROOT', 'http://127.0.0.1:3000'),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    'asset_url' => env('ASSET_URL'),
 | 
					    'asset_url' => env('ASSET_URL'),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,26 +1,25 @@
 | 
				
			||||||
@php
 | 
					@php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$cfg = app('config')->get('services')['lastfm'];
 | 
					$cfg = app('config')->get('services')['lastfm'];
 | 
				
			||||||
 | 
					$api_root = app('config')->get('app')['api_root'];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$current_response = json_decode(file_get_contents("https://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=".$cfg['user']."&nowplaying=true&format=json&api_key=".$cfg['key']));
 | 
					$current_track = json_decode(file_get_contents($api_root.'/lastfm/current'));
 | 
				
			||||||
$nowplaying = $current_response->recenttracks->track[0];
 | 
					$toptracks = json_decode(file_get_contents($api_root.'/lastfm/top'));
 | 
				
			||||||
$toptracks = json_decode(file_get_contents("https://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=".$cfg['user']."&format=json&period=7day&api_key=".$cfg['key']));
 | 
					 | 
				
			||||||
$tracks = $toptracks->toptracks->track;
 | 
					 | 
				
			||||||
$count = 0;
 | 
					$count = 0;
 | 
				
			||||||
@endphp
 | 
					@endphp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h1>Last.fm <small>(<a href="https://www.last.fm/user/{{ $cfg['user']}}">Profile</a>)</small></h1>
 | 
					<h1>Last.fm <small>(<a href="https://www.last.fm/user/{{ $cfg['user']}}">Profile</a>)</small></h1>
 | 
				
			||||||
        <b>Last/Current Track:</b> <a href="{{ $nowplaying->url }}">{{ $nowplaying->name }} • {{ $nowplaying->artist->{"#text"} }}</a>
 | 
					        <b>Last/Current Track:</b> <a href="{{ $current_track->url }}">{{ $current_track->name }} • {{ $current_track->artist }}</a>
 | 
				
			||||||
        <h2>Top {{ $cfg['toptracks'] }} Tracks (Last 7 days)</h2>
 | 
					        <h2>Top {{ $cfg['toptracks'] }} Tracks (Last 7 days)</h2>
 | 
				
			||||||
        <ol>
 | 
					        <ol>
 | 
				
			||||||
@foreach ($tracks as $track)
 | 
					@foreach ($toptracks as $track)
 | 
				
			||||||
    @if ($count >= $cfg['toptracks'])
 | 
					    @if ($count >= $cfg['toptracks'])
 | 
				
			||||||
    </ol>
 | 
					    </ol>
 | 
				
			||||||
        @break
 | 
					        @break
 | 
				
			||||||
    @endif
 | 
					    @endif
 | 
				
			||||||
        <li>
 | 
					        <li>
 | 
				
			||||||
                <a href="{{ $track->url }}">{{ $track->name }} • {{ $track->artist->name }}</a>
 | 
					                <a href="{{ $track->url }}">{{ $track->name }} • {{ $track->artist }}</a>
 | 
				
			||||||
                <small>({{ $track->playcount }} plays)</small>
 | 
					                <small>({{ $track->plays }} plays)</small>
 | 
				
			||||||
            </li>
 | 
					            </li>
 | 
				
			||||||
@php $count++ @endphp
 | 
					@php $count++ @endphp
 | 
				
			||||||
@endforeach
 | 
					@endforeach
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,6 @@
 | 
				
			||||||
@php
 | 
					@php
 | 
				
			||||||
 | 
					$api_root = app('config')->get('app')['api_root'];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function degreesToCompassDirection($degrees) {
 | 
					function degreesToCompassDirection($degrees) {
 | 
				
			||||||
    $cardinalDirections = [
 | 
					    $cardinalDirections = [
 | 
				
			||||||
        'N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE',
 | 
					        'N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE',
 | 
				
			||||||
| 
						 | 
					@ -7,14 +9,14 @@ function degreesToCompassDirection($degrees) {
 | 
				
			||||||
    return $cardinalDirections[round($degrees*16/360)];
 | 
					    return $cardinalDirections[round($degrees*16/360)];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $data = json_decode(file_get_contents('http://weather.diskfloppy.me/data/weatherData.json'));
 | 
					$data = json_decode(file_get_contents($api_root.'/weather'));
 | 
				
			||||||
    $updated = gmdate('H:i Y-m-d', intval(rtrim(file_get_contents('http://weather.diskfloppy.me/data/got.txt'))));
 | 
					$updated = gmdate('H:i Y-m-d', $data->updated);
 | 
				
			||||||
    $data = $data->data->conditions[0];
 | 
					$data = $data->data;
 | 
				
			||||||
@endphp
 | 
					@endphp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h1>Local Weather <small>(Last Update: {{ $updated }})</small></h1>
 | 
					<h1>Local Weather <small>(Last Update: {{ $updated }})</small></h1>
 | 
				
			||||||
        <b>Wind Speed:</b>     {{ $data->wind_speed_last }} mph<br>
 | 
					        <b>Wind Speed:</b>     {{ $data->wind->speed }} mph<br>
 | 
				
			||||||
        <b>Wind Direction:</b> {{ $data->wind_dir_last }}°, {{ degreesToCompassDirection($data->wind_dir_last) }}<br>
 | 
					        <b>Wind Direction:</b> {{ $data->wind->direction->degrees }}°, {{ $data->wind->direction->cardinal }}<br>
 | 
				
			||||||
        <b>Temperature:</b>    {{ round(($data->temp-32)*(5/9), 1) }}°C<br>
 | 
					        <b>Temperature:</b>    {{ $data->temperature }}°C<br>
 | 
				
			||||||
        <b>Rain Rate:</b>      {{ round($data->rain_rate_last*0.2, 2) }} mm/hr<br>
 | 
					        <b>Rain Rate:</b>      {{ $data->rain_rate }} mm/hr<br>
 | 
				
			||||||
        <b>Humidity:</b>       {{ round($data->hum) }}%<br>
 | 
					        <b>Humidity:</b>       {{ $data->humidity }}%<br>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										58
									
								
								resources/views/pages/misc/badapple.blade.php
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								resources/views/pages/misc/badapple.blade.php
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,58 @@
 | 
				
			||||||
 | 
					@extends('layouts.default')
 | 
				
			||||||
 | 
					@section('title', 'misc / bad apple')
 | 
				
			||||||
 | 
					@section('description', '')
 | 
				
			||||||
 | 
					@section('content')
 | 
				
			||||||
 | 
					<h1>Bad Apple Ports</h1>
 | 
				
			||||||
 | 
					        <h2>Apple II</h2>
 | 
				
			||||||
 | 
					        - <a href="https://www.youtube.com/watch?v=X8osEgYzPNo">ekslong</a><br/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <h2>Vectrex</h2>
 | 
				
			||||||
 | 
					        <h2>Atari 2600</h2>
 | 
				
			||||||
 | 
					        <h2>Windows 3.1</h2>
 | 
				
			||||||
 | 
					        <h2>Gameboy</h2>
 | 
				
			||||||
 | 
					        <h2>Windows XP</h2>
 | 
				
			||||||
 | 
					        <h2>Ubuntu</h2>
 | 
				
			||||||
 | 
					        <h2>IRL</h2>
 | 
				
			||||||
 | 
					        <h2>TI-84+ SE</h2>
 | 
				
			||||||
 | 
					        <h2>Sega Megadrive</h2>
 | 
				
			||||||
 | 
					        <h2>DOS</h2>
 | 
				
			||||||
 | 
					        <h2>IBM PC/XT</h2>
 | 
				
			||||||
 | 
					        <h2>Gameboy Color</h2>
 | 
				
			||||||
 | 
					        <h2>CASIO fx-9750GII</h2>
 | 
				
			||||||
 | 
					        <h2>Ti-nspire</h2>
 | 
				
			||||||
 | 
					        <h2>Pokemon Mini</h2>
 | 
				
			||||||
 | 
					        <h2>IBM PC/AT</h2>
 | 
				
			||||||
 | 
					        <h2>NEC PC-6601</h2>
 | 
				
			||||||
 | 
					        <h2>Toshiba T3200</h2>
 | 
				
			||||||
 | 
					        <h2>BBC Micro (Teletext)</h2>
 | 
				
			||||||
 | 
					        <h2>Nintendo 64</h2>
 | 
				
			||||||
 | 
					        <h2>Commodore 64</h2>
 | 
				
			||||||
 | 
					        <h2>NES</h2>
 | 
				
			||||||
 | 
					        <h2>Impulse Tracker</h2>
 | 
				
			||||||
 | 
					        <h2>Neo Geo</h2>
 | 
				
			||||||
 | 
					        <h2>iPod mini</h2>
 | 
				
			||||||
 | 
					        <h2>Factorio</h2>
 | 
				
			||||||
 | 
					        <h2>KY-01L</h2>
 | 
				
			||||||
 | 
					        <h2>Launchpad</h2>
 | 
				
			||||||
 | 
					        <h2>ILDA Laser Projector</h2>
 | 
				
			||||||
 | 
					        <h2>896-core Processor</h2>
 | 
				
			||||||
 | 
					        <h2>Threadripper 3990X</h2>
 | 
				
			||||||
 | 
					        <h2>Desmos</h2>
 | 
				
			||||||
 | 
					        <h2>MS Word 1.x</h2>
 | 
				
			||||||
 | 
					        <h2>Apple Watch</h2>
 | 
				
			||||||
 | 
					        <h2>Intellivision</h2>
 | 
				
			||||||
 | 
					        <h2>Minecraft Sheep</h2>
 | 
				
			||||||
 | 
					        <h2>VSCode Auto-formatter</h2>
 | 
				
			||||||
 | 
					        <h2>ZX Spectrum</h2>
 | 
				
			||||||
 | 
					        <h2>Oscilloscopes</h2>
 | 
				
			||||||
 | 
					        <h2>HTML Checkboxes</h2>
 | 
				
			||||||
 | 
					        <h2>Phosphor Screen</h2>
 | 
				
			||||||
 | 
					        <h2>CS:GO</h2>
 | 
				
			||||||
 | 
					        <h2>Hand-drawn RISC-V CPU</h2>
 | 
				
			||||||
 | 
					        <h2>3D Printer</h2>
 | 
				
			||||||
 | 
					        <h2>E-paper display</h2>
 | 
				
			||||||
 | 
					        <h2>32K EEPROM</h2>
 | 
				
			||||||
 | 
					        <h2>UVB-76</h2>
 | 
				
			||||||
 | 
					        <h2>OS/400 (IBM i)</h2>
 | 
				
			||||||
 | 
					        <h2>plan9 (rio)</h2>
 | 
				
			||||||
 | 
					@stop
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue