mirror of
https://github.com/krateng/maloja.git
synced 2023-08-10 21:12:55 +03:00
Reimplemented search function
This commit is contained in:
parent
8db87bdbc5
commit
055dca4b6d
@ -468,70 +468,11 @@ def start_db():
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Search for strings
|
# Search for strings
|
||||||
def db_search(query,type=None):
|
def db_search(query,type=None):
|
||||||
results = []
|
results = []
|
||||||
if type=="ARTIST":
|
if type=="ARTIST":
|
||||||
results = [a for a in ARTISTS if simplestr(query) in simplestr(a)]
|
results = [a for a in sqldb.get_artists() if sqldb.normalize_name(query) in sqldb.normalize_name(a)]
|
||||||
if type=="TRACK":
|
if type=="TRACK":
|
||||||
results = [
|
results = [t for t in sqldb.get_tracks() if sqldb.normalize_name(query) in sqldb.normalize_name(t['title'])]
|
||||||
get_track_dict(t) for t in TRACKS if simplestr(query) in simplestr(t[1])
|
|
||||||
]
|
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
|
||||||
####
|
|
||||||
## Useful functions
|
|
||||||
####
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# makes a string usable for searching (special characters are blanks, accents and stuff replaced with their real part)
|
|
||||||
def simplestr(input,ignorecapitalization=True):
|
|
||||||
norm = unicodedata.normalize("NFKD",input)
|
|
||||||
norm = [c for c in norm if not unicodedata.combining(c)]
|
|
||||||
norm = [c if len(c.encode())==1 else " " for c in norm]
|
|
||||||
clear = ''.join(c for c in norm)
|
|
||||||
if ignorecapitalization: clear = clear.lower()
|
|
||||||
return clear
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#def getArtistId(nameorid):
|
|
||||||
# if isinstance(nameorid,int):
|
|
||||||
# return nameorid
|
|
||||||
# else:
|
|
||||||
# try:
|
|
||||||
# return ARTISTS.index(nameorid)
|
|
||||||
# except:
|
|
||||||
# return -1
|
|
||||||
|
|
||||||
|
|
||||||
def insert(list_,item,key=lambda x:x):
|
|
||||||
i = 0
|
|
||||||
while len(list_) > i:
|
|
||||||
if key(list_[i]) > key(item):
|
|
||||||
list_.insert(i,item)
|
|
||||||
return i
|
|
||||||
i += 1
|
|
||||||
|
|
||||||
list_.append(item)
|
|
||||||
return i
|
|
||||||
|
|
||||||
|
|
||||||
def scrobbles_in_range(start,end,reverse=False):
|
|
||||||
if reverse:
|
|
||||||
for stamp in reversed(STAMPS):
|
|
||||||
#print("Checking " + str(stamp))
|
|
||||||
if stamp < start: return
|
|
||||||
if stamp > end: continue
|
|
||||||
yield SCROBBLESDICT[stamp]
|
|
||||||
else:
|
|
||||||
for stamp in STAMPS:
|
|
||||||
#print("Checking " + str(stamp))
|
|
||||||
if stamp < start: continue
|
|
||||||
if stamp > end: return
|
|
||||||
yield SCROBBLESDICT[stamp]
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user