Asynchronous picture fetching on start page

This commit is contained in:
Krateng 2019-02-04 13:45:51 +01:00
parent 70d9954c66
commit f72f35fa89

View File

@ -1,9 +1,19 @@
import urllib import urllib
import json import json
from threading import Thread
def getpictures(ls,result,tracks=False):
from utilities import getArtistsInfo, getTracksInfo
if tracks:
for element in getTracksInfo(ls):
result.append(element.get("image"))
else:
for element in getArtistsInfo(ls):
result.append(element.get("image"))
def replacedict(keys,dbport): def replacedict(keys,dbport):
from utilities import getArtistInfo, getArtistsInfo, getTracksInfo from utilities import getArtistsInfo, getTracksInfo
from htmlgenerators import artistLink, artistLinks, trackLink, scrobblesArtistLink, keysToUrl, pickKeys, clean, getTimeDesc from htmlgenerators import artistLink, artistLinks, trackLink, scrobblesArtistLink, keysToUrl, pickKeys, clean, getTimeDesc
max_show = 15 max_show = 15
@ -22,7 +32,10 @@ def replacedict(keys,dbport):
topartist = charts[0]["artist"] topartist = charts[0]["artist"]
artisttitles = [c["artist"] for c in charts] artisttitles = [c["artist"] for c in charts]
artistimages = [info.get("image") for info in getArtistsInfo(artisttitles)] artistimages = []
t1 = Thread(target=getpictures,args=(artisttitles,artistimages,))
t1.start()
#artistimages = [info.get("image") for info in getArtistsInfo(artisttitles)]
artistlinks = [artistLink(a) for a in artisttitles] artistlinks = [artistLink(a) for a in artisttitles]
@ -34,7 +47,10 @@ def replacedict(keys,dbport):
trackobjects = [t["track"] for t in charts] trackobjects = [t["track"] for t in charts]
tracktitles = [t["title"] for t in trackobjects] tracktitles = [t["title"] for t in trackobjects]
trackartists = [", ".join(t["artists"]) for t in trackobjects] trackartists = [", ".join(t["artists"]) for t in trackobjects]
trackimages = [info.get("image") for info in getTracksInfo(trackobjects)] trackimages = []
t2 = Thread(target=getpictures,args=(trackobjects,trackimages,),kwargs={"tracks":True})
t2.start()
#trackimages = [info.get("image") for info in getTracksInfo(trackobjects)]
tracklinks = [trackLink(t) for t in trackobjects] tracklinks = [trackLink(t) for t in trackobjects]
@ -46,7 +62,10 @@ def replacedict(keys,dbport):
scrobbleartists = [", ".join([artistLink(a) for a in s["artists"]]) for s in scrobblelist] scrobbleartists = [", ".join([artistLink(a) for a in s["artists"]]) for s in scrobblelist]
scrobbletitles = [s["title"] for s in scrobblelist] scrobbletitles = [s["title"] for s in scrobblelist]
scrobbletimes = [getTimeDesc(s["time"],short=True) for s in scrobblelist] scrobbletimes = [getTimeDesc(s["time"],short=True) for s in scrobblelist]
scrobbleimages = [info.get("image") for info in getTracksInfo(scrobbletrackobjects)] scrobbleimages = []
t3 = Thread(target=getpictures,args=(scrobbletrackobjects,scrobbleimages,),kwargs={"tracks":True})
t3.start()
#scrobbleimages = [info.get("image") for info in getTracksInfo(scrobbletrackobjects)]
scrobbletracklinks = [trackLink(t) for t in scrobbletrackobjects] scrobbletracklinks = [trackLink(t) for t in scrobbletrackobjects]
@ -68,6 +87,11 @@ def replacedict(keys,dbport):
scrobbles_total = "<a href='/scrobbles'>" + str(stats["amount"]) + "</a>" scrobbles_total = "<a href='/scrobbles'>" + str(stats["amount"]) + "</a>"
t1.join()
t2.join()
t3.join()
return {"KEY_ARTISTIMAGE":artistimages,"KEY_ARTISTNAME":artisttitles,"KEY_ARTISTLINK":artistlinks,"KEY_POSITION_ARTIST":posrange, 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_TRACKIMAGE":trackimages,"KEY_TRACKNAME":tracktitles,"KEY_TRACKLINK":tracklinks,"KEY_POSITION_TRACK":posrange,