mirror of
https://github.com/krateng/maloja.git
synced 2023-08-10 21:12:55 +03:00
Added medals for tracks
This commit is contained in:
parent
3a70b0df1a
commit
5c2d9640ac
@ -34,6 +34,7 @@ SCROBBLESDICT = {} # timestamps to scrobble mapping
|
|||||||
STAMPS = [] # sorted
|
STAMPS = [] # sorted
|
||||||
#STAMPS_SET = set() # as set for easier check if exists
|
#STAMPS_SET = set() # as set for easier check if exists
|
||||||
MEDALS = {} #literally only changes once per year, no need to calculate that on the fly
|
MEDALS = {} #literally only changes once per year, no need to calculate that on the fly
|
||||||
|
MEDALS_TRACKS = {}
|
||||||
|
|
||||||
cla = CleanerAgent()
|
cla = CleanerAgent()
|
||||||
coa = CollectorAgent()
|
coa = CollectorAgent()
|
||||||
@ -492,7 +493,7 @@ def trackInfo(artists,title):
|
|||||||
position = charts.index(c)
|
position = charts.index(c)
|
||||||
while position != 0 and c["scrobbles"] == charts[position-1]["scrobbles"]: position -= 1
|
while position != 0 and c["scrobbles"] == charts[position-1]["scrobbles"]: position -= 1
|
||||||
|
|
||||||
return {"scrobbles":scrobbles,"position":position + 1}
|
return {"scrobbles":scrobbles,"position":position + 1,"medals":MEDALS_TRACKS.get((frozenset(artists),title))}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
29
utilities.py
29
utilities.py
@ -491,26 +491,35 @@ def startpulse():
|
|||||||
def yearly():
|
def yearly():
|
||||||
|
|
||||||
#medals
|
#medals
|
||||||
from database import MEDALS, STAMPS, get_charts_artists
|
from database import MEDALS, MEDALS_TRACKS, STAMPS, get_charts_artists, get_charts_tracks
|
||||||
MEDALS.clear()
|
|
||||||
firstyear = datetime.datetime.utcfromtimestamp(STAMPS[0]).year
|
firstyear = datetime.datetime.utcfromtimestamp(STAMPS[0]).year
|
||||||
currentyear = datetime.datetime.utcnow().year
|
currentyear = datetime.datetime.utcnow().year
|
||||||
|
|
||||||
|
MEDALS.clear()
|
||||||
for year in range(firstyear,currentyear):
|
for year in range(firstyear,currentyear):
|
||||||
|
|
||||||
charts = get_charts_artists(within=[year])
|
charts = get_charts_artists(within=[year])
|
||||||
scr = -1
|
|
||||||
rank = 0
|
|
||||||
for a in charts:
|
for a in charts:
|
||||||
if a["scrobbles"] != scr: rank = charts.index(a) + 1
|
|
||||||
if rank > 3: break
|
|
||||||
|
|
||||||
artist = a["artist"]
|
artist = a["artist"]
|
||||||
if rank == 1: MEDALS.setdefault(artist,{}).setdefault("gold",[]).append(year)
|
if a["rank"] == 1: MEDALS.setdefault(artist,{}).setdefault("gold",[]).append(year)
|
||||||
if rank == 2: MEDALS.setdefault(artist,{}).setdefault("silver",[]).append(year)
|
elif a["rank"] == 2: MEDALS.setdefault(artist,{}).setdefault("silver",[]).append(year)
|
||||||
if rank == 3: MEDALS.setdefault(artist,{}).setdefault("bronze",[]).append(year)
|
elif a["rank"] == 3: MEDALS.setdefault(artist,{}).setdefault("bronze",[]).append(year)
|
||||||
|
else: break
|
||||||
|
|
||||||
|
MEDALS_TRACKS.clear()
|
||||||
|
for year in range(firstyear,currentyear):
|
||||||
|
|
||||||
|
charts = get_charts_tracks(within=[year])
|
||||||
|
for t in charts:
|
||||||
|
|
||||||
|
track = (frozenset(t["track"]["artists"]),t["track"]["title"])
|
||||||
|
if t["rank"] == 1: MEDALS_TRACKS.setdefault(track,{}).setdefault("gold",[]).append(year)
|
||||||
|
elif t["rank"] == 2: MEDALS_TRACKS.setdefault(track,{}).setdefault("silver",[]).append(year)
|
||||||
|
elif t["rank"] == 3: MEDALS_TRACKS.setdefault(track,{}).setdefault("bronze",[]).append(year)
|
||||||
|
else: break
|
||||||
|
|
||||||
scr = a["scrobbles"]
|
|
||||||
|
|
||||||
|
|
||||||
# schedule for next year
|
# schedule for next year
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
<p class="stats"><a href="/scrobbles?KEY_SCROBBLELINK">KEY_SCROBBLES Scrobbles</a></p>
|
<p class="stats"><a href="/scrobbles?KEY_SCROBBLELINK">KEY_SCROBBLES Scrobbles</a></p>
|
||||||
|
|
||||||
<p class="desc"></p>
|
<p class="desc"></p>
|
||||||
|
<span>KEY_MEDALS</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -20,13 +20,27 @@ def instructions(keys):
|
|||||||
pos = "#" + str(data["position"])
|
pos = "#" + str(data["position"])
|
||||||
|
|
||||||
|
|
||||||
|
html_medals = ""
|
||||||
|
if "medals" in data and data["medals"] is not None:
|
||||||
|
if "gold" in data["medals"]:
|
||||||
|
for y in data["medals"]["gold"]:
|
||||||
|
html_medals += "<a title='Best Track in " + str(y) + "' class='hidelink medal gold' href='/charts_tracks?max=50&in=" + str(y) + "'><span>" + str(y) + "</span></a>"
|
||||||
|
if "silver" in data["medals"]:
|
||||||
|
for y in data["medals"]["silver"]:
|
||||||
|
html_medals += "<a title='Second Best Track in " + str(y) + "' class='hidelink medal silver' href='/charts_tracks?max=50&in=" + str(y) + "'><span>" + str(y) + "</span></a>"
|
||||||
|
if "bronze" in data["medals"]:
|
||||||
|
for y in data["medals"]["bronze"]:
|
||||||
|
html_medals += "<a title='Third Best Track in " + str(y) + "' class='hidelink medal bronze' href='/charts_tracks?max=50&in=" + str(y) + "'><span>" + str(y) + "</span></a>"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
html_scrobbles, _, _ = module_scrobblelist(track=track,max_=100,earlystop=True) # we have the number already from the trackinfo
|
html_scrobbles, _, _ = module_scrobblelist(track=track,max_=100,earlystop=True) # we have the number already from the trackinfo
|
||||||
|
|
||||||
html_pulse = module_pulse(track=track,step="year",stepn=1,trail=1)
|
html_pulse = module_pulse(track=track,step="year",stepn=1,trail=1)
|
||||||
|
|
||||||
|
|
||||||
replace = {"KEY_TRACKTITLE":track.get("title"),"KEY_ARTISTS":artistLinks(track.get("artists")),"KEY_SCROBBLES":scrobblesnum,"KEY_POSITION":pos,"KEY_IMAGEURL":imgurl,
|
replace = {"KEY_TRACKTITLE":track.get("title"),"KEY_ARTISTS":artistLinks(track.get("artists")),"KEY_SCROBBLES":scrobblesnum,"KEY_POSITION":pos,"KEY_IMAGEURL":imgurl,
|
||||||
"KEY_SCROBBLELINK":keysToUrl(keys),
|
"KEY_SCROBBLELINK":keysToUrl(keys),"KEY_MEDALS":html_medals,
|
||||||
"KEY_SCROBBLELIST":html_scrobbles,"KEY_PULSE":html_pulse}
|
"KEY_SCROBBLELIST":html_scrobbles,"KEY_PULSE":html_pulse}
|
||||||
|
|
||||||
return (replace,pushresources)
|
return (replace,pushresources)
|
||||||
|
Loading…
Reference in New Issue
Block a user