Vastly improve lastfm thing
This commit is contained in:
		
					parent
					
						
							
								5142133f16
							
						
					
				
			
			
				commit
				
					
						30f68f5c7d
					
				
			
		
					 3 changed files with 20 additions and 87 deletions
				
			
		
							
								
								
									
										37
									
								
								.env.example
									
										
									
									
									
								
							
							
						
						
									
										37
									
								
								.env.example
									
										
									
									
									
								
							|  | @ -1,5 +1,7 @@ | ||||||
| APP_NAME=Laravel | APP_NAME=Laravel | ||||||
| APP_ENV=local | APP_ENV=local | ||||||
|  | APP_NAME=Laravel | ||||||
|  | APP_ENV=local | ||||||
| APP_KEY= | APP_KEY= | ||||||
| APP_DEBUG=true | APP_DEBUG=true | ||||||
| APP_URL=http://localhost | APP_URL=http://localhost | ||||||
|  | @ -24,35 +26,6 @@ SESSION_LIFETIME=120 | ||||||
| 
 | 
 | ||||||
| MEMCACHED_HOST=127.0.0.1 | MEMCACHED_HOST=127.0.0.1 | ||||||
| 
 | 
 | ||||||
| REDIS_HOST=127.0.0.1 | LASTFM_KEY= | ||||||
| REDIS_PASSWORD=null | LASTFM_USER= | ||||||
| REDIS_PORT=6379 | LASTFM_TOP_TRACKS=10 | ||||||
| 
 |  | ||||||
| MAIL_MAILER=smtp |  | ||||||
| MAIL_HOST=mailpit |  | ||||||
| MAIL_PORT=1025 |  | ||||||
| MAIL_USERNAME=null |  | ||||||
| MAIL_PASSWORD=null |  | ||||||
| MAIL_ENCRYPTION=null |  | ||||||
| MAIL_FROM_ADDRESS="hello@example.com" |  | ||||||
| MAIL_FROM_NAME="${APP_NAME}" |  | ||||||
| 
 |  | ||||||
| AWS_ACCESS_KEY_ID= |  | ||||||
| AWS_SECRET_ACCESS_KEY= |  | ||||||
| AWS_DEFAULT_REGION=us-east-1 |  | ||||||
| AWS_BUCKET= |  | ||||||
| AWS_USE_PATH_STYLE_ENDPOINT=false |  | ||||||
| 
 |  | ||||||
| PUSHER_APP_ID= |  | ||||||
| PUSHER_APP_KEY= |  | ||||||
| PUSHER_APP_SECRET= |  | ||||||
| PUSHER_HOST= |  | ||||||
| PUSHER_PORT=443 |  | ||||||
| PUSHER_SCHEME=https |  | ||||||
| PUSHER_APP_CLUSTER=mt1 |  | ||||||
| 
 |  | ||||||
| VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}" |  | ||||||
| VITE_PUSHER_HOST="${PUSHER_HOST}" |  | ||||||
| VITE_PUSHER_PORT="${PUSHER_PORT}" |  | ||||||
| VITE_PUSHER_SCHEME="${PUSHER_SCHEME}" |  | ||||||
| VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" |  | ||||||
|  |  | ||||||
|  | @ -16,6 +16,7 @@ | ||||||
| 
 | 
 | ||||||
|     'lastfm' => [ |     'lastfm' => [ | ||||||
|         'key' => env('LASTFM_KEY'), |         'key' => env('LASTFM_KEY'), | ||||||
|         'user' => env('LASTFM_USER') |         'user' => env('LASTFM_USER'), | ||||||
|  |         'toptracks' => env('LASTFM_TOP_TRACKS') | ||||||
|     ] |     ] | ||||||
| ]; | ]; | ||||||
|  |  | ||||||
|  | @ -1,67 +1,26 @@ | ||||||
| <?php | @php | ||||||
|  | 
 | ||||||
| $cfg = app('config')->get('services')['lastfm']; | $cfg = app('config')->get('services')['lastfm']; | ||||||
| 
 | 
 | ||||||
| $curl_current = curl_init(); | $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]; | ||||||
| curl_setopt_array($curl_current, [ | $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'])); | ||||||
|   CURLOPT_URL => "https://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=".$cfg['user']."&nowplaying=true&format=json&api_key=".$cfg['key'], | $tracks = $toptracks->toptracks->track; | ||||||
|   CURLOPT_RETURNTRANSFER => true, |  | ||||||
|   CURLOPT_ENCODING => "", |  | ||||||
|   CURLOPT_MAXREDIRS => 10, |  | ||||||
|   CURLOPT_TIMEOUT => 30, |  | ||||||
|   CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, |  | ||||||
|   CURLOPT_CUSTOMREQUEST => "GET", |  | ||||||
| ]); |  | ||||||
| 
 |  | ||||||
| $current_response = curl_exec($curl_current); |  | ||||||
| $err = curl_error($curl_current); |  | ||||||
| 
 |  | ||||||
| curl_close($curl_current); |  | ||||||
| 
 |  | ||||||
| if ($err) { |  | ||||||
|   die("cURL Error #:" . $err); |  | ||||||
| } |  | ||||||
| $current_response = json_decode($current_response, true); |  | ||||||
| $nowplaying = $current_response['recenttracks']['track'][0]; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| $tracks_to_show = 10; |  | ||||||
| 
 |  | ||||||
| $curl = curl_init(); |  | ||||||
| curl_setopt_array($curl, [ |  | ||||||
|   CURLOPT_URL => "https://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=".$cfg['user']."&format=json&period=7day&api_key=".$cfg['key'], |  | ||||||
|   CURLOPT_RETURNTRANSFER => true, |  | ||||||
|   CURLOPT_ENCODING => "", |  | ||||||
|   CURLOPT_MAXREDIRS => 10, |  | ||||||
|   CURLOPT_TIMEOUT => 30, |  | ||||||
|   CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, |  | ||||||
|   CURLOPT_CUSTOMREQUEST => "GET", |  | ||||||
| ]); |  | ||||||
| 
 |  | ||||||
| $toptracks = curl_exec($curl); |  | ||||||
| $err = curl_error($curl); |  | ||||||
| curl_close($curl); |  | ||||||
| if ($err) { |  | ||||||
|   die("cURL Error #:" . $err); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| $toptracks = json_decode($toptracks, true); |  | ||||||
| $tracks = $toptracks['toptracks']['track']; |  | ||||||
| $count = 0; | $count = 0; | ||||||
| ?>
 | @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="{{ $nowplaying->url }}">{{ $nowplaying->name }} • {{ $nowplaying->artist->{"#text"} }}</a> | ||||||
|         <h2>Top {{ $tracks_to_show }} Tracks (Last 7 days)</h2> |         <h2>Top {{ $cfg['toptracks'] }} Tracks (Last 7 days)</h2> | ||||||
|         <ol> |         <ol> | ||||||
| @foreach ($tracks as $track) | @foreach ($tracks as $track) | ||||||
|     @if ($count >= $tracks_to_show) |     @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->name }}</a> | ||||||
|                 <small>({{$track['playcount']}} plays)</small> |                 <small>({{ $track->playcount }} plays)</small> | ||||||
|             </li> |             </li> | ||||||
| <?php $count++ ?>
 | @php $count++ @endphp | ||||||
| @endforeach | @endforeach | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Frankie B
				Frankie B