aboutsummaryrefslogtreecommitdiff
path: root/resources/views/components/lastfm.blade.php
blob: 78c5f81f4da1a102b41e0c051949286a81555e8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
$cfg = app('config')->get('services')['lastfm'];

$curl_current = curl_init();

curl_setopt_array($curl_current, [
  CURLOPT_URL => "https://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=".$cfg['user']."&nowplaying=true&format=json&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",
]);

$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;
?>

<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>
        <h2>Top {{ $tracks_to_show }} Tracks (Last 7 days)</h2>
        <ol>
@foreach ($tracks as $track)
    @if ($count >= $tracks_to_show)
    </ol>
        @break
    @endif
        <li>
                <a href="{{ $track['url'] }}">{{ $track['name'] }} • {{ $track['artist']['name'] }}</a>
                <small>({{$track['playcount']}} plays)</small>
            </li>
<?php $count++ ?>
@endforeach