From ed990f59fc9c69611807489912cf1ebf113f00c3 Mon Sep 17 00:00:00 2001 From: Krateng Date: Sun, 3 Feb 2019 16:52:37 +0100 Subject: [PATCH] Fancy af start page --- htmlgenerators.py | 25 ++++++- utilities.py | 1 + website/favicon.ico | Bin 13982 -> 268322 bytes website/favicon.png | Bin 23964 -> 36219 bytes website/maloja.css | 34 +++++++++ website/scrobbles.py | 2 +- website/start.html | 163 +++++++++++++++++++++++++++++++++++++++++++ website/start.py | 18 +++-- 8 files changed, 235 insertions(+), 8 deletions(-) diff --git a/htmlgenerators.py b/htmlgenerators.py index e1d79a6..bbe32a3 100644 --- a/htmlgenerators.py +++ b/htmlgenerators.py @@ -60,10 +60,31 @@ def removeIdentical(*dicts): return new -def getTimeDesc(timestamp): +def getTimeDesc(timestamp,short=False): import datetime tim = datetime.datetime.utcfromtimestamp(timestamp) - return tim.strftime("%d. %b %Y %I:%M %p") + if short: + now = datetime.datetime.utcnow() + datestring = "" + if tim.year < now.year: + return str(tim.year) + if tim.month < now.month: + return tim.strftime("%B") + if tim.day+1 < now.day: + return tim.strftime("%d. %B") + if tim.day+1 == now.day: + return "yesterday" + if tim.hour+1 < now.hour: + return str(now.hour - tim.hour) + " hours ago" + if tim.minute+1 < now.minute: + return str(now.minute - tim.minute) + " minutes ago" + if tim.second+10 < now.second: + return str(now.second - tim.second) + " seconds ago" + + return "just now" + return tim.strftime("%d. %b %Y") + else: + return tim.strftime("%d. %b %Y %I:%M %p") # limit a multidict to only the specified keys diff --git a/utilities.py b/utilities.py index cea4f92..ba652f0 100644 --- a/utilities.py +++ b/utilities.py @@ -301,4 +301,5 @@ def getArtistsInfo(artistlist): # async calls only cached results, now we need to get them return [getArtistInfo(a) for a in artistlist] + diff --git a/website/favicon.ico b/website/favicon.ico index 03e8803e66c80e247fea01b0142a7e36e872c43d..fe291ce14913f293e005d9994d5358e8c6218752 100644 GIT binary patch literal 268322 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 J@yI0j{{Y5(^@RWc literal 23964 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 R1lp~WA=LFB)~TT){s$mgX$AlQ diff --git a/website/maloja.css b/website/maloja.css index 850c863..0bef41d 100644 --- a/website/maloja.css +++ b/website/maloja.css @@ -127,10 +127,20 @@ table td.time { } table td.icon { + /*width:20px!important; + height:20px; + background-size:cover; + background-position:center; + padding-right:6px;*/ + padding:0px; +} + +table td.icon div { width:20px; height:20px; background-size:cover; background-position:center; + margin-right:4px; } table td.artists,td.artist,td.title { @@ -279,3 +289,27 @@ table.tiles_3x3 td { width:33.333%; font-size:70% } + + + + + +/* +** +** +** SIDE LIST ON START PAGE +** +** +*/ + + + +div.sidelist { + position:absolute; + right:0px; + top:0px; + width:40%; + height:100%; + background-color:#444447; + padding-left:30px; +} diff --git a/website/scrobbles.py b/website/scrobbles.py index 2076d31..995c620 100644 --- a/website/scrobbles.py +++ b/website/scrobbles.py @@ -7,7 +7,7 @@ def replacedict(keys,dbport): from htmlgenerators import getTimeDesc, artistLink, artistLinks, trackLink, keysToUrl, pickKeys, clean clean(keys) - timekeys = pickKeys(keys,"since","to","in") + timekeys = pickKeys(keys,"since","to","in","max") limitkeys = pickKeys(keys,"artist","title","associated") # Get scrobble data diff --git a/website/start.html b/website/start.html index b79d76b..54bf645 100644 --- a/website/start.html +++ b/website/start.html @@ -108,5 +108,168 @@ + + + + + + +

+

Last Scrobbles

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
KEY_SCROBBLE_TIME
KEY_SCROBBLE_ARTISTSKEY_SCROBBLE_TITLE
+
+ diff --git a/website/start.py b/website/start.py index b97d856..8d580bf 100644 --- a/website/start.py +++ b/website/start.py @@ -4,7 +4,7 @@ import json def replacedict(keys,dbport): from utilities import getArtistInfo, getArtistsInfo, getTracksInfo - from htmlgenerators import artistLink, artistLinks, trackLink, scrobblesArtistLink, keysToUrl, pickKeys, clean + from htmlgenerators import artistLink, artistLinks, trackLink, scrobblesArtistLink, keysToUrl, pickKeys, clean, getTimeDesc max_show = 15 posrange = ["#" + str(i) for i in range(1,max_show)] @@ -39,9 +39,16 @@ def replacedict(keys,dbport): # get scrobbles - #response = urllib.request.urlopen("http://localhost:" + str(dbport) + "/scrobbles") - #db_data = json.loads(response.read()) - #scrobblelist = db_data["list"] + response = urllib.request.urlopen("http://localhost:" + str(dbport) + "/scrobbles?max=50") + db_data = json.loads(response.read()) + scrobblelist = db_data["list"] + scrobbletrackobjects = scrobblelist #ignore the extra time attribute, the format should still work + scrobbleartists = [", ".join([artistLink(a) for a in s["artists"]]) for s in scrobblelist] + scrobbletitles = [s["title"] for s in scrobblelist] + scrobbletimes = [getTimeDesc(s["time"],short=True) for s in scrobblelist] + scrobbleimages = [info.get("image") for info in getTracksInfo(scrobbletrackobjects)] + scrobbletracklinks = [trackLink(t) for t in scrobbletrackobjects] + # get stats response = urllib.request.urlopen("http://localhost:" +str(dbport) + "/numscrobbles?since=today") @@ -64,5 +71,6 @@ def replacedict(keys,dbport): return {"KEY_ARTISTIMAGE":artistimages,"KEY_ARTISTNAME":artisttitles,"KEY_ARTISTLINK":artistlinks,"KEY_POSITION_ARTIST":posrange, "KEY_TRACKIMAGE":trackimages,"KEY_TRACKNAME":tracktitles,"KEY_TRACKLINK":tracklinks,"KEY_POSITION_TRACK":posrange, - "KEY_SCROBBLES_TODAY":scrobbles_today,"KEY_SCROBBLES_MONTH":scrobbles_month,"KEY_SCROBBLES_YEAR":scrobbles_year,"KEY_SCROBBLES_TOTAL":scrobbles_total} + "KEY_SCROBBLES_TODAY":scrobbles_today,"KEY_SCROBBLES_MONTH":scrobbles_month,"KEY_SCROBBLES_YEAR":scrobbles_year,"KEY_SCROBBLES_TOTAL":scrobbles_total, + "KEY_SCROBBLE_TIME":scrobbletimes,"KEY_SCROBBLE_ARTISTS":scrobbleartists,"KEY_SCROBBLE_TITLE":scrobbletracklinks,"KEY_SCROBBLE_IMAGE":scrobbleimages}