From a973b596fa1e0b079918674cbb0619a4cc6a4f5a Mon Sep 17 00:00:00 2001 From: lifegpc Date: Fri, 12 Nov 2021 11:04:01 +0800 Subject: [PATCH] add remote-debug and timeout --- README.md | 4 ++++ fileEntry.py | 2 +- readset.py | 14 +++++++++++++- rssbot.py | 5 +++++ 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 21ba0d4..c257eb8 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ rssbotLib=rssbot.dll - [miraiApiHTTPAuthKey](#miraiapihttpauthkey) - [miraiApiQQ](#miraiapiqq) - [blackList](#blacklist) +- [downloadTimeOut](#downloadtimeout) ### token 必填参数。Telegram Bot API Token。向[@BotFather](https://t.me/BotFather)请求新建Bot,即可得到。 ### maxCount @@ -74,10 +75,13 @@ rssbotLib=rssbot.dll 可选参数。指定mirai-api-http的版本,只有当获取版本失败时采用该值。 ### blackList 可选参数。被封禁的用户/chat ID。被封禁的用户/chat无法与bot交互。可以使用`,`分隔两个不同的ID。 +### downloadTimeOut +可选参数。下载文件时超时时间。单位s。默认为10s。 ## 命令行参数 ```text --rebuild-hashlist 重建hashList --exit-after-rebuild 再重建hashList后退出 -c/--config 从指定文件中读取配置 +--remote-debug 启用远程调试 ``` diff --git a/fileEntry.py b/fileEntry.py index 1d9727f..0f2ee1b 100644 --- a/fileEntry.py +++ b/fileEntry.py @@ -80,7 +80,7 @@ class FileEntry: mkdir(self._tempdir) self._abspath = abspath(f'Temp/{self._fn}{self._ext}') try: - self._r = get(url, stream=True) + self._r = get(url, stream=True, timeout=self._m._setting.downloadTimeOut) if self._r.ok: with open(self._abspath, 'wb') as f: for chunk in self._r.iter_content(1024): diff --git a/readset.py b/readset.py index 29a858b..fdbb4f4 100644 --- a/readset.py +++ b/readset.py @@ -58,6 +58,7 @@ class settings: self._miraiApiQQ = int(d['miraiApiQQ']) if 'miraiApiQQ' in d and d['miraiApiQQ'].isnumeric() else None self._miraiApiHTTPVer = d['miraiApiHTTPVer'] if 'miraiApiHTTPVer' in d and d['miraiApiHTTPVer'] != '' else None self._blackList = d['blackList'] if 'blackList' in d and d['blackList'] != '' else None + self._downloadTimeOut = int(d['downloadTimeOut']) if 'downloadTimeOut' in d and d['downloadTimeOut'].isnumeric() else 10 @property def token(self) -> str: @@ -119,18 +120,23 @@ class settings: def miraiApiHTTPVer(self) -> str: return self._miraiApiHTTPVer + @property + def downloadTimeOut(self) -> int: + return self._downloadTimeOut + class commandline: def __init__(self, commandline: List[str] = None): self._config = 'settings.txt' self._rebuildHashlist = False self._exitAfterRebuild = False + self._remoteDebug = False if commandline is not None: self.parse(commandline) def parse(self, commandline: List[str]): cml = getopt(commandline, 'c:', [ - 'rebuild-hashlist', 'exit-after-rebuild', 'config=']) + 'rebuild-hashlist', 'exit-after-rebuild', 'config=', 'remote-debug']) for i in cml[0]: if i[0] in ['-c', '--config']: self._config = i[1] @@ -138,6 +144,8 @@ class commandline: self._rebuildHashlist = True if i[0] == '--exit-after-rebuild': self._exitAfterRebuild = True + if i[0] == '--remote-debug': + self._remoteDebug = True @property def rebuildHashlist(self): @@ -151,3 +159,7 @@ class commandline: @property def exitAfterRebuild(self): return self._exitAfterRebuild + + @property + def remoteDebug(self): + return self._remoteDebug diff --git a/rssbot.py b/rssbot.py index 41db858..43bcb5c 100644 --- a/rssbot.py +++ b/rssbot.py @@ -641,6 +641,11 @@ class main: self._commandLine = commandline() if len(sys.argv) > 1: self._commandLine.parse(sys.argv[1:]) + if self._commandLine.remoteDebug: + import debugpy + debugpy.listen(('0.0.0.0', 4500)) + print("Waiting for debugger attach") + debugpy.wait_for_client() if not exists('settings.txt'): print('找不到settings.txt') return -1