diff --git a/database.py b/database.py index 2ef2b64..d10ae5c 100644 --- a/database.py +++ b/database.py @@ -343,6 +343,19 @@ def artistInfo(): artist = coa.getCredited(artist) c = [e for e in charts if e["artist"] == artist][0] return {"replace":artist,"scrobbles":scrobbles,"position":charts.index(c) + 1} + +@dbserver.route("/trackinfo") +def trackInfo(): + keys = FormsDict.decode(request.query) + artists = keys.getall("artist") + title = keys.get("title") + + charts = db_aggregate(by="TRACK") + scrobbles = len(db_query(artists=artists,title=title)) #we cant take the scrobble number from the charts because that includes all countas scrobbles + + + c = [e for e in charts if set(e["track"]["artists"]) == set(artists) and e["track"]["title"] == title][0] + return {"scrobbles":scrobbles,"position":charts.index(c) + 1} def isPast(date,limit): if not date[0] == limit[0]: diff --git a/htmlgenerators.py b/htmlgenerators.py index 4be75b7..e1d79a6 100644 --- a/htmlgenerators.py +++ b/htmlgenerators.py @@ -18,12 +18,12 @@ def trackLink(track): def scrobblesTrackLink(track,timekeys,amount=None,percent=None): artists,title = track["artists"],track["title"] import urllib - inner = str(amount) if amount is not None else "
" + inner = str(amount) if amount is not None else "
" return "" + inner + "" def scrobblesArtistLink(artist,timekeys,amount=None,percent=None,associated=False): import urllib - inner = str(amount) if amount is not None else "
" + inner = str(amount) if amount is not None else "
" askey = "&associated" if associated else "" return "" + inner + "" diff --git a/website/track.html b/website/track.html new file mode 100644 index 0000000..aec76a3 --- /dev/null +++ b/website/track.html @@ -0,0 +1,30 @@ + + + + + + Maloja - KEY_TRACKTITLE + + + + + + + + + +
+
+
+

KEY_TRACKTITLE

KEY_POSITION
+ KEY_ARTISTS +

KEY_SCROBBLES Scrobbles

+ +

+
+ +

Scrobbles

+ KEY_SCROBBLELIST + + + diff --git a/website/track.py b/website/track.py new file mode 100644 index 0000000..c08c496 --- /dev/null +++ b/website/track.py @@ -0,0 +1,37 @@ +import urllib +import json + + +def replacedict(keys,dbport): + from utilities import getArtistInfo + from htmlgenerators import clean, artistLink, artistLinks, trackLink, scrobblesTrackLink, keysToUrl, pickKeys, getTimeDesc + + clean(keys) + limitkeys = pickKeys(keys,"artist","title") + info = getArtistInfo(keys["artist"]) + imgurl = info.get("image") + desc = info.get("info") + + response = urllib.request.urlopen("http://localhost:" + str(dbport) + "/trackinfo?" + keysToUrl(limitkeys)) + db_data = json.loads(response.read()) + scrobblesnum = str(db_data["scrobbles"]) + pos = "#" + str(db_data["position"]) + + + response = urllib.request.urlopen("http://localhost:" + str(dbport) + "/scrobbles?" + keysToUrl(limitkeys)) + db_data = json.loads(response.read()) + scrobbles = db_data["list"] + + + # build list + html = "" + for s in scrobbles: + html += "" + html += "" + html += "" + html += "" + html += "" + html += "
" + getTimeDesc(s["time"]) + "" + artistLinks(s["artists"]) + "" + trackLink({"artists":s["artists"],"title":s["title"]}) + "
" + + + return {"KEY_TRACKTITLE":limitkeys.get("title"),"KEY_ARTISTS":artistLinks(limitkeys.getall("artist")),"KEY_SCROBBLES":scrobblesnum,"KEY_IMAGEURL":imgurl,"KEY_SCROBBLELINK":keysToUrl(limitkeys),"KEY_SCROBBLELIST":html,"KEY_POSITION":pos}