Hidden EQ Bar option

This commit is contained in:
novatorem
2020-08-23 11:23:09 -04:00
parent d1391cf38b
commit d8c0827869
2 changed files with 25 additions and 30 deletions

View File

@@ -1,31 +1,30 @@
from flask import Flask, Response, jsonify, render_template import os
from base64 import b64encode import json
import random
import requests
from base64 import b64encode
from dotenv import load_dotenv, find_dotenv from dotenv import load_dotenv, find_dotenv
from flask import Flask, Response, jsonify, render_template
load_dotenv(find_dotenv()) load_dotenv(find_dotenv())
import requests # Spotify:
import json # user-read-currently-playing
import os # user-read-recently-played
import random
SPOTIFY_CLIENT_ID = os.getenv("SPOTIFY_CLIENT_ID") SPOTIFY_CLIENT_ID = os.getenv("SPOTIFY_CLIENT_ID")
SPOTIFY_SECRET_ID = os.getenv("SPOTIFY_SECRET_ID") SPOTIFY_SECRET_ID = os.getenv("SPOTIFY_SECRET_ID")
SPOTIFY_REFRESH_TOKEN = os.getenv("SPOTIFY_REFRESH_TOKEN") SPOTIFY_REFRESH_TOKEN = os.getenv("SPOTIFY_REFRESH_TOKEN")
# scope user-read-currently-playing/user-read-recently-played
SPOTIFY_URL_REFRESH_TOKEN = "https://accounts.spotify.com/api/token" SPOTIFY_URL_REFRESH_TOKEN = "https://accounts.spotify.com/api/token"
SPOTIFY_URL_NOW_PLAYING = "https://api.spotify.com/v1/me/player/currently-playing" SPOTIFY_URL_NOW_PLAYING = "https://api.spotify.com/v1/me/player/currently-playing"
SPOTIFY_URL_RECENTLY_PLAY = "https://api.spotify.com/v1/me/player/recently-played?limit=10" SPOTIFY_URL_RECENTLY_PLAY = "https://api.spotify.com/v1/me/player/recently-played?limit=10"
app = Flask(__name__) app = Flask(__name__)
def getAuth(): def getAuth():
return b64encode(f"{SPOTIFY_CLIENT_ID}:{SPOTIFY_SECRET_ID}".encode()).decode("ascii") return b64encode(f"{SPOTIFY_CLIENT_ID}:{SPOTIFY_SECRET_ID}".encode()).decode("ascii")
def refreshToken(): def refreshToken():
data = { data = {
"grant_type": "refresh_token", "grant_type": "refresh_token",
@@ -48,11 +47,8 @@ def recentlyPlayed():
return response.json() return response.json()
def nowPlaying(): def nowPlaying():
token = refreshToken() token = refreshToken()
headers = {"Authorization": f"Bearer {token}"} headers = {"Authorization": f"Bearer {token}"}
response = requests.get(SPOTIFY_URL_NOW_PLAYING, headers=headers) response = requests.get(SPOTIFY_URL_NOW_PLAYING, headers=headers)
if response.status_code == 204: if response.status_code == 204:
@@ -82,11 +78,11 @@ def makeSVG(data):
barCSS = barGen(barCount) barCSS = barGen(barCount)
if data == {}: if data == {}:
content_bar = "" #contentBar = "" #Shows/Hides the EQ bar if no song is currently playing
recent_plays = recentlyPlayed() recentPlays = recentlyPlayed()
size_recent_play = len(recent_plays["items"]) recentPlaysLength = len(recentPlays["items"])
idx = random.randint(0, size_recent_play - 1) itemIndex = random.randint(0, recentPlaysLength - 1)
item = recent_plays["items"][idx]["track"] item = recentPlays["items"][itemIndex]["track"]
else: else:
item = data["item"] item = data["item"]
@@ -95,11 +91,11 @@ def makeSVG(data):
songName = item["name"].replace("&", "&") songName = item["name"].replace("&", "&")
dataDict = { dataDict = {
"content_bar": contentBar, "contentBar": contentBar,
"css_bar": barCSS, "barCSS": barCSS,
"artist_name": artistName, "artistName": artistName,
"song_name": songName, "songName": songName,
"img": img, "image": image,
} }
return render_template("spotify.html.j2", **dataDict) return render_template("spotify.html.j2", **dataDict)
@@ -107,7 +103,6 @@ def makeSVG(data):
@app.route("/", defaults={"path": ""}) @app.route("/", defaults={"path": ""})
@app.route("/<path:path>") @app.route("/<path:path>")
def catch_all(path): def catch_all(path):
data = nowPlaying() data = nowPlaying()
svg = makeSVG(data) svg = makeSVG(data)

View File

@@ -95,21 +95,21 @@
} }
} }
{{css_bar|safe}} {{barCSS|safe}}
</style> </style>
<div class="main"> <div class="main">
<a class="art" href="{}" target="_BLANK"> <a class="art" href="{}" target="_BLANK">
<center> <center>
<img src="data:image/png;base64, {{img}}" class="cover" /> <img src="data:image/png;base64, {{image}}" class="cover" />
</center> </center>
</a> </a>
<div class="text"> <div class="text">
<div class="song">{{song_name}}</div> <div class="song">{{songName}}</div>
<div class="artist">{{artist_name}}</div> <div class="artist">{{artistName}}</div>
<div id="bars"> <div id="bars">
{{content_bar|safe}} {{contentBar|safe}}
</div> </div>
</div> </div>
</div> </div>

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB