让开始下载之后就不再反复获取新的下载链接,避免被API限制。 (#340)

* 让开始下载之后就不再反复获取新的下载链接,避免被API限制。

* Update handler.py

* Update handler.py

* Update handler.py

* Update downloader.py
This commit is contained in:
haha114514 authored and GitHub committed 2023-02-20 13:03:29 +00:00
1 parent 5fd3bbfb3e
commit 163c5e040f
2 files changed
+6 -2

No files matched your search

+4 -1
View File
@@ -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)
+2 -1
View File
@@ -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}刚刚开播,去下载')