Themes and Templates setup guide

This commit is contained in:
Ethan Shoham
2021-07-11 08:49:18 +03:00
committed by Andrew Novac
parent 0c1db0a9fe
commit c63a193ed8
3 changed files with 26 additions and 10 deletions

View File

@@ -65,6 +65,16 @@ Have a string saying either "Vibing to:" or "Last seen playing:".
* Uncomment [**.main**'s `margin-top`](https://github.com/novatorem/novatorem/blob/5194a689253ee4c89a9d365260d6050923d93dd5/api/templates/spotify.html.j2#L10)
* Uncomment [currentStatus](https://github.com/novatorem/novatorem/blob/5194a689253ee4c89a9d365260d6050923d93dd5/api/templates/spotify.html.j2#L93)
### Theme Templates
If you want to change the widget theme, you can do so by the changing the `current-theme` property in the `templates.json` file.
Themes:
* `light`
* `dark`
If you wish to customize farther, you can add your own customized `spotify.html.j2` file to the templates folder, and add the theme and file name to the `templates` dictionary in the `templates.json` file.
## Requests
Customization requests can be submitted as an issue, like https://github.com/novatorem/novatorem/issues/2

View File

@@ -17,10 +17,7 @@ SPOTIFY_CLIENT_ID = os.getenv("SPOTIFY_CLIENT_ID")
SPOTIFY_SECRET_ID = os.getenv("SPOTIFY_SECRET_ID")
SPOTIFY_REFRESH_TOKEN = os.getenv("SPOTIFY_REFRESH_TOKEN")
#########################
# change theme light/dark
TEMPLATE_THEME = "dark"
FALLBACK_THEME = "spotify.html.j2"
REFRESH_TOKEN_URL = "https://accounts.spotify.com/api/token"
NOW_PLAYING_URL = "https://api.spotify.com/v1/me/player/currently-playing"
@@ -87,11 +84,13 @@ def barGen(barCount):
left += 4
return barCSS
def getTemplate(theme):
return{
'dark':'spotify-dark.html.j2',
'light':'spotify.html.js'
}[theme.lower()]
def getTemplate():
try:
file = open("templates.json",)
templates = json.load(file)
return templates["templates"][templates["current-theme"]]
except:
return FALLBACK_THEME
def loadImageB64(url):
@@ -132,7 +131,7 @@ def makeSVG(data):
"status": currentStatus,
}
return render_template(getTemplate(TEMPLATE_THEME), **dataDict)
return render_template(getTemplate(), **dataDict)
@app.route("/", defaults={"path": ""})

7
api/templates.json Normal file
View File

@@ -0,0 +1,7 @@
{
"current-theme": "light",
"templates": {
"light": "spotify.html.j2",
"dark": "spotify-dark.html.j2"
}
}