fix: small fixes.

This commit is contained in:
Terry Geng 2020-03-06 16:38:43 +08:00
parent e70727cfd1
commit 3bfc0ae5a9
3 changed files with 27 additions and 22 deletions

View File

@ -46,11 +46,10 @@ class FileItem(BaseItem):
self.title = ""
self.artist = ""
self.thumbnail = None
if self.path:
self.id = hashlib.md5(path.encode()).hexdigest()
if os.path.exists(self.uri()):
self._get_info_from_tag()
self.ready = "yes"
self.id = hashlib.md5(path.encode()).hexdigest()
if os.path.exists(self.uri()):
self._get_info_from_tag()
self.ready = "yes"
else:
super().__init__(bot, from_dict)
self.path = from_dict['path']

View File

@ -6,12 +6,13 @@ import traceback
from PIL import Image
import youtube_dl
import glob
from io import BytesIO
import base64
import constants
import media
import variables as var
from media.item import item_builders, item_loaders, item_id_generators
from media.file import FileItem
from media.item import BaseItem, item_builders, item_loaders, item_id_generators
import media.system
log = logging.getLogger("bot")
@ -30,30 +31,24 @@ item_loaders['url'] = url_item_loader
item_id_generators['url'] = url_item_id_generator
class URLItem(FileItem):
class URLItem(BaseItem):
def __init__(self, bot, url, from_dict=None):
self.validating_lock = threading.Lock()
if from_dict is None:
super().__init__(bot, "")
self.url = url if url[-1] != "/" else url[:-1]
self.title = ''
self.duration = 0
self.ready = 'pending'
super().__init__(bot, "")
self.id = hashlib.md5(url.encode()).hexdigest()
path = var.tmp_folder + self.id + ".mp3"
if os.path.isfile(path):
self.log.info("url: file existed for url %s " % self.url)
self.ready = 'yes'
self.path = path
self._get_info_from_tag()
else:
# self._get_info_from_url()
pass
self.path = var.tmp_folder + self.id + ".mp3"
self.thumbnail = ''
else:
super().__init__(bot, "", from_dict)
super().__init__(bot, from_dict)
self.url = from_dict['url']
self.duration = from_dict['duration']
self.path = from_dict['path']
self.title = from_dict['title']
self.thumbnail = from_dict['thumbnail']
self.downloading = False
self.type = "url"
@ -195,11 +190,21 @@ class URLItem(FileItem):
im = Image.open(path_thumbnail)
self.thumbnail = self._prepare_thumbnail(im)
def _prepare_thumbnail(self, im):
im.thumbnail((100, 100), Image.ANTIALIAS)
buffer = BytesIO()
im = im.convert('RGB')
im.save(buffer, format="JPEG")
return base64.b64encode(buffer.getvalue()).decode('utf-8')
def to_dict(self):
dict = super().to_dict()
dict['type'] = 'url'
dict['url'] = self.url
dict['duration'] = self.duration
dict['path'] = self.path
dict['title'] = self.title
dict['thumbnail'] = self.thumbnail
return dict

View File

@ -424,7 +424,8 @@ class MumbleBot:
if self.exit:
self._loop_status = "exited"
if var.config.getboolean('bot', 'save_playlist', fallback=True):
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()