1
0
mirror of https://github.com/krateng/maloja.git synced 2023-08-10 21:12:55 +03:00

Changed way of serving third-party images to improve page loading time

This commit is contained in:
Krateng
2019-02-20 21:10:58 +01:00
parent 5f19e7b38e
commit f1007d6da5
10 changed files with 76 additions and 46 deletions

View File

@@ -23,7 +23,7 @@
</tr>
</table>
<h2><a href='/toptracks?artist=KEY_ENC_ARTISTNAME'>Tracks</a></h2>
<h2><a href='/toptracks?artist=KEY_ENC_ARTISTNAME'>Top Tracks</a></h2>
KEY_TRACKLIST

View File

@@ -1,40 +1,42 @@
import urllib
import json
import database
def instructions(keys,dbport):
from utilities import getArtistInfo
from htmlgenerators import clean, artistLink, artistLinks, trackLink, scrobblesTrackLink, getRangeDesc, scrobblesLink
from htmlgenerators import clean, artistLink, artistLinks, KeySplit
from htmlmodules import module_pulse, module_trackcharts
allowedkeys = {"artist":keys.get("artist")}
# clean(keys)
info = getArtistInfo(keys["artist"])
filterkeys, _, _, _ = KeySplit(keys,forceArtist=True)
info = getArtistInfo(filterkeys["artist"])
imgurl = info.get("image")
#desc = info.get("info")
pushresources = [{"file":imgurl,"type":"image"}] if imgurl.startswith("/") else []
response = urllib.request.urlopen("http://[::1]:" + str(dbport) + "/artistinfo?artist=" + urllib.parse.quote(keys["artist"]))
db_data = json.loads(response.read())
scrobbles = str(db_data["scrobbles"])
pos = "#" + str(db_data["position"])
data = database.artistInfo(filterkeys["artist"])
scrobbles = str(data["scrobbles"])
pos = "#" + str(data["position"])
credited = db_data.get("replace")
credited = data.get("replace")
includestr = " "
if credited is not None:
includestr = "Competing under " + artistLink(credited) + " (" + pos + ")"
pos = ""
included = db_data.get("associated")
included = data.get("associated")
if included is not None and included != []:
includestr = "associated: "
includestr += artistLinks(included)
html_tracks, _ = module_trackcharts(**allowedkeys)
html_tracks, _ = module_trackcharts(**filterkeys,max_=15)
html_pulse = module_pulse(**allowedkeys,step="year",stepn=1,trail=1)
html_pulse = module_pulse(**filterkeys,step="year",stepn=1,trail=1)
replace = {"KEY_ARTISTNAME":keys["artist"],"KEY_ENC_ARTISTNAME":urllib.parse.quote(keys["artist"]),"KEY_IMAGEURL":imgurl, "KEY_DESCRIPTION":"","KEY_TRACKLIST":html_tracks,"KEY_SCROBBLES":scrobbles,"KEY_POSITION":pos,"KEY_ASSOCIATED":includestr,"KEY_PULSE":html_pulse}
replace = {"KEY_ARTISTNAME":keys["artist"],"KEY_ENC_ARTISTNAME":urllib.parse.quote(keys["artist"]),
"KEY_IMAGEURL":imgurl, "KEY_DESCRIPTION":"",
"KEY_TRACKLIST":html_tracks,"KEY_PULSE":html_pulse,
"KEY_SCROBBLES":scrobbles,"KEY_POSITION":pos,
"KEY_ASSOCIATED":includestr}
return (replace,pushresources)

View File

@@ -1,10 +1,11 @@
import urllib
import json
import database
def instructions(keys,dbport):
from utilities import getArtistInfo, getTrackInfo
from htmlgenerators import getTimeDesc, artistLink, artistLinks, trackLink, keysToUrl, KeySplit
from htmlgenerators import artistLink, artistLinks, trackLink, KeySplit
from htmlmodules import module_scrobblelist
@@ -12,16 +13,15 @@ def instructions(keys,dbport):
# describe the scope
limitstring = ""
if keys.get("title") is not None:
limitstring += "of " + trackLink({"title":keys.get("title"),"artists":keys.getall("artist")}) + " "
limitstring += "by " + artistLinks(keys.getall("artist"))
if filterkeys.get("track") is not None:
limitstring += "of " + trackLink(filterkeys["track"]) + " "
limitstring += "by " + artistLinks(filterkeys["track"]["artists"])
elif keys.get("artist") is not None:
limitstring += "by " + artistLink(keys.get("artist"))
if keys.get("associated") is not None:
response = urllib.request.urlopen("http://[::1]:" + str(dbport) + "/artistinfo?artist=" + urllib.parse.quote(keys["artist"]))
db_data = json.loads(response.read())
moreartists = db_data["associated"]
elif filterkeys.get("artist") is not None:
limitstring += "by " + artistLink(filterkeys.get("artist"))
if filterkeys.get("associated"):
data = database.artistInfo(filterkeys["artist"])
moreartists = data.get("associated")
if moreartists != []:
limitstring += " <span class='extra'>including " + artistLinks(moreartists) + "</span>"

View File

@@ -38,9 +38,10 @@ def instructions(keys,dbport):
topartist = charts[0]["artist"]
artisttitles = [c["artist"] for c in charts]
artistimages = []
t1 = Thread(target=getpictures,args=(artisttitles,artistimages,))
t1.start()
#artistimages = []
#t1 = Thread(target=getpictures,args=(artisttitles,artistimages,))
#t1.start()
artistimages = ["/image?artist=" + urllib.parse.quote(a) for a in artisttitles]
#artistimages = [info.get("image") for info in getArtistsInfo(artisttitles)]
artistlinks = [artistLink(a) for a in artisttitles]
@@ -54,9 +55,10 @@ def instructions(keys,dbport):
trackobjects = [t["track"] for t in charts]
tracktitles = [t["title"] for t in trackobjects]
trackartists = [", ".join(t["artists"]) for t in trackobjects]
trackimages = []
t2 = Thread(target=getpictures,args=(trackobjects,trackimages,),kwargs={"tracks":True})
t2.start()
#trackimages = []
#t2 = Thread(target=getpictures,args=(trackobjects,trackimages,),kwargs={"tracks":True})
#t2.start()
trackimages = ["/image?title=" + urllib.parse.quote(t["title"]) + "&" + "&".join(["artist=" + urllib.parse.quote(a) for a in t["artists"]]) for t in trackobjects]
#trackimages = [info.get("image") for info in getTracksInfo(trackobjects)]
tracklinks = [trackLink(t) for t in trackobjects]
@@ -120,8 +122,8 @@ def instructions(keys,dbport):
t1.join()
t2.join()
#t1.join()
#t2.join()
#t3.join()
#pushresources = [{"file":img,"type":"image"} for img in artistimages + trackimages + scrobbleimages if img.startswith("/")]

View File

@@ -9,7 +9,7 @@ def instructions(keys,dbport):
from htmlmodules import module_scrobblelist, module_pulse
filterkeys, _, _, _ = KeySplit(keys)
filterkeys, _, _, _ = KeySplit(keys,forceTrack=True)
track = filterkeys.get("track")
imgurl = getTrackInfo(track["artists"],track["title"]).get("image")
@@ -61,7 +61,8 @@ def instructions(keys,dbport):
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_IMAGEURL":imgurl,
"KEY_SCROBBLELINK":keysToUrl(keys),"KEY_SCROBBLELIST":html_scrobbles,"KEY_POSITION":pos,"KEY_PULSE":html_pulse}
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_SCROBBLELIST":html_scrobbles,"KEY_PULSE":html_pulse}
return (replace,pushresources)