mirror of
https://github.com/krateng/maloja.git
synced 2023-08-10 21:12:55 +03:00
Minor fixes and structure
This commit is contained in:
parent
e7e4cdebee
commit
f1d1421374
10
cleanup.py
10
cleanup.py
@ -85,6 +85,14 @@ class CleanerAgent:
|
|||||||
(title,artists) = self.parseTitleForArtists(re.sub(r"(.*) \(" + d + " (.*?)\)",r"\1",t))
|
(title,artists) = self.parseTitleForArtists(re.sub(r"(.*) \(" + d + " (.*?)\)",r"\1",t))
|
||||||
artists += self.parseArtists(re.sub(r"(.*) \(" + d + " (.*?)\).*",r"\2",t))
|
artists += self.parseArtists(re.sub(r"(.*) \(" + d + " (.*?)\).*",r"\2",t))
|
||||||
return (title,artists)
|
return (title,artists)
|
||||||
|
if re.match(r"(.*) - " + d + " (.*)",t) is not None:
|
||||||
|
(title,artists) = self.parseTitleForArtists(re.sub(r"(.*) - " + d + " (.*)",r"\1",t))
|
||||||
|
artists += self.parseArtists(re.sub(r"(.*) - " + d + " (.*).*",r"\2",t))
|
||||||
|
return (title,artists)
|
||||||
|
if re.match(r"(.*) " + d + " (.*)",t) is not None:
|
||||||
|
(title,artists) = self.parseTitleForArtists(re.sub(r"(.*) " + d + " (.*)",r"\1",t))
|
||||||
|
artists += self.parseArtists(re.sub(r"(.*) " + d + " (.*).*",r"\2",t))
|
||||||
|
return (title,artists)
|
||||||
|
|
||||||
return (t,[])
|
return (t,[])
|
||||||
|
|
||||||
@ -103,7 +111,7 @@ class CollectorAgent:
|
|||||||
for a in self.rules_countas:
|
for a in self.rules_countas:
|
||||||
self.rules_include[self.rules_countas[a]] = self.rules_include.setdefault(self.rules_countas[a],[]) + [a]
|
self.rules_include[self.rules_countas[a]] = self.rules_include.setdefault(self.rules_countas[a],[]) + [a]
|
||||||
|
|
||||||
# this agent needs to be aware of the current id assignment in the main program. but unelegant, but the best way i can think of
|
# this agent needs to be aware of the current id assignment in the main program. unelegant, but the best way i can think of
|
||||||
def updateIDs(self,artistlist):
|
def updateIDs(self,artistlist):
|
||||||
self.rules_countas_id = {artistlist.index(a):artistlist.index(self.rules_countas[a]) for a in self.rules_countas}
|
self.rules_countas_id = {artistlist.index(a):artistlist.index(self.rules_countas[a]) for a in self.rules_countas}
|
||||||
#self.rules_include_id = {artistlist.index(a):artistlist.index(self.rules_include[a]) for a in self.rules_include}
|
#self.rules_include_id = {artistlist.index(a):artistlist.index(self.rules_include[a]) for a in self.rules_include}
|
||||||
|
82
database.py
82
database.py
@ -31,6 +31,11 @@ def loadAPIkeys():
|
|||||||
def checkAPIkey(k):
|
def checkAPIkey(k):
|
||||||
return (k in [k for [k,d] in clients])
|
return (k in [k for [k,d] in clients])
|
||||||
|
|
||||||
|
|
||||||
|
####
|
||||||
|
## Getting dict representations of database objects
|
||||||
|
####
|
||||||
|
|
||||||
def getScrobbleObject(o):
|
def getScrobbleObject(o):
|
||||||
track = getTrackObject(TRACKS[o[0]])
|
track = getTrackObject(TRACKS[o[0]])
|
||||||
return {"artists":track["artists"],"title":track["title"],"time":o[1]}
|
return {"artists":track["artists"],"title":track["title"],"time":o[1]}
|
||||||
@ -43,6 +48,11 @@ def getTrackObject(o):
|
|||||||
return {"artists":artists,"title":o[1]}
|
return {"artists":artists,"title":o[1]}
|
||||||
|
|
||||||
|
|
||||||
|
####
|
||||||
|
## Creating or finding existing database entries
|
||||||
|
####
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def createScrobble(artists,title,time):
|
def createScrobble(artists,title,time):
|
||||||
while (time in timestamps):
|
while (time in timestamps):
|
||||||
@ -86,6 +96,11 @@ def getTrackID(artists,title):
|
|||||||
return i
|
return i
|
||||||
|
|
||||||
|
|
||||||
|
####
|
||||||
|
## HTTP requests
|
||||||
|
####
|
||||||
|
|
||||||
|
|
||||||
@route("/scrobbles")
|
@route("/scrobbles")
|
||||||
def get_scrobbles():
|
def get_scrobbles():
|
||||||
keys = request.query
|
keys = request.query
|
||||||
@ -290,6 +305,13 @@ def post_scrobble():
|
|||||||
def abouttoshutdown():
|
def abouttoshutdown():
|
||||||
sync()
|
sync()
|
||||||
#sys.exit()
|
#sys.exit()
|
||||||
|
|
||||||
|
|
||||||
|
####
|
||||||
|
## Server operation
|
||||||
|
####
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Starts the server
|
# Starts the server
|
||||||
def runserver(DATABASE_PORT):
|
def runserver(DATABASE_PORT):
|
||||||
@ -364,8 +386,17 @@ def sync():
|
|||||||
print("Database saved to disk.")
|
print("Database saved to disk.")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
####
|
||||||
|
## Database queries
|
||||||
|
####
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Queries the database
|
# Queries the database
|
||||||
def db_query(artist=None,track=None,since=0,to=9999999999):
|
def db_query(artist=None,track=None,since=None,to=None):
|
||||||
(since, to) = getTimestamps(since,to)
|
(since, to) = getTimestamps(since,to)
|
||||||
|
|
||||||
|
|
||||||
@ -384,7 +415,7 @@ def db_query(artist=None,track=None,since=0,to=9999999999):
|
|||||||
|
|
||||||
|
|
||||||
# Queries that... well... aggregate
|
# Queries that... well... aggregate
|
||||||
def db_aggregate(by=None,since=0,to=9999999999):
|
def db_aggregate(by=None,since=None,to=None):
|
||||||
(since, to) = getTimestamps(since,to)
|
(since, to) = getTimestamps(since,to)
|
||||||
|
|
||||||
if (by=="ARTIST"):
|
if (by=="ARTIST"):
|
||||||
@ -418,6 +449,29 @@ def db_aggregate(by=None,since=0,to=9999999999):
|
|||||||
return len([scr for scr in SCROBBLES if since < scr[1] < to])
|
return len([scr for scr in SCROBBLES if since < scr[1] < to])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Search for strings
|
||||||
|
def db_search(query,type=None):
|
||||||
|
if type=="ARTIST":
|
||||||
|
results = []
|
||||||
|
for a in ARTISTS:
|
||||||
|
if query.lower() in a.lower():
|
||||||
|
results.append(a)
|
||||||
|
|
||||||
|
if type=="TRACK":
|
||||||
|
results = []
|
||||||
|
for t in TRACKS:
|
||||||
|
if query.lower() in t[1].lower():
|
||||||
|
results.append(t)
|
||||||
|
|
||||||
|
return results
|
||||||
|
|
||||||
|
|
||||||
|
####
|
||||||
|
## Useful functions
|
||||||
|
####
|
||||||
|
|
||||||
|
|
||||||
# Takes user inputs like YYYY/MM and returns the timestamps. Returns timestamp if timestamp was already given.
|
# Takes user inputs like YYYY/MM and returns the timestamps. Returns timestamp if timestamp was already given.
|
||||||
def getTimestamps(f,t):
|
def getTimestamps(f,t):
|
||||||
#(f,t) = inp
|
#(f,t) = inp
|
||||||
@ -447,19 +501,15 @@ def getTimestamps(f,t):
|
|||||||
|
|
||||||
return (f,t)
|
return (f,t)
|
||||||
|
|
||||||
# Search for strings
|
|
||||||
def db_search(query,type=None):
|
|
||||||
if type=="ARTIST":
|
|
||||||
results = []
|
|
||||||
for a in ARTISTS:
|
|
||||||
if query.lower() in a.lower():
|
|
||||||
results.append(a)
|
|
||||||
|
|
||||||
if type=="TRACK":
|
def getArtistId(nameorid):
|
||||||
results = []
|
if isinstance(nameorid,int):
|
||||||
for t in TRACKS:
|
return nameorid
|
||||||
if query.lower() in t[1].lower():
|
else:
|
||||||
results.append(t)
|
try:
|
||||||
|
return ARTISTS.index(nameorid)
|
||||||
return results
|
except:
|
||||||
|
return -1
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user