From 0f5d2176bc0633bd6e2f6ca4c7e738bb1ccce277 Mon Sep 17 00:00:00 2001 From: ForgQi <34411314+ForgQi@users.noreply.github.com> Date: Tue, 15 Mar 2022 00:50:35 +0800 Subject: [PATCH] Add {title} --- biliup/downloader.py | 6 +++--- biliup/engine/download.py | 2 +- biliup/handler.py | 21 ++++++++++++++++----- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/biliup/downloader.py b/biliup/downloader.py index 9e77bfd..467eca5 100644 --- a/biliup/downloader.py +++ b/biliup/downloader.py @@ -10,15 +10,15 @@ logger = logging.getLogger('biliup') def download(fname, url, **kwargs): + pg = general.__plugin__(fname, url) for plugin in Plugin.download_plugins: if re.match(plugin.VALID_URL_BASE, url): pg = plugin(fname, url) for k in pg.__dict__: if kwargs.get(k): pg.__dict__[k] = kwargs.get(k) - pg.start() - return - general.__plugin__(fname, url).start() + break + return pg.start() def check_url(plugin, secs=15): diff --git a/biliup/engine/download.py b/biliup/engine/download.py index eb916c2..da8c0ba 100644 --- a/biliup/engine/download.py +++ b/biliup/engine/download.py @@ -89,8 +89,8 @@ class DownloadBase: elif ret == 1: time.sleep(45) i += 1 - logger.info(f'退出下载{i}: {self.fname}') + return {'title': self.room_title} @staticmethod def rename(file_name): diff --git a/biliup/handler.py b/biliup/handler.py index 5240b8b..54fcb0c 100644 --- a/biliup/handler.py +++ b/biliup/handler.py @@ -39,24 +39,31 @@ event_manager = create_event_manager() @event_manager.register(DOWNLOAD, block='Asynchronous1') def process(name, url): date = common.time_now(config['streamers'][name].get('title')) + stream_info = { + 'name': name, + 'url': url, + 'date': date + } try: kwargs = config['streamers'][name].copy() kwargs.pop('url') suffix = kwargs.get('format') if suffix: kwargs['suffix'] = suffix - download(name, url, **kwargs) + info = download(name, url, **kwargs) + stream_info = {**stream_info, **info} finally: - return Event(UPLOAD, (name, url, date)) + return Event(UPLOAD, (stream_info,)) @event_manager.register(UPLOAD, block='Asynchronous2') -def process_upload(name, url, date): +def process_upload(stream_info): + name, url, date = stream_info['name'], stream_info['url'], stream_info['date'] yield Event(BE_MODIFIED, (url, 2)) try: data = {"url": url, "date": date} if config['streamers'][name].get('title'): - data["format_title"] = date + data["format_title"] = date.format(title=stream_info.get('title')) upload(config.get("uploader") if config.get("uploader") else "bili_web", name, data) finally: yield Event(BE_MODIFIED, args=(url, 0)) @@ -96,7 +103,11 @@ class KernelFunc: def free_upload(self): for title, urls in self.streamer_url.items(): if self.free(urls) and UploadBase.filter_file(title): - yield Event(UPLOAD, args=(title, urls[0], common.time_now(config['streamers'][title].get('title')))) + yield Event(UPLOAD, args=({ + 'name': title, + 'url': urls[0], + 'date': common.time_now(config['streamers'][title].get('title')) + },)) @event_manager.register(BE_MODIFIED) def revise(self, url, status):