feat: some tags function

This commit is contained in:
Terry Geng
2020-03-07 16:07:58 +08:00
parent 659fab48b4
commit 749647aad2
7 changed files with 114 additions and 7 deletions

View File

@ -19,7 +19,7 @@ class PlaylistItemWrapper:
self.user = user
self.type = type
self.log = logging.getLogger("bot")
self.version = 1
self.version = 0
def item(self):
return self.lib[self.id]
@ -55,6 +55,18 @@ class PlaylistItemWrapper:
def uri(self):
return self.item().uri()
def add_tag(self, tag):
self.item().add_tag(tag)
if self.item().version > self.version:
self.version = self.item().version
self.lib.save(self.id)
def remove_tag(self, tag):
self.item().remove_tag(tag)
if self.item().version > self.version:
self.version = self.item().version
self.lib.save(self.id)
def is_ready(self):
return self.item().is_ready()
@ -88,6 +100,13 @@ def get_item_wrapper_by_id(bot, id, user):
else:
return None
def get_item_wrappers_by_tags(bot, tags, user):
items = var.library.get_items_by_tags(bot, tags)
ret = []
for item in items:
ret.append(PlaylistItemWrapper(var.library, item.id, item.type, user))
return ret
def get_playlist(mode, _list=None, index=None):
if _list and index is None:
index = _list.current_index