feat: update lastfm & weather to use internal API

This commit is contained in:
Frankie B 2023-07-02 02:01:54 +01:00
commit 45fd1d23c4
No known key found for this signature in database
5 changed files with 84 additions and 23 deletions

View file

@ -1,26 +1,25 @@
@php
$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']));
$nowplaying = $current_response->recenttracks->track[0];
$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;
$current_track = json_decode(file_get_contents($api_root.'/lastfm/current'));
$toptracks = json_decode(file_get_contents($api_root.'/lastfm/top'));
$count = 0;
@endphp
<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>
<ol>
@foreach ($tracks as $track)
@foreach ($toptracks as $track)
@if ($count >= $cfg['toptracks'])
</ol>
@break
@endif
<li>
<a href="{{ $track->url }}">{{ $track->name }} {{ $track->artist->name }}</a>
<small>({{ $track->playcount }} plays)</small>
<a href="{{ $track->url }}">{{ $track->name }} {{ $track->artist }}</a>
<small>({{ $track->plays }} plays)</small>
</li>
@php $count++ @endphp
@endforeach

View file

@ -1,20 +1,22 @@
@php
function degreesToCompassDirection($degrees) {
$cardinalDirections = [
'N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE',
'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW', 'N'
];
return $cardinalDirections[round($degrees*16/360)];
}
$api_root = app('config')->get('app')['api_root'];
$data = json_decode(file_get_contents('http://weather.diskfloppy.me/data/weatherData.json'));
$updated = gmdate('H:i Y-m-d', intval(rtrim(file_get_contents('http://weather.diskfloppy.me/data/got.txt'))));
$data = $data->data->conditions[0];
function degreesToCompassDirection($degrees) {
$cardinalDirections = [
'N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE',
'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW', 'N'
];
return $cardinalDirections[round($degrees*16/360)];
}
$data = json_decode(file_get_contents($api_root.'/weather'));
$updated = gmdate('H:i Y-m-d', $data->updated);
$data = $data->data;
@endphp
<h1>Local Weather <small>(Last Update: {{ $updated }})</small></h1>
<b>Wind Speed:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{ $data->wind_speed_last }} mph<br>
<b>Wind Direction:</b>&nbsp;{{ $data->wind_dir_last }}°, {{ degreesToCompassDirection($data->wind_dir_last) }}<br>
<b>Temperature:</b>&nbsp;&nbsp;&nbsp;&nbsp;{{ round(($data->temp-32)*(5/9), 1) }}°C<br>
<b>Rain Rate:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{ round($data->rain_rate_last*0.2, 2) }} mm/hr<br>
<b>Humidity:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{ round($data->hum) }}%<br>
<b>Wind Speed:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{ $data->wind->speed }} mph<br>
<b>Wind Direction:</b>&nbsp;{{ $data->wind->direction->degrees }}°, {{ $data->wind->direction->cardinal }}<br>
<b>Temperature:</b>&nbsp;&nbsp;&nbsp;&nbsp;{{ $data->temperature }}°C<br>
<b>Rain Rate:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{ $data->rain_rate }} mm/hr<br>
<b>Humidity:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{ $data->humidity }}%<br>