From a6472c11b030ccc4926b840d1714c986ad63e4ba Mon Sep 17 00:00:00 2001 From: Krateng Date: Sun, 7 Apr 2019 14:07:50 +0200 Subject: [PATCH] Modularized track and artist lists --- htmlgenerators.py | 23 +++++++++++++++++++- htmlmodules.py | 28 ++++++++++--------------- scrobblers/chromium-generic/settings.js | 25 ++++++++++++---------- 3 files changed, 47 insertions(+), 29 deletions(-) diff --git a/htmlgenerators.py b/htmlgenerators.py index 1ddc305..739094a 100644 --- a/htmlgenerators.py +++ b/htmlgenerators.py @@ -1,9 +1,30 @@ import urllib from bottle import FormsDict import datetime -from malojatime import time_fix, internal_to_uri +from malojatime import uri_to_internal, internal_to_uri +# returns the proper column(s) for an artist or track +def entity_column(element,counting=[],image=None): + + html = "" + + if image is not None: + html += """
""" + + if "artists" in element: + # track + html += "" + artistLinks(element["artists"]) + "" + html += "" + trackLink({"artists":element["artists"],"title":element["title"]}) + "" + else: + # artist + html += "" + artistLink(element) + if (counting != []): + html += " incl. " + ", ".join([artistLink(a) for a in counting]) + "" + html += "" + + return html + def artistLink(name): return "" + name + "" diff --git a/htmlmodules.py b/htmlmodules.py index 5234c98..9c5dd33 100644 --- a/htmlmodules.py +++ b/htmlmodules.py @@ -42,9 +42,9 @@ def module_scrobblelist(max_=None,pictures=False,shortTimeDesc=False,earlystop=F html += "" html += "" + time_desc(s["time"],short=shortTimeDesc) + "" if pictures: - html += """
""" - html += "" + artistLinks(s["artists"]) + "" - html += "" + trackLink({"artists":s["artists"],"title":s["title"]}) + "" + img = scrobbleimages[i] + else: img = None + html += entity_column(s,image=img) # Alternative way: Do it in one cell #html += "" + artistLinks(s["artists"]) + " — " + trackLink({"artists":s["artists"],"title":s["title"]}) + "" html += "" @@ -142,8 +142,7 @@ def module_trackcharts(max_=None,**kwargs): else: html += "➡" # track - html += "" + artistLinks(e["track"]["artists"]) + "" - html += "" + trackLink(e["track"]) + "" + html += entity_column(e["track"]) # scrobbles html += "" + scrobblesTrackLink(e["track"],kwargs_time,amount=e["scrobbles"]) + "" html += "" + scrobblesTrackLink(e["track"],kwargs_time,percent=e["scrobbles"]*100/maxbar) + "" @@ -204,10 +203,7 @@ def module_artistcharts(max_=None,**kwargs): else: html += "➡" # artist - html += "" + artistLink(e["artist"]) - if (e["counting"] != []): - html += " incl. " + ", ".join([artistLink(a) for a in e["counting"]]) + "" - html += "" + html += entity_column(e["artist"],counting=e["counting"]) # scrobbles html += "" + scrobblesArtistLink(e["artist"],kwargs_time,amount=e["scrobbles"],associated=True) + "" html += "" + scrobblesArtistLink(e["artist"],kwargs_time,percent=e["scrobbles"]*100/maxbar,associated=True) + "" @@ -266,9 +262,9 @@ def module_toptracks(pictures=True,**kwargs): html += "" + "" + "" else: if pictures: - html += """
""" - html += "" + artistLinks(e["track"]["artists"]) + "" - html += "" + trackLink(e["track"]) + "" + img = getTrackImage(e["track"]["artists"],e["track"]["title"],fast=True) + else: img = None + html += entity_column(e["track"],image=img) html += "" + scrobblesTrackLink(e["track"],{"since":fromstr,"to":tostr},amount=e["scrobbles"]) + "" html += "" + scrobblesTrackLink(e["track"],{"since":fromstr,"to":tostr},percent=e["scrobbles"]*100/maxbar) + "" html += "" @@ -321,11 +317,9 @@ def module_topartists(pictures=True,**kwargs): html += "" + "" + "" else: if pictures: - html += """
""" - html += "" + artistLink(e["artist"]) - if (e["counting"] != []): - html += " incl. " + ", ".join([artistLink(a) for a in e["counting"]]) + "" - html += "" + img = getArtistImage(e["artist"],fast=True) + else: img = None + html += entity_column(e["artist"],image=img) html += "" + scrobblesArtistLink(e["artist"],{"since":fromstr,"to":tostr},amount=e["scrobbles"],associated=True) + "" html += "" + scrobblesArtistLink(e["artist"],{"since":fromstr,"to":tostr},percent=e["scrobbles"]*100/maxbar,associated=True) + "" html += "" diff --git a/scrobblers/chromium-generic/settings.js b/scrobblers/chromium-generic/settings.js index ac403e2..c908656 100644 --- a/scrobblers/chromium-generic/settings.js +++ b/scrobblers/chromium-generic/settings.js @@ -2,11 +2,14 @@ document.addEventListener("DOMContentLoaded",function() { document.getElementById("serverurl").addEventListener("input",updateServer); document.getElementById("apikey").addEventListener("input",updateAPIKey); - + document.getElementById("serverurl").addEventListener("change",checkServer); document.getElementById("apikey").addEventListener("change",checkServer); - - + + document.getElementById("serverurl").addEventListener("focusout",checkServer); + document.getElementById("apikey").addEventListener("focusout",checkServer); + + chrome.storage.local.get({"serverurl":"http://localhost:42010"},function(result) { document.getElementById("serverurl").value = result["serverurl"] checkServer() @@ -15,18 +18,18 @@ document.addEventListener("DOMContentLoaded",function() { document.getElementById("apikey").value = result["apikey"] checkServer() }); - - - + + + }); function updateServer() { - + text = document.getElementById("serverurl").value - - + + chrome.storage.local.set({"serverurl":text}) } @@ -37,7 +40,7 @@ function updateAPIKey() { function checkServer() { url = document.getElementById("serverurl").value + "/db/test?key=" + document.getElementById("apikey").value - + var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = createCheckmarks; try { @@ -50,7 +53,7 @@ function checkServer() { document.getElementById("serverurl").style.backgroundColor = "red" document.getElementById("apikey").style.backgroundColor = "red" } - + } function createCheckmarks() {