aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrankie B <floppydisk05@aol.com>2022-11-15 22:21:02 +0000
committerFrankie B <floppydisk05@aol.com>2022-11-15 22:21:02 +0000
commit45defd706eca9188a92a6167ff828f3f61887b77 (patch)
treef98002e3c662dc417b413b0eec69f3bc9b74c27d
parent41efcbfbe5be1aafea665332f55cce74b27d6a3d (diff)
Add Last.fm and config
-rw-r--r--inc/config.example.inc.php5
-rw-r--r--inc/lastfm.inc.php65
2 files changed, 70 insertions, 0 deletions
diff --git a/inc/config.example.inc.php b/inc/config.example.inc.php
new file mode 100644
index 0000000..433a60d
--- /dev/null
+++ b/inc/config.example.inc.php
@@ -0,0 +1,5 @@
+<?php
+// Create a constant array with config variables
+const CONF = array(
+ "lastfm_key" => "key"
+);
diff --git a/inc/lastfm.inc.php b/inc/lastfm.inc.php
new file mode 100644
index 0000000..d0753b7
--- /dev/null
+++ b/inc/lastfm.inc.php
@@ -0,0 +1,65 @@
+<h1>Last.fm</h1>
+<?php
+require('inc/config.inc.php');
+
+$curl_current = curl_init();
+
+curl_setopt_array($curl_current, [
+ CURLOPT_URL => "https://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=".CONF['lastfm_user']."&nowplaying=true&format=json&api_key=".CONF['lastfm_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];
+
+echo ' <b>Now Playing:</b> <a href="'.$nowplaying['url'].'">'.$nowplaying['name'].' • '.$nowplaying['artist']['#text'].'</a>'.PHP_EOL;
+
+$tracks_to_show = 10;
+
+$curl = curl_init();
+
+curl_setopt_array($curl, [
+ CURLOPT_URL => "https://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=".CONF['lastfm_user']."&format=json&period=7day&api_key=".CONF['lastfm_key'],
+ CURLOPT_RETURNTRANSFER => true,
+ CURLOPT_ENCODING => "",
+ CURLOPT_MAXREDIRS => 10,
+ CURLOPT_TIMEOUT => 30,
+ CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
+ CURLOPT_CUSTOMREQUEST => "GET",
+]);
+
+$toptracks_response = curl_exec($curl);
+$err = curl_error($curl);
+
+curl_close($curl);
+
+if ($err) {
+ die("cURL Error #:" . $err);
+}
+echo ' <h2>Top '.$tracks_to_show.' Tracks (Last 7 days) <small><a href="https://www.last.fm/user/floppydisk_">Profile</a></small></h2>'.PHP_EOL;
+echo ' <ol>'.PHP_EOL;
+$toptracks_response = json_decode($toptracks_response, true);
+$tracks = $toptracks_response['toptracks']['track'];
+$count = 0;
+foreach ($tracks as $track) {
+ echo ' <li>'.PHP_EOL;
+ echo ' <a href="'.$track['url'].'">'.$track['name'].' • '.$track['artist']['name'].'</a>'.PHP_EOL;
+ echo ' <small>('.$track['playcount'].' plays)</small>'.PHP_EOL;
+ echo ' </li>'.PHP_EOL;
+ if ($count >= $tracks_to_show - 1) break;
+ $count++;
+}
+echo ' </ol>'; \ No newline at end of file