fix: minor fixes

This commit is contained in:
Terry Geng 2020-03-06 17:03:00 +08:00
parent 3bfc0ae5a9
commit 1f22d3b1a9
5 changed files with 23 additions and 13 deletions

View File

@ -275,7 +275,7 @@ def cmd_play_url(bot, user, text, command, parameter):
global log global log
url = util.get_url_from_input(parameter) url = util.get_url_from_input(parameter)
music_wrapper = get_item_wrapper(bot, type='url', url=url) music_wrapper = get_item_wrapper(bot, type='url', url=url, user=user)
var.playlist.append(music_wrapper) var.playlist.append(music_wrapper)
log.info("cmd: add to playlist: " + music_wrapper.format_debug_string()) log.info("cmd: add to playlist: " + music_wrapper.format_debug_string())
@ -296,9 +296,10 @@ def cmd_play_playlist(bot, user, text, command, parameter):
url = util.get_url_from_input(parameter) url = util.get_url_from_input(parameter)
log.debug("cmd: fetching media info from playlist url %s" % url) log.debug("cmd: fetching media info from playlist url %s" % url)
items = get_playlist_info(bot, url=url, start_index=offset, user=user) items = get_playlist_info(url=url, start_index=offset, user=user)
if len(items) > 0: if len(items) > 0:
var.playlist.extend(list(map(lambda item: PlaylistItemWrapper(item, user), items))) items = var.playlist.extend(list(map(
lambda item: get_item_wrapper(bot, **item), items)))
for music in items: for music in items:
log.info("cmd: add to playlist: " + music.format_debug_string()) log.info("cmd: add to playlist: " + music.format_debug_string())
else: else:

View File

@ -83,7 +83,10 @@ def get_item_wrapper(bot, **kwargs):
def get_item_wrapper_by_id(bot, id, user): def get_item_wrapper_by_id(bot, id, user):
item = var.library.get_item_by_id(bot, id) item = var.library.get_item_by_id(bot, id)
return PlaylistItemWrapper(var.library, item.id, item.type, user) if item:
return PlaylistItemWrapper(var.library, item.id, item.type, user)
else:
return None
def get_playlist(mode, _list=None, index=None): def get_playlist(mode, _list=None, index=None):
if _list and index is None: if _list and index is None:

View File

@ -35,7 +35,7 @@ class URLItem(BaseItem):
def __init__(self, bot, url, from_dict=None): def __init__(self, bot, url, from_dict=None):
self.validating_lock = threading.Lock() self.validating_lock = threading.Lock()
if from_dict is None: if from_dict is None:
super().__init__(bot, "") super().__init__(bot)
self.url = url if url[-1] != "/" else url[:-1] self.url = url if url[-1] != "/" else url[:-1]
self.title = '' self.title = ''
self.duration = 0 self.duration = 0

View File

@ -6,7 +6,7 @@ import hashlib
from media.item import item_builders, item_loaders, item_id_generators from media.item import item_builders, item_loaders, item_id_generators
from media.url import URLItem, url_item_id_generator from media.url import URLItem, url_item_id_generator
def get_playlist_info(bot, url, start_index=0, user=""): def get_playlist_info(url, start_index=0, user=""):
items = [] items = []
ydl_opts = { ydl_opts = {
'extract_flat': 'in_playlist' 'extract_flat': 'in_playlist'
@ -36,13 +36,14 @@ def get_playlist_info(bot, url, start_index=0, user=""):
else "https://www.youtube.com/watch?v=" + info['entries'][j]['url'] else "https://www.youtube.com/watch?v=" + info['entries'][j]['url']
print(info['entries'][j]) print(info['entries'][j])
music = PlaylistURLItem( music = {
bot, "type": "url_from_playlist",
item_url, "url": item_url,
title, "title": title,
url, "playlist_url": url,
playlist_title "playlist_title": playlist_title,
) "user": user
}
items.append(music) items.append(music)
except: except:

View File

@ -170,6 +170,11 @@ class MumbleBot:
sys.exit(0) sys.exit(0)
self.nb_exit += 1 self.nb_exit += 1
if var.config.getboolean('bot', 'save_playlist', fallback=True) \
and var.config.get("bot", "save_music_library", fallback=True):
self.log.info("bot: save playlist into database")
var.playlist.save()
def check_update(self): def check_update(self):
self.log.debug("update: checking for updates...") self.log.debug("update: checking for updates...")
new_version = util.new_release_version() new_version = util.new_release_version()