X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Flib%2Fsimadb.py;h=a7ce7597d80050d00c006f493478c42b9410197d;hb=1b5cfb4c9187df891bd840b51c044d72ad0077d5;hp=280b23d228a8f885b3449920ca61f4f0f542fa20;hpb=2eb13c85fe72ade75193b589748920615fbb22d2;p=mpd-sima.git diff --git a/sima/lib/simadb.py b/sima/lib/simadb.py index 280b23d..a7ce759 100644 --- a/sima/lib/simadb.py +++ b/sima/lib/simadb.py @@ -187,7 +187,7 @@ class SimaDB(object): """ get album information from the database. if not in database insert new entry. - Attention: use Track() object!! + Attention: use Track|Album object!! Use AlbumArtist tag if provided, fallback to Album tag """ if with_connection: @@ -346,6 +346,24 @@ class SimaDB(object): self.close_database_connection(connection) return False + def get_artists_history(self, artists, duration=__HIST_DURATION__): + """ + """ + date = datetime.utcnow() - timedelta(hours=duration) + connection = self.get_database_connection() + rows = connection.execute( + "SELECT arts.name, albs.name, trs.name, trs.file" + " FROM artists AS arts, tracks AS trs, history AS hist, albums AS albs" + " WHERE trs.id = hist.track AND trs.artist = arts.id AND trs.album = albs.id" + " AND hist.last_play > ? ORDER BY hist.last_play DESC", (date.isoformat(' '),)) + for row in rows: + if artists and row[0] not in artists: + continue + for art in artists: + if row[0] == art: + yield art + self.close_database_connection(connection) + def get_history(self, artist=None, artists=None, duration=__HIST_DURATION__): """Retrieve complete play history, most recent tracks first artist : filter history for specific artist