From 955ef8cf8a88cbc2d04f3aacdd0655da8af2fcd1 Mon Sep 17 00:00:00 2001 From: David Trattnig <david.trattnig@o94.at> Date: Thu, 21 Nov 2019 02:25:29 +0100 Subject: [PATCH] Linting, cleanup and fixes. --- aura.py | 18 +++------ modules/communication/redis/adapter.py | 4 -- modules/scheduling/calendar.py | 51 +++++++++++++++----------- 3 files changed, 35 insertions(+), 38 deletions(-) diff --git a/aura.py b/aura.py index 9861ebbf..29dcfa4a 100755 --- a/aura.py +++ b/aura.py @@ -54,8 +54,6 @@ def get_database_uri(): db_pass = config.get("db_pass") db_host = config.get("db_host") db_charset = config.get("db_charset", "utf8") - - #### return created database uri #### return "mysql://" + db_user + ":" + db_pass + "@" + db_host + "/" + db_name + "?charset=" + db_charset @@ -82,11 +80,8 @@ class Aura: # ------------------------------------------------------------------------------------------ # def __init__(self): - # set config self.config = config - # init logger AuraLogger(self.config) - # use logger self.logger = logging.getLogger("AuraEngine") def startup(self): @@ -98,7 +93,6 @@ class Aura: AuraScheduler(self.config) # handles recreate and exits program - # self.controller = AuraController(self.config) # create scheduler and ls_communicator self.liquidsoapcommunicator = LiquidSoapCommunicator(self.config) self.scheduler = AuraScheduler(self.config) @@ -112,21 +106,20 @@ class Aura: self.messenger.scheduler = self.scheduler self.messenger.liquidsoapcommunicator = self.liquidsoapcommunicator + # FIXME Check if it's working / needed. #self.diskspace_watcher = DiskSpaceWatcher(self.config, self.logger, self.liquidsoapcommunicator) #self.diskspace_watcher.start() - # and finally wait for redis message - self.join_comm() + # and finally wait for redis message / start listener thread + self.messenger.start() # start the web service self.start_web_service() - def join_comm(self): - # start listener thread - self.messenger.start() def start_web_service(self): + # FIXME Test current state of Web Services try: self.logger.info("Listening on Port 5000 for API or Webcalls") # Routes(self.scheduler, self.liquidsoapcommunicator, self.messenger, self.config) @@ -142,6 +135,7 @@ class Aura: def main(): aura = Aura() + # FIXME MAKE THE STARTTIME OF A SCHEDULE TO ITS PK aura.logger.critical("MAKE THE STARTTIME OF A SCHEDULE TO ITS PK") @@ -149,7 +143,7 @@ def main(): if "--use-test-data" in sys.argv: aura.config.set("use_test_data", True) if "--recreate-database" in sys.argv: - aura.config.set("recreate_db", True); + aura.config.set("recreate_db", True) aura.startup() diff --git a/modules/communication/redis/adapter.py b/modules/communication/redis/adapter.py index b89978a5..5406ae1d 100644 --- a/modules/communication/redis/adapter.py +++ b/modules/communication/redis/adapter.py @@ -223,10 +223,6 @@ class ServerRedisAdapter(threading.Thread, RedisMessenger): """ if self.shutdown_event.is_set(): return - try: - del self.auracontroller - except: - pass self.shutdown_event.set() result = 'failed' try: diff --git a/modules/scheduling/calendar.py b/modules/scheduling/calendar.py index 2bb4fd3d..4f394a49 100644 --- a/modules/scheduling/calendar.py +++ b/modules/scheduling/calendar.py @@ -105,21 +105,23 @@ class AuraCalendarService(threading.Thread): return self.queue # ------------------------------------------------------------------------------------------ # - def get_uri(self): - if not self.playlistdir: - return False - if not self.datefrom: - return False - if not self.__calc_date_to__(): - return - - hostname = self.get("servername"); - port = self.get("serviceport"); - date_from = self.datefrom[0:16] + ":00"; - date_to = self.dateto[0:16] + ":00"; - uri = "http://" + hostname + ":" + port + "/playlist/" + date_from + "/" + date_to - - return uri + # FIXME is get_uri() needed? + + # def get_uri(self): + # if not self.playlistdir: + # return False + # if not self.datefrom: + # return False + # if not self.__calc_date_to__(): + # return + + # hostname = self.get("servername") + # port = self.get("serviceport") + # date_from = self.datefrom[0:16] + ":00" + # date_to = self.dateto[0:16] + ":00" + # uri = "http://" + hostname + ":" + port + "/playlist/" + date_from + "/" + date_to + + # return uri # ------------------------------------------------------------------------------------------ # def run(self): @@ -161,6 +163,7 @@ class AuraCalendarService(threading.Thread): self.queue.put(ret_schedule) except Exception as e: # release the mutex + self.logger.warning("Fetching aborted due to: %s" % str(e)) self.queue.put("fetching_aborted " + str(e)) # terminate the thread @@ -246,7 +249,6 @@ class AuraCalendarService(threading.Thread): playlistentry_db.uri = entry["uri"] playlistentry_db.filename = entry["filename"] playlistentry_db.duration = entry["file"]["duration"] - playlistentry_db.store(havetoadd, True) self.store_playlist_entry_metadata(playlistentry_db, entry["file"]["metadata"]) @@ -261,12 +263,16 @@ class AuraCalendarService(threading.Thread): havetoadd = True playlistentrymetadata_db.artificial_entry_id = playlistentry_db.artificial_id - playlistentrymetadata_db.artist = metadata["artist"] + if "artist" not in metadata: + self.logger.warning("Artist not found in metadata for track '%s'. Setting to 'N/a'" % playlistentry_db.filename) + playlistentrymetadata_db.artist = "N/a" + else: + playlistentrymetadata_db.artist = metadata["artist"] playlistentrymetadata_db.title = metadata["title"] if "album" in metadata: playlistentrymetadata_db.album = metadata["album"] - playlistentrymetadata_db.store(havetoadd, True); + playlistentrymetadata_db.store(havetoadd, True) # ------------------------------------------------------------------------------------------ # def store_playlist_entry(self, schedule_db, playlist, entry, lastentry, entrynum, fallbackplaylist_type=0): @@ -275,7 +281,8 @@ class AuraCalendarService(threading.Thread): if not schedule_entry_db: self.logger.debug("no scheduleentry with id " + str(playlist["id"]) + " and pos " + str(entrynum) + " in database => creating a new one") - schedule_entry_db = ScheduleEntry() + # FIXME Needed? No active class declaration + #schedule_entry_db = ScheduleEntry() havetoadd = True @@ -325,9 +332,9 @@ class AuraCalendarService(threading.Thread): @rtype: int @return: Zeit in Sekunden """ - sec1 = int(datetime.strptime(start[0:16].replace(" ","T"),"%Y-%m-%dT%H:%M").strftime("%s")); - sec2 = int(datetime.strptime(end[0:16].replace(" ","T"),"%Y-%m-%dT%H:%M").strftime("%s")); - return (sec2 - sec1); + sec1 = int(datetime.strptime(start[0:16].replace(" ","T"),"%Y-%m-%dT%H:%M").strftime("%s")) + sec2 = int(datetime.strptime(end[0:16].replace(" ","T"),"%Y-%m-%dT%H:%M").strftime("%s")) + return (sec2 - sec1) # ------------------------------------------------------------------------------------------ # def get_length(self, entry): -- GitLab