From 163c5e040f5c0fc337df14832bb6579a00efb4e9 Mon Sep 17 00:00:00 2001 From: haha114514 <47912037+haha114514@users.noreply.github.com> Date: Tue, 21 Feb 2023 00:03:29 +1100 Subject: [PATCH] =?UTF-8?q?=E8=AE=A9=E5=BC=80=E5=A7=8B=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E4=B9=8B=E5=90=8E=E5=B0=B1=E4=B8=8D=E5=86=8D=E5=8F=8D=E5=A4=8D?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=96=B0=E7=9A=84=E4=B8=8B=E8=BD=BD=E9=93=BE?= =?UTF-8?q?=E6=8E=A5=EF=BC=8C=E9=81=BF=E5=85=8D=E8=A2=ABAPI=E9=99=90?= =?UTF-8?q?=E5=88=B6=E3=80=82=20(#340)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 让开始下载之后就不再反复获取新的下载链接,避免被API限制。 * Update handler.py * Update handler.py * Update handler.py * Update downloader.py --- biliup/downloader.py | 5 ++++- biliup/handler.py | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/biliup/downloader.py b/biliup/downloader.py index 467eca5..8ee4897 100644 --- a/biliup/downloader.py +++ b/biliup/downloader.py @@ -21,13 +21,16 @@ def download(fname, url, **kwargs): return pg.start() -def check_url(plugin, secs=15): +def check_url(plugin, url_status, secs=15): try: if isinstance(plugin, BatchCheckBase): return (yield from plugin.check()) for url in plugin.url_list: if plugin(f'检测{url}', url).check_stream(): yield url + if url_status[url] == 1: + logger.debug(f'{url}正在下载中,已跳过检测') + continue if url != plugin.url_list[-1]: logger.debug('歇息会') time.sleep(secs) diff --git a/biliup/handler.py b/biliup/handler.py index af2aa78..376f1cb 100644 --- a/biliup/handler.py +++ b/biliup/handler.py @@ -78,7 +78,7 @@ class KernelFunc: def singleton_check(self, platform): plugin = self.checker[platform] wait = config.get('checker_sleep') if config.get('checker_sleep') else 15 - for url in check_url(plugin, secs=wait): + for url in check_url(plugin, self.url_status, secs=wait): yield Event(TO_MODIFY, args=(url,)) @event_manager.register(TO_MODIFY) @@ -90,6 +90,7 @@ class KernelFunc: if self.url_status[url] == 2: return logger.debug('正在上传稍后下载') name = self.inverted_index[url] + if config['streamers'].get(name, {}).get('preprocessor', None): preprocessor(config['streamers'].get(name, {}).get('preprocessor')) logger.debug(f'{name}刚刚开播,去下载')