mirror of
https://github.com/krateng/maloja.git
synced 2023-08-10 21:12:55 +03:00
Search API returns more information
This commit is contained in:
parent
75aa341b9a
commit
8701a1b39d
23
database.py
23
database.py
@ -4,7 +4,7 @@ from bottle import request, response, FormsDict
|
|||||||
from cleanup import *
|
from cleanup import *
|
||||||
from utilities import *
|
from utilities import *
|
||||||
from malojatime import *
|
from malojatime import *
|
||||||
from urihandler import uri_to_internal
|
from urihandler import uri_to_internal, internal_to_uri, compose_querystring
|
||||||
import compliant_api
|
import compliant_api
|
||||||
# doreah toolkit
|
# doreah toolkit
|
||||||
from doreah.logging import log
|
from doreah.logging import log
|
||||||
@ -833,11 +833,30 @@ def search():
|
|||||||
|
|
||||||
artists = db_search(query,type="ARTIST")
|
artists = db_search(query,type="ARTIST")
|
||||||
tracks = db_search(query,type="TRACK")
|
tracks = db_search(query,type="TRACK")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# if the string begins with the query it's a better match, if a word in it begins with it, still good
|
# if the string begins with the query it's a better match, if a word in it begins with it, still good
|
||||||
# also, shorter is better (because longer titles would be easier to further specify)
|
# also, shorter is better (because longer titles would be easier to further specify)
|
||||||
artists.sort(key=lambda x: ((0 if x.lower().startswith(query) else 1 if " " + query in x.lower() else 2),len(x)))
|
artists.sort(key=lambda x: ((0 if x.lower().startswith(query) else 1 if " " + query in x.lower() else 2),len(x)))
|
||||||
tracks.sort(key=lambda x: ((0 if x["title"].lower().startswith(query) else 1 if " " + query in x["title"].lower() else 2),len(x["title"])))
|
tracks.sort(key=lambda x: ((0 if x["title"].lower().startswith(query) else 1 if " " + query in x["title"].lower() else 2),len(x["title"])))
|
||||||
return {"artists":artists[:max_],"tracks":tracks[:max_]}
|
|
||||||
|
# add links
|
||||||
|
artists_result = []
|
||||||
|
for a in artists:
|
||||||
|
result = {"name":a}
|
||||||
|
result["link"] = "/artist?" + compose_querystring(internal_to_uri({"artist":a}))
|
||||||
|
result["image"] = "/image?" + compose_querystring(internal_to_uri({"artist":a}))
|
||||||
|
artists_result.append(result)
|
||||||
|
|
||||||
|
tracks_result = []
|
||||||
|
for t in tracks:
|
||||||
|
result = t
|
||||||
|
result["link"] = "/track?" + compose_querystring(internal_to_uri({"track":t}))
|
||||||
|
result["image"] = "/image?" + compose_querystring(internal_to_uri({"track":t}))
|
||||||
|
tracks_result.append(result)
|
||||||
|
|
||||||
|
return {"artists":artists_result[:max_],"tracks":tracks_result[:max_]}
|
||||||
|
|
||||||
####
|
####
|
||||||
## Server operation
|
## Server operation
|
||||||
|
@ -21,11 +21,9 @@ function searchresult() {
|
|||||||
<table class="searchresults_artists">`
|
<table class="searchresults_artists">`
|
||||||
|
|
||||||
for (var i=0;i<artists.length;i++) {
|
for (var i=0;i<artists.length;i++) {
|
||||||
name = artists[i];
|
name = artists[i]["name"];
|
||||||
uristr = "artist=" + encodeURIComponent(name);
|
link = artists[i]["link"];
|
||||||
uristr = uristr.replace("'","\\'");
|
image = artists[i]["image"];
|
||||||
image = "/image?" + uristr;
|
|
||||||
link = "/artist?" + uristr;
|
|
||||||
|
|
||||||
html += `<tr onclick="goto('` + link + `')">
|
html += `<tr onclick="goto('` + link + `')">
|
||||||
<td class="image" style="background-image:url('` + image + `');"></td>
|
<td class="image" style="background-image:url('` + image + `');"></td>
|
||||||
@ -44,10 +42,8 @@ function searchresult() {
|
|||||||
|
|
||||||
artists = tracks[i]["artists"].join(", ");
|
artists = tracks[i]["artists"].join(", ");
|
||||||
title = tracks[i]["title"];
|
title = tracks[i]["title"];
|
||||||
uristr = "title=" + encodeURIComponent(title) + "&" + tracks[i]["artists"].map(x => "artist=" + encodeURIComponent(x)).join("&");
|
link = tracks[i]["link"];
|
||||||
uristr = uristr.replace("'","\\'");
|
image = tracks[i]["image"];
|
||||||
image = "/image?" + uristr;
|
|
||||||
link = "/track?" + uristr;
|
|
||||||
|
|
||||||
html += `<tr onclick="goto('` + link + `')">
|
html += `<tr onclick="goto('` + link + `')">
|
||||||
<td class="image" style="background-image:url('` + image + `');"></td>
|
<td class="image" style="background-image:url('` + image + `');"></td>
|
||||||
|
Loading…
Reference in New Issue
Block a user