feat: added special tag 'recent added'

This commit is contained in:
Terry Geng 2020-03-21 00:37:12 +08:00
parent 575d363de3
commit 51238b191b
2 changed files with 19 additions and 2 deletions

View File

@ -246,6 +246,7 @@ class MusicDatabase:
self.db_path = db_path
self.db_version_check_and_create()
self.manage_special_tags()
def has_table(self, table):
conn = sqlite3.connect(self.db_path)
@ -298,8 +299,6 @@ class MusicDatabase:
else:
self.create_table()
def insert_music(self, music_dict):
conn = sqlite3.connect(self.db_path)
cursor = conn.cursor()
@ -373,6 +372,15 @@ class MusicDatabase:
return self._result_to_dict(results)
def _query_music_by_plain_sql_cond(self, sql_cond):
conn = sqlite3.connect(self.db_path)
cursor = conn.cursor()
results = cursor.execute("SELECT id, type, title, metadata, tags, path, keywords FROM music "
"WHERE %s" % sql_cond).fetchall()
conn.close()
return self._result_to_dict(results)
def query_music_by_id(self, _id):
results = self.query_music(Condition().and_equal("id", _id))
if results:
@ -396,6 +404,14 @@ class MusicDatabase:
return self.query_music(condition)
def manage_special_tags(self):
for tagged_recent in self.query_music_by_tags(['recent added']):
tagged_recent.tags.remove('recent added')
recent_items = self._query_music_by_plain_sql_cond("id != 'info' AND create_at > date('now', '-1 day')")
for recent_item in recent_items:
recent_item['tags'].append('recent added')
self.insert_music(recent_item)
def query_tags(self, condition):
# TODO: Can we keep a index of tags?
conn = sqlite3.connect(self.db_path)

View File

@ -83,6 +83,7 @@ class MusicCache(dict):
def save(self, id):
self.log.debug("library: music save into database: %s" % self[id].format_debug_string())
self.db.insert_music(self[id].to_dict())
self.db.manage_special_tags()
def free_and_delete(self, id):
item = self.get_item_by_id(None, id)