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}刚刚开播,去下载')