diff --git a/src/routes/dynamic_routes.py b/src/routes/dynamic_routes.py
index da4dfda..5fbc3eb 100644
--- a/src/routes/dynamic_routes.py
+++ b/src/routes/dynamic_routes.py
@@ -1,5 +1,5 @@
# Imports
-from flask import Blueprint, render_template, request, abort
+from flask import Blueprint, render_template, abort
from os import getenv as env
import logging, os, re
@@ -32,7 +32,6 @@ def catch_all(filename):
except Exception as e:
os_path = os.path.join(bp.template_folder, 'pages', filename)[3:]
- print(os_path)
if os.path.isdir(os_path):
if not filename.endswith('/'): filename += '/'
return render_template('bases/directory.html', directory=filename, pages=ListFiles(os_path))
diff --git a/src/routes/lastfm.py b/src/routes/lastfm.py
new file mode 100644
index 0000000..7c7710c
--- /dev/null
+++ b/src/routes/lastfm.py
@@ -0,0 +1,26 @@
+from flask import Blueprint, jsonify
+from os import getenv as env
+import logging, requests
+
+# Create blueprint
+bp = Blueprint(
+ 'lastfm',
+ __name__,
+ template_folder=env('TEMPLATE_FOLDER', default='../templates'),
+ static_folder=env('STATIC_FOLDER', default='../static')
+)
+
+# Create logger
+log = logging.getLogger(__name__)
+
+# lastfm info
+@bp.route('/info')
+def lastfm_info():
+ url = f"http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user={env('LASTFM_USER')}&api_key={env('LASTFM_API_KEY')}&format=json&limit=1"
+ response = requests.get(url).json()
+ data = {
+ 'artist': response['recenttracks']['track'][0]['artist']['#text'],
+ 'track': response['recenttracks']['track'][0]['name'],
+ 'image': response['recenttracks']['track'][0]['image'][3]['#text']
+ }
+ return jsonify(data)
\ No newline at end of file
diff --git a/src/wsgi.py b/src/wsgi.py
index c5c45b4..1e90942 100644
--- a/src/wsgi.py
+++ b/src/wsgi.py
@@ -8,6 +8,7 @@ import logging
import src.routes.error_handlers
import src.routes.dynamic_routes
+import src.routes.lastfm
# Load env
load_dotenv()
@@ -42,6 +43,7 @@ Session(app)
# Load routes
app.register_blueprint(src.routes.error_handlers.bp, url_prefix='/error')
+app.register_blueprint(src.routes.lastfm.bp, url_prefix='/lastfm')
app.register_blueprint(src.routes.dynamic_routes.bp, url_prefix='/')
# Generic routes
@@ -57,7 +59,6 @@ def favicon():
def robots():
return send_file('../static/content/other/robots.txt')
-
# Route for sitemap.xml
@app.route('/sitemap.xml')
def sitemap():
diff --git a/static/js/base.js b/static/js/base.js
index b6774d4..35f4e9c 100644
--- a/static/js/base.js
+++ b/static/js/base.js
@@ -90,29 +90,21 @@ document.addEventListener('keydown', function(event) {
}
});
-// Spotify API
+// Spotify API (now lastfm)
function getSpotify() {
- fetch('https://api.alfieking.dev/spotify/nowplaying/xz02oolstlvwxqu1pfcua9exz').then(response => {
+ fetch('/lastfm/info').then(response => {
return response.json();
}).then(data => {
- if (data.item == null) {
- document.getElementById('spotify').style.backgroundImage = "none";
- document.getElementById('spotify-title').innerHTML = "Spotify is not playing anything";
- document.getElementById('spotify-artist').innerHTML = ":(";
- document.getElementById('spotify-link').href = "https://open.spotify.com/";
- return;
- }
- document.getElementById('spotify').style.backgroundImage = "url(" + data.item.album.images[0].url + ")";
- document.getElementById('spotify-title').innerHTML = data.item.name;
- document.getElementById('spotify-artist').innerHTML = data.item.artists[0].name;
- document.getElementById('spotify-link').href = data.item.external_urls.spotify;
+ document.getElementById('spotify').style.backgroundImage = "url(" + data.image + ")";
+ document.getElementById('spotify-title').innerHTML = data.track;
+ document.getElementById('spotify-artist').innerHTML = data.artist;
});
}
if (document.getElementById('spotify')) {
getSpotify();
- setInterval(getSpotify, 15000);
+ setInterval(getSpotify, 60000);
}
// load buttons
diff --git a/templates/index.html b/templates/index.html
index 3bb823c..b11d0a3 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -37,7 +37,7 @@