X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Flib%2Fsimadb.py;h=430e9c39fc2c141f13079b06eb5163a24dbb375a;hb=92860d5ab0d6008fad149eea960de91acd15719a;hp=284f11562cbed58801eef6816d24d768e801c255;hpb=57621c64288a742232b379b53bfe5fce34959535;p=mpd-sima.git diff --git a/sima/lib/simadb.py b/sima/lib/simadb.py index 284f115..430e9c3 100644 --- a/sima/lib/simadb.py +++ b/sima/lib/simadb.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- - +# # Copyright (c) 2009-2013 Jack Kaliko # Copyright (c) 2009, Eric Casteleijn # Copyright (c) 2008 Rick van Hattem @@ -20,6 +20,8 @@ # along with sima. If not, see . # # +"""SQlite database library +""" # DOC: # MuscicBrainz ID: @@ -27,7 +29,7 @@ # __DB_VERSION__ = 2 -__HIST_DURATION__ = int(7 * 24) # in hours +__HIST_DURATION__ = int(30 * 24) # in hours import sqlite3 @@ -67,6 +69,7 @@ class SimaDB(object): self.db_path_mod_control() def db_path_mod_control(self): + """Controls DB path access & write permissions""" db_path = self._db_path # Controls directory access if not isdir(dirname(db_path)): @@ -347,7 +350,7 @@ class SimaDB(object): """Retrieve complete play history, most recent tracks first artist : filter history for specific artist artists : filter history for specific artists list - """ + """ # pylint: disable=C0301 date = datetime.utcnow() - timedelta(hours=duration) connection = self.get_database_connection() if artist: @@ -380,7 +383,8 @@ class SimaDB(object): yield ('Row ID', 'Artist',) for row in rows: yield row - rows = connection.execute('SELECT black_list.rowid, albums.name, artists.name' + rows = connection.execute( + 'SELECT black_list.rowid, albums.name, artists.name' ' FROM artists, albums INNER JOIN black_list' ' ON albums.id = black_list.album' ' WHERE artists.id = albums.artist') @@ -388,7 +392,8 @@ class SimaDB(object): yield ('Row ID', 'Album', 'Artist name') for row in rows: yield row - rows = connection.execute('SELECT black_list.rowid, tracks.name, artists.name' + rows = connection.execute( + 'SELECT black_list.rowid, tracks.name, artists.name' ' FROM artists, tracks INNER JOIN black_list' ' ON tracks.id = black_list.track' ' WHERE tracks.artist = artists.id') @@ -522,9 +527,11 @@ class SimaDB(object): """Add to history""" connection = self.get_database_connection() track_id = self.get_track(track, with_connection=connection)[0] - rows = connection.execute("SELECT * FROM history WHERE track = ? ", (track_id,)) + rows = connection.execute("SELECT * FROM history WHERE track = ? ", + (track_id,)) if not rows.fetchone(): - connection.execute("INSERT INTO history (track) VALUES (?)", (track_id,)) + connection.execute("INSERT INTO history (track) VALUES (?)", + (track_id,)) connection.execute("UPDATE history SET last_play = DATETIME('now') " " WHERE track = ?", (track_id,)) connection.commit() @@ -599,7 +606,7 @@ class SimaDB(object): "SELECT artist FROM albums")] + [row[0] for row in connection.execute( "SELECT artist FROM tracks")]) - orphans = [ (orphan,) for orphan in artists_ids - artist_2_artist_ids ] + orphans = [(orphan,) for orphan in artists_ids - artist_2_artist_ids] connection.executemany('DELETE FROM artists WHERE id = (?);', orphans) if not with_connection: connection.commit() @@ -619,7 +626,7 @@ class SimaDB(object): """SELECT albums.id FROM albums LEFT JOIN tracks ON albums.id = tracks.album WHERE tracks.album IS NULL""")]) - orphans = [ (orphan,) for orphan in orphan_black_ids & orphan_tracks_ids ] + orphans = [(orphan,) for orphan in orphan_black_ids & orphan_tracks_ids] connection.executemany('DELETE FROM albums WHERE id = (?);', orphans) if not with_connection: connection.commit() @@ -639,7 +646,7 @@ class SimaDB(object): """SELECT tracks.id FROM tracks LEFT JOIN black_list ON tracks.id = black_list.track WHERE black_list.track IS NULL""")]) - orphans = [ (orphan,) for orphan in hist_orphan_ids & black_list_orphan_ids ] + orphans = [(orphan,) for orphan in hist_orphan_ids & black_list_orphan_ids] connection.executemany('DELETE FROM tracks WHERE id = (?);', orphans) if not with_connection: connection.commit() @@ -668,6 +675,7 @@ class SimaDB(object): self.close_database_connection(connection) def _set_dbversion(self): + """Add db version""" connection = self.get_database_connection() connection.execute('INSERT INTO db_info (version, name) VALUES (?, ?)', (__DB_VERSION__, 'Sima DB')) @@ -704,13 +712,13 @@ class SimaDB(object): 'CREATE TABLE IF NOT EXISTS history (last_play DATE,' ' track integer)') connection.execute( - "CREATE INDEX IF NOT EXISTS a2aa1x ON usr_artist_2_artist (artist1)") + "CREATE INDEX IF NOT EXISTS a2aa1x ON usr_artist_2_artist (artist1)") connection.execute( - "CREATE INDEX IF NOT EXISTS a2aa2x ON usr_artist_2_artist (artist2)") + "CREATE INDEX IF NOT EXISTS a2aa2x ON usr_artist_2_artist (artist2)") connection.execute( - "CREATE INDEX IF NOT EXISTS lfma2aa1x ON lfm_artist_2_artist (artist1)") + "CREATE INDEX IF NOT EXISTS lfma2aa1x ON lfm_artist_2_artist (artist1)") connection.execute( - "CREATE INDEX IF NOT EXISTS lfma2aa2x ON lfm_artist_2_artist (artist2)") + "CREATE INDEX IF NOT EXISTS lfma2aa2x ON lfm_artist_2_artist (artist2)") connection.commit() self.close_database_connection(connection) self._set_dbversion()