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 += " "
+ 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 += " "
- 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 += " "
- 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() {