Revert "Recently playing mod"

This commit is contained in:
novatorem
2020-08-23 11:18:07 -04:00
parent 91e430cc6a
commit d1391cf38b
4 changed files with 47 additions and 41 deletions

View File

@@ -8,11 +8,13 @@
<td width="50%"> <td width="50%">
Software Developer currently working on cool projects at [Cast](https://blacktrax.cast-soft.com/showcase/). Everything here is available under the [Unlicense](https://choosealicense.com/licenses/unlicense/)! Software Developer currently working on cool projects at [Cast](https://blacktrax.cast-soft.com/showcase/). Everything here is available under the [Unlicense](https://choosealicense.com/licenses/unlicense/)!
<br><p align="center"> <br><p align="center">
[![Website](https://img.shields.io/badge/website-dev-2a8?style=flat-square&logo=safari&logoColor=white)](https://novac.dev) [![Website](https://img.shields.io/badge/website-dev-2a8?style=flat-square&logo=safari&logoColor=white)](https://novac.dev)
[![E-Mail](https://img.shields.io/badge/email-reveal-369?style=flat-square&logo=gmail&logoColor=white)](https://mailhide.io/e/5ck1H)<br> [![E-Mail](https://img.shields.io/badge/email-reveal-369?style=flat-square&logo=gmail&logoColor=white)](https://mailhide.io/e/5ck1H)<br>
[![Spotify](https://img.shields.io/badge/spotify-omni-1DB954?style=flat-square&logo=spotify&logoColor=white)](https://open.spotify.com/user/omnitenebris) [![Spotify](https://img.shields.io/badge/spotify-omni-1DB954?style=flat-square&logo=spotify&logoColor=white)](https://open.spotify.com/user/omnitenebris)
[![Visits](https://badges.pufler.dev/visits/novatorem/novatorem?logo=GitHub&label=github%20visits&color=blue&logoColor=white&style=flat-square)](https://github.com/novatorem) [![Visits](https://badges.pufler.dev/visits/novatorem/novatorem?logo=GitHub&label=github%20visits&color=blue&logoColor=white&style=flat-square)](https://github.com/novatorem)
</p> </p>
</td> </td>
</table> </table>
[//]: <> (The `&nbsp;` is to have Aphelion take up more space)

View File

@@ -1,30 +1,31 @@
import os
import json
import random
import requests
from base64 import b64encode
from dotenv import load_dotenv, find_dotenv
from flask import Flask, Response, jsonify, render_template from flask import Flask, Response, jsonify, render_template
from base64 import b64encode
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv()) load_dotenv(find_dotenv())
import requests
import json
import os
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")
# Scopes: # scope user-read-currently-playing/user-read-recently-played
# 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",
@@ -47,8 +48,11 @@ 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:
@@ -78,24 +82,24 @@ def makeSVG(data):
barCSS = barGen(barCount) barCSS = barGen(barCount)
if data == {}: if data == {}:
#contentBar = "" content_bar = ""
recentlyPlays = recentlyPlayed() recent_plays = recentlyPlayed()
recentLength = len(recentlyPlays["items"]) size_recent_play = len(recent_plays["items"])
itemIndex = random.randint(0, recentLength - 1) idx = random.randint(0, size_recent_play - 1)
item = recentlyPlays["items"][itemIndex]["track"] item = recent_plays["items"][idx]["track"]
else: else:
item = data["item"] item = data["item"]
image = loadImageB64(item["album"]["images"][1]["url"]) img = loadImageB64(item["album"]["images"][1]["url"])
artistName = item["artists"][0]["name"].replace("&", "&amp;") artistName = item["artists"][0]["name"].replace("&", "&amp;")
songName = item["name"].replace("&", "&amp;") songName = item["name"].replace("&", "&amp;")
dataDict = { dataDict = {
"contentBar": contentBar, "content_bar": contentBar,
"barCSS": barCSS, "css_bar": barCSS,
"artistName": artistName, "artist_name": artistName,
"songName": songName, "song_name": songName,
"image": image "img": img,
} }
return render_template("spotify.html.j2", **dataDict) return render_template("spotify.html.j2", **dataDict)
@@ -103,6 +107,7 @@ 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

@@ -61,11 +61,9 @@
} }
.cover { .cover {
position: absolute;
border-radius: 5px; border-radius: 5px;
height: 100px; height: 100px;
width: 100px; width: 100px;
z-index: -1;
} }
#bars { #bars {
@@ -101,14 +99,16 @@
<div class="main"> <div class="main">
<a class="art" href="{}" target="_BLANK"> <a class="art" href="{}" target="_BLANK">
<center> <center>
<img src="https://source.unsplash.com/random/500x500" class="cover"/> <img src="https://source.unsplash.com/random/500x500" class="cover" />
</center> </center>
</a> </a>
<div class="text"> <div class="text">
<div class="song">Song</div> <div class="song">Song</div>
<div class="artist">Arist</div> <div class="artist">Arist</div>
<div id="bars">Bars</div> <div id="bars">
{{content_bar|safe}}
</div>
</div> </div>
</div> </div>

View File

@@ -43,9 +43,9 @@
color: #666; color: #666;
text-align: center; text-align: center;
margin-top: 3px; margin-top: 3px;
white-space: nowrap; white-space:nowrap;
overflow: hidden; overflow:hidden;
text-overflow: ellipsis; text-overflow:ellipsis;
} }
.artist { .artist {
@@ -53,7 +53,6 @@
color: #b3b3b3; color: #b3b3b3;
text-align: center; text-align: center;
margin-bottom: 5px; margin-bottom: 5px;
margin-top: 5px;
} }
.logo { .logo {
@@ -102,15 +101,15 @@
<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, {{image}}" class="cover" /> <img src="data:image/png;base64, {{img}}" class="cover" />
</center> </center>
</a> </a>
<div class="text"> <div class="text">
<div class="song">{{songName}}</div> <div class="song">{{song_name}}</div>
<div class="artist">{{artistName}}</div> <div class="artist">{{artist_name}}</div>
<div id="bars"> <div id="bars">
{{contentBar|safe}} {{content_bar|safe}}
</div> </div>
</div> </div>
</div> </div>

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB