44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
#!/usr/bin/env python
|
|
|
|
from flask import Flask, render_template, make_response
|
|
import requests
|
|
|
|
apiRoot = "https://api.listenbrainz.org"
|
|
user = "everypizza"
|
|
|
|
app = Flask(__name__)
|
|
|
|
countFile = "visitorCount.txt"
|
|
|
|
def get_visitor_count():
|
|
try:
|
|
with open(countFile, "r") as f:
|
|
return int(f.read())
|
|
except FileNotFoundError:
|
|
return 0
|
|
|
|
def increment_visitor_count():
|
|
count = get_visitor_count()
|
|
count += 1
|
|
with open(countFile, "w") as f:
|
|
f.write(str(count))
|
|
return count
|
|
|
|
@app.route('/')
|
|
def index():
|
|
increment_visitor_count()
|
|
data = requests.get(apiRoot + "/1/user/" + user + "/playing-now")
|
|
track = data.json()['payload']['listens'][0]['track_metadata']['track_name']
|
|
artist = data.json()['payload']['listens'][0]['track_metadata']['artist_name']
|
|
album = data.json()['payload']['listens'][0]['track_metadata']['release_name']
|
|
return render_template('index.j2', visitor=get_visitor_count(), user=user, title=track, artist=artist, album=album)
|
|
|
|
@app.route('/assets/index.css')
|
|
def indexStyle():
|
|
css = render_template('assets/index.css')
|
|
response = make_response(css)
|
|
response.mimetype = "text/css"
|
|
return response
|
|
|
|
if __name__ == '__main__':
|
|
app.run(host="0.0.0.0", port=8080)
|