siwwy :3 #3
					 3 changed files with 20 additions and 87 deletions
				
			
		Vastly improve lastfm thing
				commit
				
					
					
						30f68f5c7d
					
				
			
		
							
								
								
									
										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