[2022-10-21 10:09:39] ERROR 在导入文件 "core.sign.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.admin.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.user.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.cookies.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.quiz.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] [2022-10-21 10:11:33] ERROR 在导入文件 "core.sign.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.admin.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.user.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.cookies.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.quiz.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] [2022-10-21 10:15:11] ERROR 在导入文件 "core.sign.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.admin.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.user.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.cookies.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.quiz.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] [2022-10-21 10:42:57] ERROR 在导入文件 "core.sign.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.admin.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.user.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.cookies.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.quiz.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] [2022-10-21 10:51:26] INFO 正在初始化BOT core.bot 234 [2022-10-21 10:51:31] WARNING 连接至 telegram 服务器失败,正在重试 core.bot 249 [2022-10-21 10:51:36] WARNING 连接至 telegram 服务器失败,正在重试 core.bot 249 INFO BOT 已经关闭 core.bot 266 [2022-10-21 10:56:44] INFO 正在初始化BOT core.bot 234 [2022-10-21 10:56:49] WARNING 连接至 telegram 服务器失败,正在重试 core.bot 249 [2022-10-21 10:56:54] WARNING 连接至 telegram 服务器失败,正在重试 core.bot 249 [2022-10-21 10:56:56] INFO BOT 已经关闭 core.bot 266 [2022-10-21 10:57:42] INFO 正在初始化BOT core.bot 234 [2022-10-21 10:57:48] WARNING 连接至 telegram 服务器失败,正在重试 core.bot 249 INFO BOT 已经关闭 core.bot 266 [2022-10-21 11:15:18] INFO 正在初始化BOT core.bot 234 [2022-10-21 11:15:22] INFO 开始初始化 genshin.py 相关资源 core.bot 208 [2022-10-21 11:15:23] SUCCESS 初始化 genshin.py 相关资源成功 core.bot 223 INFO 开始初始化服务 core.bot 225 [2022-10-21 11:15:24] SUCCESS 服务 "WebServer" 初始化成功 core.bot 168 SUCCESS 服务 "MySQL" 初始化成功 core.bot 168 INFO 正在尝试建立与 Redis 连接 core.base.redisdb 33 INFO Started server process [280235] uvicorn.server 75 INFO Waiting for application startup. uvicorn.lifespan.on 47 INFO Application startup complete. uvicorn.lifespan.on 61 INFO 连接 Redis 成功 core.base.redisdb 25 SUCCESS 服务 "RedisDB" 初始化成功 core.bot 168 INFO MTProto 服务需要的 pyrogram 模块未导入 本次服务 client 为 None core.base.mtproto 47 SUCCESS 服务 "MTProto" 初始化成功 core.bot 168 INFO 正在刷新元数据 core.base.assets 492 INFO Uvicorn running on http://localhost:8080 (Press CTRL+C to quit) uvicorn.server 207 [2022-10-21 11:15:30] INFO 127.0.0.1:50890 - "GET / HTTP/1.1" 200 uvicorn.protocols.http.httptools_impl 474 [2022-10-21 11:15:31] ERROR 服务 "AssetsService" 初始化失败: peer closed connection without sending complete message body (received 64719 bytes, expected core.bot 171 10563527) ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_exceptions.py:8 in │ │ map_exceptions │ │ │ │ 5 @contextlib.contextmanager │ │ 6 def map_exceptions(map: Dict[Type, Type]) -> Iterator[None]: │ │ 7 │ try: │ │ ❱ 8 │ │ yield │ │ 9 │ except Exception as exc: # noqa: PIE786 │ │ 10 │ │ for from_exc, to_exc in map.items(): │ │ 11 │ │ │ if isinstance(exc, from_exc): │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ map = {: } │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py:174 │ │ in _receive_event │ │ │ │ 171 │ async def _receive_event(self, timeout: Optional[float] = None) -> H11Event: │ │ 172 │ │ while True: │ │ 173 │ │ │ with map_exceptions({h11.RemoteProtocolError: RemoteProtocolError}): │ │ ❱ 174 │ │ │ │ event = self._h11_state.next_event() │ │ 175 │ │ │ │ │ 176 │ │ │ if event is h11.NEED_DATA: │ │ 177 │ │ │ │ data = await self._network_stream.read( │ │ │ │ ╭────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ self = │ │ │ │ timeout = 5.0 │ │ │ │ event = NEED_DATA │ │ │ │ data = b'' │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/h11/_connection.py:425 in │ │ next_event │ │ │ │ 422 │ │ if self.their_state is ERROR: │ │ 423 │ │ │ raise RemoteProtocolError("Can't receive data when peer state is ERROR") │ │ 424 │ │ try: │ │ ❱ 425 │ │ │ event = self._extract_next_receive_event() │ │ 426 │ │ │ if event not in [NEED_DATA, PAUSED]: │ │ 427 │ │ │ │ self._process_event(self.their_role, event) │ │ 428 │ │ │ if event is NEED_DATA: │ │ │ │ ╭─────────────────────────── locals ───────────────────────────╮ │ │ │ self = │ │ │ ╰──────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/h11/_connection.py:375 in │ │ _extract_next_receive_event │ │ │ │ 372 │ │ │ │ # return that event, and then the state will change and we'll │ │ 373 │ │ │ │ # get called again to generate the actual ConnectionClosed(). │ │ 374 │ │ │ │ if hasattr(self._reader, "read_eof"): │ │ ❱ 375 │ │ │ │ │ event = self._reader.read_eof() │ │ 376 │ │ │ │ else: │ │ 377 │ │ │ │ │ event = ConnectionClosed() │ │ 378 │ │ if event is None: │ │ │ │ ╭─────────────────────────── locals ────────────────────────────╮ │ │ │ self = │ │ │ │ state = SEND_BODY │ │ │ │ event = None │ │ │ ╰───────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/h11/_readers.py:117 in │ │ read_eof │ │ │ │ 114 │ │ return Data(data=data) │ │ 115 │ │ │ 116 │ def read_eof(self): │ │ ❱ 117 │ │ raise RemoteProtocolError( │ │ 118 │ │ │ "peer closed connection without sending complete message body " │ │ 119 │ │ │ "(received {} bytes, expected {})".format( │ │ 120 │ │ │ │ self._length - self._remaining, self._length │ │ │ │ ╭────────────────────────────── locals ──────────────────────────────╮ │ │ │ self = │ │ │ ╰────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ RemoteProtocolError: peer closed connection without sending complete message body (received 64719 bytes, expected 10563527) During handling of the above exception, another exception occurred: ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py:6 │ │ 0 in map_httpcore_exceptions │ │ │ │ 57 @contextlib.contextmanager │ │ 58 def map_httpcore_exceptions() -> typing.Iterator[None]: │ │ 59 │ try: │ │ ❱ 60 │ │ yield │ │ 61 │ except Exception as exc: # noqa: PIE-786 │ │ 62 │ │ mapped_exc = None │ │ 63 │ │ │ │ ╭────────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │ │ mapped_exc = │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ │ message = 'peer closed connection without sending complete message body (received 64719 byt'+22 │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py:2 │ │ 39 in __aiter__ │ │ │ │ 236 │ │ │ 237 │ async def __aiter__(self) -> typing.AsyncIterator[bytes]: │ │ 238 │ │ with map_httpcore_exceptions(): │ │ ❱ 239 │ │ │ async for part in self._httpcore_stream: │ │ 240 │ │ │ │ yield part │ │ 241 │ │ │ 242 │ async def aclose(self) -> None: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ part = b"\x11J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba AsyncIterator[bytes]: │ │ ❱ 346 │ │ async for part in self._stream: │ │ 347 │ │ │ yield part │ │ 348 │ │ │ 349 │ async def aclose(self) -> None: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ part = b"\x11J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba None: │ │ 303 │ │ if not self._closed: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ kwargs = {'request': } │ │ │ │ chunk = b"\x11J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba │ │ │ │ kwargs = {'request': } │ │ │ │ chunk = b"\x11J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba │ │ │ │ request = │ │ │ │ timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 5.0} │ │ │ │ timeout = 5.0 │ │ │ │ event = Data(data=bytearray(b'\x11J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba\x04\xd2H\xa0\xbb\x9… │ │ │ │ \x89\\|\x822\xbcX\xe8\xca\x99\x85\'\xa1MQ\x8af\xd7\xbf\xbb\xdd\x0ef\\.\xef\x84\xae#p(&\xb0\xd1B\xe5\x13\xd7\xef(]^… │ │ │ │ \x88\xcf\x9b\xab\xfe\xfa\xca\xdfRj\xc3\xe8\xdd\x8aG\xc1K\xeb6\xc8e\x90Hc\x1e<\xa5\xdd\xbaHI\x8c\xfe\x08\x0e\xc8\xa… │ │ │ │ \xee\x9b}!G\xde"\xad\x88\x15\xbe;_\xfc\xdc\x01\x01LyL\xf9Hh\x93gr\xe4a\xb4\x94\xbb8\x98{\xf5\xb6S\xa2\xb8\xfb(tD:\… │ │ │ │ \xac\xc8}\xa7hEf%\xcdDt}\xbc\xb1h\x97\x04\x10\x8bY\xfe\xb7+\xdaF\xded\xcd.\x1f\xa4\xc4\xd5\x03\xaf}\xa0\xb5\x81&\x… │ │ │ │ \xc7o\xf0\x04yu\xf4\xa5\xe5?\x87\x8f\t@Pq;\xeeR41\x9a\xc0F\x8e\x07\xfe\xfb\x99\xc4dt\x95q\xab\x8es6\xfbd.\xb1\x89r… │ │ │ │ \x80*_E\xcf\xdfD7\xd1_i\x7f\xbeI.H!}\x80\xd0Z\x18\xb2\xc3\xb2\xa4\x10Z\x1f\xd5\xe8\x02\xa0>\x7f\t?\xf9\x85w\xb9y\x… │ │ │ │ \xad\xed\xf2g\xff&\xd8\xdd\x93\x06\xb1(?\'\xdd\xfcpmjK\xa0\xc4\x7f=fp\r\xdc\xc6\xe8~\x8eBMI_\xf1B\xc6\r\x0b\x90T%\… │ │ │ │ _3\x99\x8d\xdd\r\xda\xb8\xc3I\xafs24zy\x8cFo\x1a\xe4\xde\xff\xb8F\xec\xc4\xff\xcci\x84!-4\xb4 │ │ │ │ \x8bbx:umz\xd9\x9c\x13#\xabh\x97\xc4\xdeH{\xa4\xf0\x85j\xa3,\xd3\xcc\xdaj\xa3O\\kE\x94\xd9\xde\xe7\xed^?)\x94\x02\… │ │ │ │ H\xa9\x14<\xbf*\xc4/\xff\xfbw\xb1\x80\x012\x07\x8a\xdb\xf3ZQ\xb6\xb3\x9cN\xf0<\x17<_K\x16X\xf7\x18\xe9!(\x1a\xb5\x… │ │ │ │ TSz\xd4\xd9,\x85M\x8e\x1b\xa3Q>\x8e?\xdf\x87\x8c\xbaY\xf9|\xabG\x8b\x8f\xc0\xbbl\xbd\xf9\x8b\xda\xba\xca\xd2\xf2f\… │ │ │ │ wa8k\xa8S\xfdG`\xe4<\xa6\x8d\xb1\xe6o\xdck\xf7\xe4\xba\xa6c\xe7\x0c[\xbbs\nv\xf5I\x9bE\xf3\xa42\xaf(?\xf5\xce\xe12… │ │ │ │ \xf2gR<\xa5]yn\x9b\xdc\xe8P\x94M{\x8cF\xbf\x8c\x12\x0eE\x0c\xf2\x92\xc7k\x87t\x0e\xedG\xd7\xccf\x12d+t\x04\xee │ │ │ │ @4\xacE\x17kQ\xf9a2\x90B\x0er\xe3\x1c\xf5\x1c[b\xba\x0f\xb4\xdfM\xcb\x05\xa8F,\xeb\x06\x1a\x9b\xc6\x8f\x07ayQ\x1b\… │ │ │ │ &k\xe6T\xde8\xd8|\x1a\x0f\xebh\xee\xa2W\xc2\xc2\xe3A\xf3V\x1bk\x92\xdd\xb1\x0cY)x\x14\xe1=\xa1\xb5\xbb[\x07\x91\xd… │ │ │ │ \xe7\x94\xfd\x95#\x88\xe3\x96\x8a\xf4\xb9\x01\xa0\xb9\xea\x834\x16Y9\xd4\xa7\xa2r_\x14\x0f$I\x8dR\xc9\xf6\xd1\xb8\… │ │ │ │ d;|\xfc)\x13\xcf\x1d\x00%_\xf8`\x8a(]\x1f/ggTu\x0c\xc3\x0e\x01c\x0e\x96(p,1q&\xdc\xdd\x84sA2\t\xc1\xdd9\x12\xe0,v9… │ │ │ │ \xd7\'n\xb0\xc3\x19\x04\xf3J\x11,\xb0\xab\x9c\xb7\x14l\xe7\xe7h\x1f\xbaO\xdbg │ │ │ │ 3b\xdf\x13T\x11\xc7}\x9a\xe0\x12+\xc2\x17\xac\x0e\xbe\x8b[+\x81\xe0\xa5\t\x05\x98\x063U\x96\xaf\xe2N\xbbB\xb0\xb5\… │ │ │ │ *\xa8\xdc\xc6\xc7h\xe4]U\xd9f*|\xff\xf20\xbc\xc8+\x03p{\xcb\xdc\x91\xcf2\x86\x81\x0f\x1b\xd1\xb0CG\x05\xeb\x15\xb6… │ │ │ │ \x03\xcc\x90F\x95\xbc\xe7\x91t\xff41\xa4\xc3\xfcs\xb0\x11\x0eTI\x0bT\xf3\xe4\xf2\x93\x9f\xcd:\xf7B\x8b\xf9\x1d\xb7… │ │ │ │ \xd1m\xc9\x9aL"\xe5pw\x80\xf0\xa4\xd1\x1e_/\x8e\xef\xe6\x83U\xc6?&dI\xf4\xc5\xf2k\xe8\x06\xb8\xa7\x086\xa56\xe5d\x… │ │ │ │ #l\xeda\xbfH\xbf\x93\xcf\x8f\x11\x14t7.\x91g\xa7\xdd\xb0\x9c\xa7I\'\x00\x83\xe4\x01i\xfc\x98\xc1\x86`\x1a^\xd9\x92… │ │ │ │ \xca\x1fU\xd4}\x06\xe5\xe43\xc1\x98\xdd\xb5X\xccc7\xb9\xcfp\xf0\r\x1c\xbb\xf9z\xd0\xab\x83\xd8\x0f\xbep\xaa\xb2\xe… │ │ │ │ \xac\xc8\x8d\xfa"\xb2\xe0\xe8\xad/\xab\x80o\xeeFXF\xa4 │ │ │ │ .YI!9\xc0\xd5\x16Vh;I\x93\x860/yV\xee\x1e7\xd1y\x92\xff\xd5\xd9\x0f\x85\x7f\'\xa1\xf0\x96\xede\x060!\xcc}\x9f\xfd\… │ │ │ │ 5\xe7(:5\r\xcb\x95\x07\x0c\x17\x0e\xb1\xf2\xee\xd6@6\xb7\x01eSz)X\x17+\x14j\xdd\xe9\x07\xd9\xb6\xe1R`\xfc\x85\'\x8… │ │ │ │ (\x88\xdb-\x91\xfbiA\xd4\x10\xb3\xecq\x93\x03\xb4=\xda\xd9\x13)\xa0t\x13j\x06\xfb\x91,dy\xef\xf2\x19\xe4\xed\x1b\x… │ │ │ │ )?\x91~\xc3\xc6\xcc\xb4\xe5"\x9a\x99\xe8\xb80_\xd8\x05&\xc5\x07\x19\xbbCazH\xb7\x82f\xc1\t\xef\x1a\x86\x80\x0f\xeb… │ │ │ │ \x1cr\x8b\xe2\x0c1\x82G2\xedp\x8dv98L\xa1\x94LpO@X\xcc\x13\x84\xd9L\xdf\x94I\xef(C\xde\x931\xf9\x1a\xc8q\r+\xa9Q9r… │ │ │ │ \x11\xd2\x02@\x86\xe1\xd3\xfe\xdbct\xcc\xc2\xe8\xd8\x17W$\xdb,\xa9\xb0i0\xb9\rp\x9f\xeb\xa9)\xaaM^\xd0U\x9a\x8em\x… │ │ │ │ \x86!B~\x93g\x05\xef\x1c@\x0c\xbfO\xbf@\x8f\xbcKnC\xe2\xc7_\xfe\xf0k[\xc8\x80\xde\xec\xf8\xe7\xbbX\xeb\x1ch\xc4\\{… │ │ │ │ \x06\x1fT\xe98\xe6\xcd\x7f\x16/&\x8c\xc9\xe8\x94\xc1\xe7\xd4\xf4\x97\xf7\xebo\xa6:k\xc1\xb7M\x0bL\xcc;\xd9\xbah\xf… │ │ │ │ \xe3\xde.\x90\xdf\'\x98-m\xb8e\xe6r\xb4\x0f\xc8E\xb9\xca\x84\x9c\xe8\xfc\x1b\xabp\xa0\x1c\xaaT\xbf\xc0X\xc3\xd1;-C… │ │ │ │ y\xff\xa3\x10\x0e\xee\xb4!\x1e\xf9\xdd\xa6\x19\xbf\x92\xe5\xa0\xd1\x0c\xabe\xbf\xd7\x10\xbf\xb5p\xe3W\xe6>\xfb\x13… │ │ │ │ \xd0\xe4Lm\xbcF[\x8bSL\x0e9\xf2\xcb2\x80\xaeXzJ\xf6o\xff\xd6\xcb\xe4l4\x19\xec>G[\xed\xc4+\xe8\xcd\x07\xcdI/T.G\x8… │ │ │ │ 9:\x9fd\x94\xad\x0c\x996K\x852\x7f\xef\x84\xa4\xc5q\x8d\xa9\n,\xda\x96d\x99\x0e(\x99\xe45ME\xfb\xf4\x1b\xbc?\t\xea… │ │ │ │ \xb6\x18 │ │ │ │ \x15\xe6\x90\xeb\xeeS\xf4<\x19\xe4Q\xbc#\xb3\x8c\x96m\xedL\xd4\x8d\xbf\x8b5\xd9\x82<\x9c[\xc9\xf5\x8c\xf3\x0b\xf0\… │ │ │ │ c\'\xa7 │ │ │ │ \x05V&\x89\xdfX\xf4$XYe\x80\r\xf2\xfc\xe3\xfc\x1c\xbaDe\xafG"G+\xde[h\xed\xcb\xe4fb\x8bpm!h\x96\xc8\xdfC\xe9\x81\x… │ │ │ │ }i\xd8\xe3\xd6q\xac8\xdaO\xfa\xf5\xf4X\x17q\x02\x9f\x94\xdd\xbc\x84\xf5\x0f\x93Gf9\xb3\xfak\x07\xd9t\x18y\xd4\x82j… │ │ │ │ WI\xbe\x9ctlh\x1dX\xe3a\x9dS\xb0{~oAu\xacw\xde\x90\xd8\xff(\x01lRx\x8a^N\xd3\x10\x12\xcb\xf0(\x0c\x91\x85A\xb3\xc2… │ │ │ │ \xd8\x1aF\xf3g)\xe9\xaa,<5\xd4\r&W\x96\x8e\x82\xf0\xf0\x11\xdb\x04\x93v\xce^\xd9CfJ\x19\xadY\x85OsV\xe1\x13i\xc2L\… │ │ │ │ \xda\x1f\xaf\xd3\x9f\xdc │ │ │ │ \xabd\xc5~Bpx\x86\xe6\xa7*R\x8aB\xc0!\x9a,\xc8\x9e,\xcd\xff\x17\xff\xed\xbf\xfd7\xff\xe6\xef\xfe\xdd\xb4%\x81\'L\x… │ │ │ │ \xd94M\x0b]Rj\x8d\xf6:\xb4d\xa6\n\xcd\xd8\xea3\xe4"\xb9Z\xf0\xeb\xb7\xcb\xe8\xf1m\xef\x87m\xde\xbb\xbb\xb4\x05\x9d… │ │ │ │ \xfaX\x15\x99\x13Y\xe13\xab\xda\x01\xa3\xa7g\xc7\r\x93UP\xbe\xf46A\\Y\xabO\xcf5\'\xeb\xe5\x1cz\xb5\xb9\xb8\xd6r\x7… │ │ │ │ \x87\xbcDGy \x83\xdd\xa8\xf2*^7p\x87\xfcb\x84\xe3\x1c\xb3\xbb\xd6\xd4\x8f\xa3\xf8 │ │ │ │ \xce\xa0\xfc\xd8\x9a\x84I\xf1\x00\x19\x1d[K\x04I\xa3\xee\xcclE\x08\x8c\xaes3\xf5\xfe\xe8\xe5\x05\x0fo\xe3\xdeqj`\x… │ │ │ │ \xac\x97\xe1\xe5\x16w\xc9\x01\x0eiI7\x0f\xa6H\x07\xb2.\x0e\xb0\xe3\xec\x17\xcd\\\xc6\xfd\x08\xa9I\x0cP\xa9\x85+7\x… │ │ │ │ \xf0%\x98\x99\x87+\xec\xb6\xcd3\xb2\xbd\xb4\xf7\xe8\xc7x\xa8\xaf\xa8\xe9\xfdcJ\xb0Y\x94m\xdcx\xe5E\xdd\x05\xb2\xc4… │ │ │ │ {0}\x8a\\&\x03[\x9e\x8b\xcb\x8f}\x01\x13\xd3\x07\x80D\xd6\nM\x88=Q\xf0\xd2\x8f │ │ │ │ \xb3`[z\xfeC\xb2\x1d\x8a\xd9\xb2\xdb\xa0\xf7;{\x1d\xf2\x91\xc93\x8d\x19q\xf3\xba\x16z\xb2WBs\xe7\x06\xd9H\xc9VpwK\… │ │ │ │ chunk_start=False, chunk_end=False) │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py:173 │ │ in _receive_event │ │ │ │ 170 │ │ │ 171 │ async def _receive_event(self, timeout: Optional[float] = None) -> H11Event: │ │ 172 │ │ while True: │ │ ❱ 173 │ │ │ with map_exceptions({h11.RemoteProtocolError: RemoteProtocolError}): │ │ 174 │ │ │ │ event = self._h11_state.next_event() │ │ 175 │ │ │ │ │ 176 │ │ │ if event is h11.NEED_DATA: │ │ │ │ ╭────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ self = │ │ │ │ timeout = 5.0 │ │ │ │ event = NEED_DATA │ │ │ │ data = b'' │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /usr/lib/python3.10/contextlib.py:153 in __exit__ │ │ │ │ 150 │ │ │ │ # tell if we get the same exception back │ │ 151 │ │ │ │ value = typ() │ │ 152 │ │ │ try: │ │ ❱ 153 │ │ │ │ self.gen.throw(typ, value, traceback) │ │ 154 │ │ │ except StopIteration as exc: │ │ 155 │ │ │ │ # Suppress StopIteration *unless* it's the same exception that │ │ 156 │ │ │ │ # was passed to throw(). This prevents a StopIteration │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ typ = │ │ │ │ value = RemoteProtocolError('peer closed connection without sending complete message body (received 64719 bytes, expected │ │ │ │ 10563527)') │ │ │ │ traceback = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_exceptions.py:12 in │ │ map_exceptions │ │ │ │ 9 │ except Exception as exc: # noqa: PIE786 │ │ 10 │ │ for from_exc, to_exc in map.items(): │ │ 11 │ │ │ if isinstance(exc, from_exc): │ │ ❱ 12 │ │ │ │ raise to_exc(exc) │ │ 13 │ │ raise # pragma: nocover │ │ 14 │ │ 15 │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ map = {: } │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ RemoteProtocolError: peer closed connection without sending complete message body (received 64719 bytes, expected 10563527) The above exception was the direct cause of the following exception: ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:167 in _start_base_services │ │ │ │ 164 │ │ │ │ │ instance = base_service_cls.from_config(self._config) │ │ 165 │ │ │ │ else: │ │ 166 │ │ │ │ │ instance = self.init_inject(base_service_cls) │ │ ❱ 167 │ │ │ │ await instance.start() │ │ 168 │ │ │ │ logger.success(f'服务 "{base_service_cls.__name__}" 初始化成功') │ │ 169 │ │ │ │ self._services.update({base_service_cls: instance}) │ │ 170 │ │ │ except Exception as e: # pylint: disable=W0703 │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'core.base.aiobrowser' │ │ │ │ e = RemoteProtocolError('peer closed connection without sending complete message body (received 64719 bytes, │ │ │ │ expected 10563527)') │ │ │ │ base_service_cls = │ │ │ │ instance = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/assets.py:493 in start │ │ │ │ 490 │ │ │ 491 │ async def start(self): # pylint: disable=R0201 │ │ 492 │ │ logger.info("正在刷新元数据") │ │ ❱ 493 │ │ await update_metadata_from_github(False) │ │ 494 │ │ await update_metadata_from_ambr(False) │ │ 495 │ │ await update_honey_metadata(False) │ │ 496 │ │ logger.info("刷新元数据成功") │ │ │ │ ╭───────────────────────────── locals ─────────────────────────────╮ │ │ │ self = │ │ │ ╰──────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/metadata/scripts/metadatas.py:40 in update_metadata_from_github │ │ │ │ 37 │ text_map_url = host.join("TextMap/TextMapCHS.json") │ │ 38 │ material_url = host.join("ExcelBinOutput/MaterialExcelConfigData.json") │ │ 39 │ │ │ ❱ 40 │ text_map_json_data = json.loads((await client.get(text_map_url)).text) │ │ 41 │ material_json_data = json.loads((await client.get(material_url)).text) │ │ 42 │ │ │ 43 │ data = {} │ │ │ │ ╭──────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────╮ │ │ │ overwrite = False │ │ │ │ path = PosixPath('/home/wenjinyu/Documents/genshin/TGPaimonBot/metadata/data/namecard.json') │ │ │ │ host = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/') │ │ │ │ text_map_url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/TextMap/TextMapCHS.json') │ │ │ │ material_url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/ExcelBinOutput/MaterialExcelConfigData.json') │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1751 in get │ │ │ │ 1748 │ │ │ │ 1749 │ │ **Parameters**: See `httpx.request`. │ │ 1750 │ │ """ │ │ ❱ 1751 │ │ return await self.request( │ │ 1752 │ │ │ "GET", │ │ 1753 │ │ │ url, │ │ 1754 │ │ │ params=params, │ │ │ │ ╭──────────────────────────────────────────────── locals ────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/TextMap/TextMapCHS.json') │ │ │ │ params = None │ │ │ │ headers = None │ │ │ │ cookies = None │ │ │ │ auth = │ │ │ │ follow_redirects = │ │ │ │ timeout = │ │ │ │ extensions = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1527 in │ │ request │ │ │ │ 1524 │ │ │ timeout=timeout, │ │ 1525 │ │ │ extensions=extensions, │ │ 1526 │ │ ) │ │ ❱ 1527 │ │ return await self.send(request, auth=auth, follow_redirects=follow_redirects) │ │ 1528 │ │ │ 1529 │ @asynccontextmanager │ │ 1530 │ async def stream( │ │ │ │ ╭────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ method = 'GET' │ │ │ │ url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/TextMap/TextMapCHS.json') │ │ │ │ content = None │ │ │ │ data = None │ │ │ │ files = None │ │ │ │ json = None │ │ │ │ params = None │ │ │ │ headers = None │ │ │ │ cookies = None │ │ │ │ auth = │ │ │ │ follow_redirects = │ │ │ │ timeout = │ │ │ │ extensions = None │ │ │ │ request = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1628 in send │ │ │ │ 1625 │ │ │ │ 1626 │ │ except BaseException as exc: # pragma: no cover │ │ 1627 │ │ │ await response.aclose() │ │ ❱ 1628 │ │ │ raise exc │ │ 1629 │ │ │ 1630 │ async def _send_handling_auth( │ │ 1631 │ │ self, │ │ │ │ ╭────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ stream = False │ │ │ │ auth = │ │ │ │ follow_redirects = False │ │ │ │ response = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1622 in send │ │ │ │ 1619 │ │ ) │ │ 1620 │ │ try: │ │ 1621 │ │ │ if not stream: │ │ ❱ 1622 │ │ │ │ await response.aread() │ │ 1623 │ │ │ │ │ 1624 │ │ │ return response │ │ 1625 │ │ │ │ ╭────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ stream = False │ │ │ │ auth = │ │ │ │ follow_redirects = False │ │ │ │ response = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_models.py:896 in aread │ │ │ │ 893 │ │ Read and return the response content. │ │ 894 │ │ """ │ │ 895 │ │ if not hasattr(self, "_content"): │ │ ❱ 896 │ │ │ self._content = b"".join([part async for part in self.aiter_bytes()]) │ │ 897 │ │ return self._content │ │ 898 │ │ │ 899 │ async def aiter_bytes( │ │ │ │ ╭────────── locals ──────────╮ │ │ │ self = │ │ │ ╰────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_models.py:896 in │ │ │ │ │ │ 893 │ │ Read and return the response content. │ │ 894 │ │ """ │ │ 895 │ │ if not hasattr(self, "_content"): │ │ ❱ 896 │ │ │ self._content = b"".join([part async for part in self.aiter_bytes()]) │ │ 897 │ │ return self._content │ │ 898 │ │ │ 899 │ async def aiter_bytes( │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ .0 = │ │ │ │ part = b'\xe3\x80\x8c\xe9\x9b\xa8\xe5\xa4\xa9\xe4\xb8\x8d\xe8\xa6\x81\xe9\x9d\xa0\xe6\x88\x91\xe5\xa4\xaa\xe8\xbf\x91\xe5\x95… │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_models.py:914 in │ │ aiter_bytes │ │ │ │ 911 │ │ │ decoder = self._get_content_decoder() │ │ 912 │ │ │ chunker = ByteChunker(chunk_size=chunk_size) │ │ 913 │ │ │ with request_context(request=self._request): │ │ ❱ 914 │ │ │ │ async for raw_bytes in self.aiter_raw(): │ │ 915 │ │ │ │ │ decoded = decoder.decode(raw_bytes) │ │ 916 │ │ │ │ │ for chunk in chunker.decode(decoded): │ │ 917 │ │ │ │ │ │ yield chunk │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ chunk_size = None │ │ │ │ decoder = │ │ │ │ chunker = │ │ │ │ raw_bytes = b"\x11J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba │ │ │ │ chunk_size = None │ │ │ │ chunker = │ │ │ │ raw_stream_bytes = b"\x11J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba typing.AsyncIterator[bytes]: │ │ ❱ 146 │ │ async for chunk in self._stream: │ │ 147 │ │ │ yield chunk │ │ 148 │ │ │ 149 │ async def aclose(self) -> None: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ chunk = b"\x11J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba typing.AsyncIterator[bytes]: │ │ ❱ 238 │ │ with map_httpcore_exceptions(): │ │ 239 │ │ │ async for part in self._httpcore_stream: │ │ 240 │ │ │ │ yield part │ │ 241 │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ part = b"\x11J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba │ │ │ │ typ = │ │ │ │ value = RemoteProtocolError(RemoteProtocolError('peer closed connection without sending complete message body (received │ │ │ │ 64719 bytes, expected 10563527)')) │ │ │ │ traceback = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py:7 │ │ 7 in map_httpcore_exceptions │ │ │ │ 74 │ │ │ raise │ │ 75 │ │ │ │ 76 │ │ message = str(exc) │ │ ❱ 77 │ │ raise mapped_exc(message) from exc │ │ 78 │ │ 79 │ │ 80 HTTPCORE_EXC_MAP = { │ │ │ │ ╭────────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │ │ mapped_exc = │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ │ message = 'peer closed connection without sending complete message body (received 64719 byt'+22 │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ RemoteProtocolError: peer closed connection without sending complete message body (received 64719 bytes, expected 10563527) [2022-10-21 11:15:35] INFO 正在尝试启动 Playwright core.base.aiobrowser 17 SUCCESS Playwright 启动成功 core.base.aiobrowser 19 INFO 正在尝试启动 Browser core.base.aiobrowser 21 ERROR 服务 "AioBrowser" 初始化失败: Executable doesn't exist at /home/wenjinyu/.cache/ms-playwright/chromium-1024/chrome-linux/chrome core.bot 171 ╔════════════════════════════════════════════════════════════╗ ║ Looks like Playwright was just installed or updated. ║ ║ Please run the following command to download new browsers: ║ ║ ║ ║ playwright install ║ ║ ║ ║ <3 Playwright Team ║ ╚════════════════════════════════════════════════════════════╝ ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:167 in _start_base_services │ │ │ │ 164 │ │ │ │ │ instance = base_service_cls.from_config(self._config) │ │ 165 │ │ │ │ else: │ │ 166 │ │ │ │ │ instance = self.init_inject(base_service_cls) │ │ ❱ 167 │ │ │ │ await instance.start() │ │ 168 │ │ │ │ logger.success(f'服务 "{base_service_cls.__name__}" 初始化成功') │ │ 169 │ │ │ │ self._services.update({base_service_cls: instance}) │ │ 170 │ │ │ except Exception as e: # pylint: disable=W0703 │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'core.base.aiobrowser' │ │ │ │ base_service_cls = │ │ │ │ instance = │ │ │ │ e = Error("Executable doesn't exist at │ │ │ │ /home/wenjinyu/.cache/ms-playwright/chromium-1024/chrome-linux/chrome\n╔══════════════════════════════════… │ │ │ │ Looks like Playwright was just installed or updated. ║\n║ Please run the following command to │ │ │ │ download new browsers: ║\n║ ║\n║ playwright │ │ │ │ install ║\n║ │ │ │ │ ║\n║ <3 Playwright Team │ │ │ │ ║\n╚════════════════════════════════════════════════════════════╝") │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/aiobrowser.py:23 in start │ │ │ │ 20 │ │ if self.browser is None: │ │ 21 │ │ │ logger.info("正在尝试启动 [blue]Browser[/]", extra={"markup": True}) │ │ 22 │ │ │ try: │ │ ❱ 23 │ │ │ │ self.browser = await self._playwright.chromium.launch(timeout=5000) │ │ 24 │ │ │ │ logger.success("[blue]Browser[/] 启动成功", extra={"markup": True}) │ │ 25 │ │ │ except TimeoutError as err: │ │ 26 │ │ │ │ logger.warning("[blue]Browser[/] 启动失败", extra={"markup": True}) │ │ │ │ ╭───────────────────────────── locals ──────────────────────────────╮ │ │ │ self = │ │ │ ╰───────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/async_api/_generate │ │ d.py:11636 in launch │ │ │ │ 11633 │ │ """ │ │ 11634 │ │ │ │ 11635 │ │ return mapping.from_impl( │ │ ❱ 11636 │ │ │ await self._impl_obj.launch( │ │ 11637 │ │ │ │ executablePath=executable_path, │ │ 11638 │ │ │ │ channel=channel, │ │ 11639 │ │ │ │ args=mapping.to_impl(args), │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ executable_path = None │ │ │ │ channel = None │ │ │ │ args = None │ │ │ │ ignore_default_args = None │ │ │ │ handle_sigint = None │ │ │ │ handle_sigterm = None │ │ │ │ handle_sighup = None │ │ │ │ timeout = 5000 │ │ │ │ env = None │ │ │ │ headless = None │ │ │ │ devtools = None │ │ │ │ proxy = None │ │ │ │ downloads_path = None │ │ │ │ slow_mo = None │ │ │ │ traces_dir = None │ │ │ │ chromium_sandbox = None │ │ │ │ firefox_user_prefs = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/_impl/_browser_type │ │ .py:93 in launch │ │ │ │ 90 │ │ params = locals_to_params(locals()) │ │ 91 │ │ normalize_launch_params(params) │ │ 92 │ │ browser = cast( │ │ ❱ 93 │ │ │ Browser, from_channel(await self._channel.send("launch", params)) │ │ 94 │ │ ) │ │ 95 │ │ browser._set_browser_type(self) │ │ 96 │ │ return browser │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ executablePath = None │ │ │ │ channel = None │ │ │ │ args = None │ │ │ │ ignoreDefaultArgs = None │ │ │ │ handleSIGINT = None │ │ │ │ handleSIGTERM = None │ │ │ │ handleSIGHUP = None │ │ │ │ timeout = 5000 │ │ │ │ env = None │ │ │ │ headless = None │ │ │ │ devtools = None │ │ │ │ proxy = None │ │ │ │ downloadsPath = None │ │ │ │ slowMo = None │ │ │ │ tracesDir = None │ │ │ │ chromiumSandbox = None │ │ │ │ firefoxUserPrefs = None │ │ │ │ params = {'timeout': 5000} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/_impl/_connection.p │ │ y:43 in send │ │ │ │ 40 │ │ self._object: Optional[ChannelOwner] = None │ │ 41 │ │ │ 42 │ async def send(self, method: str, params: Dict = None) -> Any: │ │ ❱ 43 │ │ return await self._connection.wrap_api_call( │ │ 44 │ │ │ lambda: self.inner_send(method, params, False) │ │ 45 │ │ ) │ │ 46 │ │ │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ method = 'launch' │ │ │ │ params = {'timeout': 5000} │ │ │ │ self = │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/_impl/_connection.p │ │ y:387 in wrap_api_call │ │ │ │ 384 │ │ if metadata: │ │ 385 │ │ │ self._api_zone.set(metadata) │ │ 386 │ │ try: │ │ ❱ 387 │ │ │ return await cb() │ │ 388 │ │ finally: │ │ 389 │ │ │ self._api_zone.set(None) │ │ 390 │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ cb = . at 0x7f58b74bbd00> │ │ │ │ is_internal = False │ │ │ │ task = cb=[_run_until_complete_cb() at │ │ │ │ /usr/lib/python3.10/asyncio/base_events.py:184, WorkerThread.stop()]> │ │ │ │ st = [ │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ ... +7 │ │ │ │ ] │ │ │ │ metadata = {'apiName': 'BrowserType.launch', 'stack': [...]} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/_impl/_connection.p │ │ y:78 in inner_send │ │ │ │ 75 │ │ ) │ │ 76 │ │ if not callback.future.done(): │ │ 77 │ │ │ callback.future.cancel() │ │ ❱ 78 │ │ result = next(iter(done)).result() │ │ 79 │ │ # Protocol now has named return values, assume result is one level deeper unless │ │ 80 │ │ # there is explicit ambiguity. │ │ 81 │ │ if not result: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ method = 'launch' │ │ │ │ params = {'timeout': 5000} │ │ │ │ return_as_dict = False │ │ │ │ callback = │ │ │ │ done = { │ │ │ │ │ │ │ │ │ } │ │ │ │ _ = {} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ Error: Executable doesn't exist at /home/wenjinyu/.cache/ms-playwright/chromium-1024/chrome-linux/chrome ╔════════════════════════════════════════════════════════════╗ ║ Looks like Playwright was just installed or updated. ║ ║ Please run the following command to download new browsers: ║ ║ ║ ║ playwright install ║ ║ ║ ║ <3 Playwright Team ║ ╚════════════════════════════════════════════════════════════╝ [2022-10-21 11:15:37] SUCCESS 服务 "SignServices" 初始化成功 core.service 27 SUCCESS 服务 "WikiService" 初始化成功 core.service 27 ERROR 来自core.template的服务初始化失败:create_template_service() missing 1 required positional argument: 'browser' core.service 30 ╭────────────────────────────────────────────── Traceback (most recent call last) ───────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/service.py:26 in init_service │ │ │ │ 23 │ │ │ 24 │ if bot.is_running: │ │ 25 │ │ try: │ │ ❱ 26 │ │ │ service = bot.init_inject(func) │ │ 27 │ │ │ logger.success(f'服务 "{service.__class__.__name__}" 初始化成功') │ │ 28 │ │ │ bot.add_service(service) │ │ 29 │ │ except Exception as e: # pylint: disable=W0703 │ │ │ │ ╭──────────────────────────────────────────── locals ─────────────────────────────────────────────╮ │ │ │ func = │ │ │ │ bot = │ │ │ │ e = TypeError("create_template_service() missing 1 required positional argument: 'browser'") │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭─────────────────────────────────────────────── locals ───────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭─────────────────────────────────────────────── locals ───────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = │ │ │ │ target = │ │ │ │ kwargs = {'redis': } │ │ │ │ name = 'redis' │ │ │ │ parameter = │ │ │ │ value = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TypeError: create_template_service() missing 1 required positional argument: 'browser' SUCCESS 服务 "BotAdminService" 初始化成功 core.service 27 SUCCESS 服务 "UserService" 初始化成功 core.service 27 SUCCESS 服务 "CookiesService" 初始化成功 core.service 27 SUCCESS 服务 "PublicCookiesService" 初始化成功 core.service 27 SUCCESS 服务 "QuizService" 初始化成功 core.service 27 SUCCESS 服务 "GameStrategyService" 初始化成功 core.service 27 SUCCESS 服务 "GameMaterialService" 初始化成功 core.service 27 INFO 开始安装插件 core.bot 227 [2022-10-21 11:15:38] DEBUG 插件 "plugins.genshin.sign.Sign" 添加了 2 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.sign.Sign" 载入成功 core.bot 122 DEBUG 插件 "plugins.other.post.Post" 添加了 1 个 handler core.bot 106 SUCCESS 插件 "plugins.other.post.Post" 载入成功 core.bot 122 DEBUG 插件 "plugins.system.get_chat.GetChat" 添加了 1 个 handler core.bot 106 SUCCESS 插件 "plugins.system.get_chat.GetChat" 载入成功 core.bot 122 DEBUG 插件 "plugins.jobs.public_cookies.PublicCookies" 添加了 1 个任务 core.bot 121 SUCCESS 插件 "plugins.jobs.public_cookies.PublicCookies" 载入成功 core.bot 122 DEBUG 插件 "plugins.genshin.artifact_rate.ArtifactRate" 添加了 1 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.artifact_rate.ArtifactRate" 载入成功 core.bot 122 DEBUG 插件 "plugins.genshin.gacha.gacha_log.GachaLog" 添加了 8 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.gacha.gacha_log.GachaLog" 载入成功 core.bot 122 DEBUG 插件 "plugins.genshin.userstats.UserStatsPlugins" 添加了 2 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.userstats.UserStatsPlugins" 载入成功 core.bot 122 DEBUG 插件 "plugins.genshin.ledger.Ledger" 添加了 2 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.ledger.Ledger" 载入成功 core.bot 122 DEBUG 插件 "plugins.genshin.map.map.Map" 添加了 2 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.map.map.Map" 载入成功 core.bot 122 ERROR 在安装插件 "plugins.genshin.daily.material.DailyMaterial" 的过程中遇到了错误: core.bot 124 TypeError: DailyMaterial.__init__() missing 2 required positional arguments: 'assets' and 'template_service' ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:100 in install_plugins │ │ │ │ 97 │ │ for plugin_cls in {*Plugin.__subclasses__(), *Plugin.Conversation.__subclasses__()}: │ │ 98 │ │ │ path = f"{plugin_cls.__module__}.{plugin_cls.__name__}" │ │ 99 │ │ │ try: │ │ ❱ 100 │ │ │ │ plugin: PluginType = self.init_inject(plugin_cls) │ │ 101 │ │ │ │ if hasattr(plugin, "__async_init__"): │ │ 102 │ │ │ │ │ await self.async_inject(plugin.__async_init__) │ │ 103 │ │ │ │ handlers = plugin.handlers │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'plugins.genshin.ledger' │ │ │ │ e = TypeError("DailyMaterial.__init__() missing 2 required positional arguments: 'assets' and │ │ │ │ 'template_service'") │ │ │ │ plugin_cls = │ │ │ │ path = 'plugins.genshin.daily.material.DailyMaterial' │ │ │ │ plugin = │ │ │ │ handlers = [ │ │ │ │ │ , │ │ │ │ │ │ │ │ │ ] │ │ │ │ error_handlers = {} │ │ │ │ jobs = [] │ │ │ │ callback_dict = {} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = │ │ │ │ target = │ │ │ │ kwargs = {} │ │ │ │ name = 'template_service' │ │ │ │ parameter = │ │ │ │ value = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TypeError: DailyMaterial.__init__() missing 2 required positional arguments: 'assets' and 'template_service' [2022-10-21 11:15:39] DEBUG 插件 "plugins.system.sign_status.SignStatus" 添加了 1 个 handler core.bot 106 SUCCESS 插件 "plugins.system.sign_status.SignStatus" 载入成功 core.bot 122 DEBUG 插件 "plugins.genshin.abyss_team.AbyssTeam" 添加了 2 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.abyss_team.AbyssTeam" 载入成功 core.bot 122 DEBUG 插件 "plugins.genshin.daily_note.DailyNote" 添加了 2 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.daily_note.DailyNote" 载入成功 core.bot 122 ERROR 在安装插件 "plugins.genshin.avatar_list.AvatarListPlugin" 的过程中遇到了错误: core.bot 124 TypeError: AvatarListPlugin.__init__() missing 2 required positional arguments: 'assets_service' and 'template_service' ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:100 in install_plugins │ │ │ │ 97 │ │ for plugin_cls in {*Plugin.__subclasses__(), *Plugin.Conversation.__subclasses__()}: │ │ 98 │ │ │ path = f"{plugin_cls.__module__}.{plugin_cls.__name__}" │ │ 99 │ │ │ try: │ │ ❱ 100 │ │ │ │ plugin: PluginType = self.init_inject(plugin_cls) │ │ 101 │ │ │ │ if hasattr(plugin, "__async_init__"): │ │ 102 │ │ │ │ │ await self.async_inject(plugin.__async_init__) │ │ 103 │ │ │ │ handlers = plugin.handlers │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'plugins.genshin.ledger' │ │ │ │ e = TypeError("AvatarListPlugin.__init__() missing 2 required positional arguments: 'assets_service' and │ │ │ │ 'template_service'") │ │ │ │ plugin_cls = │ │ │ │ path = 'plugins.genshin.avatar_list.AvatarListPlugin' │ │ │ │ plugin = │ │ │ │ handlers = [ │ │ │ │ │ , │ │ │ │ │ │ │ │ │ ] │ │ │ │ error_handlers = {} │ │ │ │ jobs = [] │ │ │ │ callback_dict = {} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = None> │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = None> │ │ │ │ target = │ │ │ │ kwargs = {'cookies_service': } │ │ │ │ name = 'template_service' │ │ │ │ parameter = │ │ │ │ value = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TypeError: AvatarListPlugin.__init__() missing 2 required positional arguments: 'assets_service' and 'template_service' DEBUG 插件 "plugins.genshin.quiz.QuizPlugin" 添加了 1 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.quiz.QuizPlugin" 载入成功 core.bot 122 ERROR 在安装插件 "plugins.genshin.help.HelpPlugin" 的过程中遇到了错误: core.bot 124 ModuleNotFoundError: ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:100 in install_plugins │ │ │ │ 97 │ │ for plugin_cls in {*Plugin.__subclasses__(), *Plugin.Conversation.__subclasses__()}: │ │ 98 │ │ │ path = f"{plugin_cls.__module__}.{plugin_cls.__name__}" │ │ 99 │ │ │ try: │ │ ❱ 100 │ │ │ │ plugin: PluginType = self.init_inject(plugin_cls) │ │ 101 │ │ │ │ if hasattr(plugin, "__async_init__"): │ │ 102 │ │ │ │ │ await self.async_inject(plugin.__async_init__) │ │ 103 │ │ │ │ handlers = plugin.handlers │ │ │ │ ╭───────────────────────────────────────── locals ──────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'plugins.genshin.ledger' │ │ │ │ e = ModuleNotFoundError() │ │ │ │ plugin_cls = │ │ │ │ path = 'plugins.genshin.help.HelpPlugin' │ │ │ │ plugin = │ │ │ │ handlers = [] │ │ │ │ error_handlers = {} │ │ │ │ jobs = [] │ │ │ │ callback_dict = {} │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭──────────────────────────────────────────── locals ─────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭──────────────────────────────────────────── locals ─────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = │ │ │ │ target = │ │ │ │ kwargs = {} │ │ │ │ name = 'template_service' │ │ │ │ parameter = │ │ │ │ value = None │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/plugins/genshin/help.py:19 in __init__ │ │ │ │ 16 │ │ self.file_id = None │ │ 17 │ │ self.help_png = None │ │ 18 │ │ if template_service is None: │ │ ❱ 19 │ │ │ raise ModuleNotFoundError │ │ 20 │ │ self.template_service = template_service │ │ 21 │ │ │ 22 │ @handler(CommandHandler, command="help", block=False) │ │ │ │ ╭─────────────────────────────────── locals ────────────────────────────────────╮ │ │ │ self = │ │ │ │ template_service = None │ │ │ ╰───────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ModuleNotFoundError DEBUG 插件 "plugins.genshin.weapon.WeaponPlugin" 添加了 2 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.weapon.WeaponPlugin" 载入成功 core.bot 122 DEBUG 插件 "plugins.genshin.hilichurls.HilichurlsPlugin" 添加了 1 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.hilichurls.HilichurlsPlugin" 载入成功 core.bot 122 DEBUG 插件 "plugins.system.start.StartPlugin" 添加了 3 个 handler core.bot 106 SUCCESS 插件 "plugins.system.start.StartPlugin" 载入成功 core.bot 122 DEBUG 插件 "plugins.jobs.sign.SignJob" 添加了 1 个任务 core.bot 121 SUCCESS 插件 "plugins.jobs.sign.SignJob" 载入成功 core.bot 122 DEBUG 插件 "plugins.genshin.gacha.gacha.Gacha" 添加了 4 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.gacha.gacha.Gacha" 载入成功 core.bot 122 DEBUG 插件 "plugins.system.log.Log" 添加了 1 个 handler core.bot 106 SUCCESS 插件 "plugins.system.log.Log" 载入成功 core.bot 122 DEBUG 插件 "plugins.system.refresh_metadata.MetadataPlugin" 添加了 1 个 handler core.bot 106 SUCCESS 插件 "plugins.system.refresh_metadata.MetadataPlugin" 载入成功 core.bot 122 DEBUG 插件 "plugins.genshin.material.Material" 添加了 2 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.material.Material" 载入成功 core.bot 122 DEBUG 插件 "plugins.genshin.wiki.Wiki" 添加了 1 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.wiki.Wiki" 载入成功 core.bot 122 DEBUG 插件 "plugins.system.errorhandler.ErrorHandler" 添加了 1 个 error handler core.bot 118 SUCCESS 插件 "plugins.system.errorhandler.ErrorHandler" 载入成功 core.bot 122 DEBUG 插件 "plugins.system.inline.Inline" 添加了 1 个 handler core.bot 106 SUCCESS 插件 "plugins.system.inline.Inline" 载入成功 core.bot 122 INFO 群验证模块正在刷新问题列表 plugins.system.auth 46 SUCCESS 群验证模块刷新问题列表成功 plugins.system.auth 48 DEBUG 插件 "plugins.system.auth.GroupJoiningVerification" 添加了 2 个 handler core.bot 106 SUCCESS 插件 "plugins.system.auth.GroupJoiningVerification" 载入成功 core.bot 122 DEBUG 插件 "plugins.system.update.UpdatePlugin" 添加了 1 个 handler core.bot 106 SUCCESS 插件 "plugins.system.update.UpdatePlugin" 载入成功 core.bot 122 DEBUG 插件 "plugins.genshin.cookies.SetUserCookies" 添加了 1 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.cookies.SetUserCookies" 载入成功 core.bot 122 DEBUG 插件 "plugins.genshin.strategy.StrategyPlugin" 添加了 2 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.strategy.StrategyPlugin" 载入成功 core.bot 122 DEBUG 插件 "plugins.genshin.abyss.Abyss" 添加了 2 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.abyss.Abyss" 载入成功 core.bot 122 DEBUG 插件 "plugins.genshin.player_cards.PlayerCards" 添加了 3 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.player_cards.PlayerCards" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.new_member.BotJoiningGroupsVerification" 载入成功 core.bot 122 DEBUG 插件 "plugins.genshin.uid.SetUserUid" 添加了 1 个 handler core.bot 106 SUCCESS 插件 "plugins.genshin.uid.SetUserUid" 载入成功 core.bot 122 DEBUG 插件 "plugins.system.admin.AdminPlugin" 添加了 3 个 handler core.bot 106 SUCCESS 插件 "plugins.system.admin.AdminPlugin" 载入成功 core.bot 122 DEBUG 插件 "plugins.system.sign_all.SignAll" 添加了 1 个 handler core.bot 106 SUCCESS 插件 "plugins.system.sign_all.SignAll" 载入成功 core.bot 122 DEBUG 插件 "plugins.system.set_quiz.SetQuizPlugin" 添加了 1 个 handler core.bot 106 SUCCESS 插件 "plugins.system.set_quiz.SetQuizPlugin" 载入成功 core.bot 122 SUCCESS 成功添加了 2 个针对 filters.StatusUpdate.NEW_CHAT_MEMBERS 的 MessageHandler core.bot 139 INFO BOT 初始化成功 core.bot 229 [2022-10-21 11:17:05] ERROR 处理函数时发生异常 plugins.system.errorhandler 35 ERROR ╭─────────────────────────────────────── Traceback (most recent call last) ───────────────────────────────────────╮ plugins.system.errorhandler 36 │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/anyio/strea │ │ ms/tls.py:130 in _call_sslobject_method │ │ │ │ 127 │ ) -> T_Retval: │ │ 128 │ │ while True: │ │ 129 │ │ │ try: │ │ ❱ 130 │ │ │ │ result = func(*args) │ │ 131 │ │ │ except ssl.SSLWantReadError: │ │ 132 │ │ │ │ try: │ │ 133 │ │ │ │ │ # Flush any pending writes first │ │ │ │ ╭─────────────────────────────────────────── locals ────────────────────────────────────────────╮ │ │ │ self = TLSStream( │ │ │ │ │ transport_stream=, │ │ │ │ │ standard_compatible=False, │ │ │ │ │ _ssl_object=, │ │ │ │ │ _read_bio=<_ssl.MemoryBIO object at 0x7f58b74d3010>, │ │ │ │ │ _write_bio=<_ssl.MemoryBIO object at 0x7f58b74d2e60> │ │ │ │ ) │ │ │ │ func = > │ │ │ │ args = () │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /usr/lib/python3.10/ssl.py:974 in do_handshake │ │ │ │ 971 │ │ │ 972 │ def do_handshake(self): │ │ 973 │ │ """Start the SSL/TLS handshake.""" │ │ ❱ 974 │ │ self._sslobj.do_handshake() │ │ 975 │ │ │ 976 │ def unwrap(self): │ │ 977 │ │ """Start the SSL shutdown handshake.""" │ │ │ │ ╭──────────────────── locals ─────────────────────╮ │ │ │ self = │ │ │ ╰─────────────────────────────────────────────────╯ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ SSLWantReadError: The operation did not complete (read) (_ssl.c:997) During handling of the above exception, another exception occurred: ╭─────────────────────────────────────── Traceback (most recent call last) ───────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/ba │ │ ckends/asyncio.py:67 in start_tls │ │ │ │ 64 │ │ with map_exceptions(exc_map): │ │ 65 │ │ │ try: │ │ 66 │ │ │ │ with anyio.fail_after(timeout): │ │ ❱ 67 │ │ │ │ │ ssl_stream = await anyio.streams.tls.TLSStream.wrap( │ │ 68 │ │ │ │ │ │ self._stream, │ │ 69 │ │ │ │ │ │ ssl_context=ssl_context, │ │ 70 │ │ │ │ │ │ hostname=server_hostname, │ │ │ │ ╭────────────────────────────────────────── locals ──────────────────────────────────────────╮ │ │ │ self = │ │ │ │ ssl_context = │ │ │ │ server_hostname = 'api.telegram.org' │ │ │ │ timeout = 5.0 │ │ │ │ exc_map = { │ │ │ │ │ : , │ │ │ │ │ : │ │ │ │ } │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/anyio/strea │ │ ms/tls.py:122 in wrap │ │ │ │ 119 │ │ │ _read_bio=bio_in, │ │ 120 │ │ │ _write_bio=bio_out, │ │ 121 │ │ ) │ │ ❱ 122 │ │ await wrapper._call_sslobject_method(ssl_object.do_handshake) │ │ 123 │ │ return wrapper │ │ 124 │ │ │ 125 │ async def _call_sslobject_method( │ │ │ │ ╭────────────────────────────────────────────────── locals ───────────────────────────────────────────────────╮ │ │ │ cls = │ │ │ │ transport_stream = │ │ │ │ server_side = False │ │ │ │ hostname = 'api.telegram.org' │ │ │ │ ssl_context = │ │ │ │ standard_compatible = False │ │ │ │ bio_in = <_ssl.MemoryBIO object at 0x7f58b74d3010> │ │ │ │ bio_out = <_ssl.MemoryBIO object at 0x7f58b74d2e60> │ │ │ │ ssl_object = │ │ │ │ wrapper = TLSStream( │ │ │ │ │ transport_stream=, │ │ │ │ │ standard_compatible=False, │ │ │ │ │ _ssl_object=, │ │ │ │ │ _read_bio=<_ssl.MemoryBIO object at 0x7f58b74d3010>, │ │ │ │ │ _write_bio=<_ssl.MemoryBIO object at 0x7f58b74d2e60> │ │ │ │ ) │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/anyio/strea │ │ ms/tls.py:137 in _call_sslobject_method │ │ │ │ 134 │ │ │ │ │ if self._write_bio.pending: │ │ 135 │ │ │ │ │ │ await self.transport_stream.send(self._write_bio.read()) │ │ 136 │ │ │ │ │ │ │ ❱ 137 │ │ │ │ │ data = await self.transport_stream.receive() │ │ 138 │ │ │ │ except EndOfStream: │ │ 139 │ │ │ │ │ self._read_bio.write_eof() │ │ 140 │ │ │ │ except OSError as exc: │ │ │ │ ╭─────────────────────────────────────────── locals ────────────────────────────────────────────╮ │ │ │ self = TLSStream( │ │ │ │ │ transport_stream=, │ │ │ │ │ standard_compatible=False, │ │ │ │ │ _ssl_object=, │ │ │ │ │ _read_bio=<_ssl.MemoryBIO object at 0x7f58b74d3010>, │ │ │ │ │ _write_bio=<_ssl.MemoryBIO object at 0x7f58b74d2e60> │ │ │ │ ) │ │ │ │ func = > │ │ │ │ args = () │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/anyio/_back │ │ ends/_asyncio.py:1265 in receive │ │ │ │ 1262 │ │ │ │ and not self._transport.is_closing() │ │ 1263 │ │ │ ): │ │ 1264 │ │ │ │ self._transport.resume_reading() │ │ ❱ 1265 │ │ │ │ await self._protocol.read_event.wait() │ │ 1266 │ │ │ │ self._transport.pause_reading() │ │ 1267 │ │ │ │ │ 1268 │ │ │ try: │ │ │ │ ╭─────────────────────────────────── locals ───────────────────────────────────╮ │ │ │ self = │ │ │ │ max_bytes = 65536 │ │ │ ╰──────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /usr/lib/python3.10/asyncio/locks.py:214 in wait │ │ │ │ 211 │ │ fut = self._get_loop().create_future() │ │ 212 │ │ self._waiters.append(fut) │ │ 213 │ │ try: │ │ ❱ 214 │ │ │ await fut │ │ 215 │ │ │ return True │ │ 216 │ │ finally: │ │ 217 │ │ │ self._waiters.remove(fut) │ │ │ │ ╭────────────────────────── locals ───────────────────────────╮ │ │ │ self = │ │ │ │ fut = │ │ │ ╰─────────────────────────────────────────────────────────────╯ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ CancelledError During handling of the above exception, another exception occurred: ╭─────────────────────────────────────── Traceback (most recent call last) ───────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_e │ │ xceptions.py:8 in map_exceptions │ │ │ │ 5 @contextlib.contextmanager │ │ 6 def map_exceptions(map: Dict[Type, Type]) -> Iterator[None]: │ │ 7 │ try: │ │ ❱ 8 │ │ yield │ │ 9 │ except Exception as exc: # noqa: PIE786 │ │ 10 │ │ for from_exc, to_exc in map.items(): │ │ 11 │ │ │ if isinstance(exc, from_exc): │ │ │ │ ╭────────────────────────────────────── locals ───────────────────────────────────────╮ │ │ │ map = { │ │ │ │ │ : , │ │ │ │ │ : │ │ │ │ } │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/ba │ │ ckends/asyncio.py:76 in start_tls │ │ │ │ 73 │ │ │ │ │ ) │ │ 74 │ │ │ except Exception as exc: # pragma: nocover │ │ 75 │ │ │ │ await self.aclose() │ │ ❱ 76 │ │ │ │ raise exc │ │ 77 │ │ return AsyncIOStream(ssl_stream) │ │ 78 │ │ │ 79 │ def get_extra_info(self, info: str) -> typing.Any: │ │ │ │ ╭────────────────────────────────────────── locals ──────────────────────────────────────────╮ │ │ │ self = │ │ │ │ ssl_context = │ │ │ │ server_hostname = 'api.telegram.org' │ │ │ │ timeout = 5.0 │ │ │ │ exc_map = { │ │ │ │ │ : , │ │ │ │ │ : │ │ │ │ } │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/ba │ │ ckends/asyncio.py:66 in start_tls │ │ │ │ 63 │ │ } │ │ 64 │ │ with map_exceptions(exc_map): │ │ 65 │ │ │ try: │ │ ❱ 66 │ │ │ │ with anyio.fail_after(timeout): │ │ 67 │ │ │ │ │ ssl_stream = await anyio.streams.tls.TLSStream.wrap( │ │ 68 │ │ │ │ │ │ self._stream, │ │ 69 │ │ │ │ │ │ ssl_context=ssl_context, │ │ │ │ ╭────────────────────────────────────────── locals ──────────────────────────────────────────╮ │ │ │ self = │ │ │ │ ssl_context = │ │ │ │ server_hostname = 'api.telegram.org' │ │ │ │ timeout = 5.0 │ │ │ │ exc_map = { │ │ │ │ │ : , │ │ │ │ │ : │ │ │ │ } │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/anyio/_core │ │ /_tasks.py:118 in __exit__ │ │ │ │ 115 │ ) -> Optional[bool]: │ │ 116 │ │ retval = self._cancel_scope.__exit__(exc_type, exc_val, exc_tb) │ │ 117 │ │ if self._cancel_scope.cancel_called: │ │ ❱ 118 │ │ │ raise TimeoutError │ │ 119 │ │ │ │ 120 │ │ return retval │ │ 121 │ │ │ │ ╭───────────────────────────────────── locals ─────────────────────────────────────╮ │ │ │ self = │ │ │ │ exc_type = │ │ │ │ exc_val = CancelledError() │ │ │ │ exc_tb = │ │ │ │ retval = True │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TimeoutError During handling of the above exception, another exception occurred: ╭─────────────────────────────────────── Traceback (most recent call last) ───────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_tran │ │ sports/default.py:60 in map_httpcore_exceptions │ │ │ │ 57 @contextlib.contextmanager │ │ 58 def map_httpcore_exceptions() -> typing.Iterator[None]: │ │ 59 │ try: │ │ ❱ 60 │ │ yield │ │ 61 │ except Exception as exc: # noqa: PIE-786 │ │ 62 │ │ mapped_exc = None │ │ 63 │ │ │ │ ╭────────────────────── locals ───────────────────────╮ │ │ │ mapped_exc = │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ │ message = '' │ │ │ ╰─────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_tran │ │ sports/default.py:353 in handle_async_request │ │ │ │ 350 │ │ │ extensions=request.extensions, │ │ 351 │ │ ) │ │ 352 │ │ with map_httpcore_exceptions(): │ │ ❱ 353 │ │ │ resp = await self._pool.handle_async_request(req) │ │ 354 │ │ │ │ 355 │ │ assert isinstance(resp.stream, typing.AsyncIterable) │ │ 356 │ │ │ │ ╭────────────────────────────────────────────────── locals ───────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ req = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_a │ │ sync/connection_pool.py:253 in handle_async_request │ │ │ │ 250 │ │ │ │ │ await self._attempt_to_acquire_connection(status) │ │ 251 │ │ │ except BaseException as exc: │ │ 252 │ │ │ │ await self.response_closed(status) │ │ ❱ 253 │ │ │ │ raise exc │ │ 254 │ │ │ else: │ │ 255 │ │ │ │ break │ │ 256 │ │ │ │ ╭──────────────────────────────────────────────── locals ─────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ scheme = 'https' │ │ │ │ status = │ │ │ │ timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 1.0} │ │ │ │ timeout = 1.0 │ │ │ │ connection = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_a │ │ sync/connection_pool.py:237 in handle_async_request │ │ │ │ 234 │ │ │ │ │ raise exc │ │ 235 │ │ │ │ │ 236 │ │ │ try: │ │ ❱ 237 │ │ │ │ response = await connection.handle_async_request(request) │ │ 238 │ │ │ except ConnectionNotAvailable: │ │ 239 │ │ │ │ # The ConnectionNotAvailable exception is a special case, that │ │ 240 │ │ │ │ # indicates we need to retry the request on a new connection. │ │ │ │ ╭──────────────────────────────────────────────── locals ─────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ scheme = 'https' │ │ │ │ status = │ │ │ │ timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 1.0} │ │ │ │ timeout = 1.0 │ │ │ │ connection = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_a │ │ sync/http_proxy.py:286 in handle_async_request │ │ │ │ 283 │ │ │ │ │ "timeout": timeout, │ │ 284 │ │ │ │ } │ │ 285 │ │ │ │ async with Trace("connection.start_tls", request, kwargs) as trace: │ │ ❱ 286 │ │ │ │ │ stream = await stream.start_tls(**kwargs) │ │ 287 │ │ │ │ │ trace.return_value = stream │ │ 288 │ │ │ │ │ │ 289 │ │ │ │ # Determine if we should be using HTTP/1.1 or HTTP/2 │ │ │ │ ╭────────────────────────────────────────────────── locals ───────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 1.0} │ │ │ │ timeout = 5.0 │ │ │ │ target = b'api.telegram.org:443' │ │ │ │ connect_url = URL(scheme=b'http', host=b'127.0.0.1', port=10801, target=b'api.telegram.org:443') │ │ │ │ connect_headers = [(...), (...)] │ │ │ │ connect_request = │ │ │ │ connect_response = │ │ │ │ stream = │ │ │ │ ssl_context = │ │ │ │ alpn_protocols = ['http/1.1'] │ │ │ │ kwargs = { │ │ │ │ │ 'ssl_context': , │ │ │ │ │ 'server_hostname': 'api.telegram.org', │ │ │ │ │ 'timeout': 5.0 │ │ │ │ } │ │ │ │ trace = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/ba │ │ ckends/asyncio.py:64 in start_tls │ │ │ │ 61 │ │ │ TimeoutError: ConnectTimeout, │ │ 62 │ │ │ anyio.BrokenResourceError: ConnectError, │ │ 63 │ │ } │ │ ❱ 64 │ │ with map_exceptions(exc_map): │ │ 65 │ │ │ try: │ │ 66 │ │ │ │ with anyio.fail_after(timeout): │ │ 67 │ │ │ │ │ ssl_stream = await anyio.streams.tls.TLSStream.wrap( │ │ │ │ ╭────────────────────────────────────────── locals ──────────────────────────────────────────╮ │ │ │ self = │ │ │ │ ssl_context = │ │ │ │ server_hostname = 'api.telegram.org' │ │ │ │ timeout = 5.0 │ │ │ │ exc_map = { │ │ │ │ │ : , │ │ │ │ │ : │ │ │ │ } │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /usr/lib/python3.10/contextlib.py:153 in __exit__ │ │ │ │ 150 │ │ │ │ # tell if we get the same exception back │ │ 151 │ │ │ │ value = typ() │ │ 152 │ │ │ try: │ │ ❱ 153 │ │ │ │ self.gen.throw(typ, value, traceback) │ │ 154 │ │ │ except StopIteration as exc: │ │ 155 │ │ │ │ # Suppress StopIteration *unless* it's the same exception that │ │ 156 │ │ │ │ # was passed to throw(). This prevents a StopIteration │ │ │ │ ╭────────────────────────────────── locals ──────────────────────────────────╮ │ │ │ self = │ │ │ │ typ = │ │ │ │ value = TimeoutError() │ │ │ │ traceback = │ │ │ ╰────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_e │ │ xceptions.py:12 in map_exceptions │ │ │ │ 9 │ except Exception as exc: # noqa: PIE786 │ │ 10 │ │ for from_exc, to_exc in map.items(): │ │ 11 │ │ │ if isinstance(exc, from_exc): │ │ ❱ 12 │ │ │ │ raise to_exc(exc) │ │ 13 │ │ raise # pragma: nocover │ │ 14 │ │ 15 │ │ │ │ ╭────────────────────────────────────── locals ───────────────────────────────────────╮ │ │ │ map = { │ │ │ │ │ : , │ │ │ │ │ : │ │ │ │ } │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────╯ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ConnectTimeout The above exception was the direct cause of the following exception: ╭─────────────────────────────────────── Traceback (most recent call last) ───────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/re │ │ quest/_httpxrequest.py:174 in do_request │ │ │ │ 171 │ │ data = request_data.json_parameters if request_data else None │ │ 172 │ │ │ │ 173 │ │ try: │ │ ❱ 174 │ │ │ res = await self._client.request( │ │ 175 │ │ │ │ method=method, │ │ 176 │ │ │ │ url=url, │ │ 177 │ │ │ │ headers={"User-Agent": self.USER_AGENT}, │ │ │ │ ╭──────────────────────────────────────────────── locals ────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ url = 'https://api.telegram.org/bot1086676537:AAEEDHfpfKFnLxdJ7C5PaAdIsXPOSEbiQq0/sendM'+6 │ │ │ │ method = 'POST' │ │ │ │ request_data = │ │ │ │ read_timeout = 5.0 │ │ │ │ write_timeout = 5.0 │ │ │ │ connect_timeout = 5.0 │ │ │ │ pool_timeout = 1.0 │ │ │ │ timeout = Timeout(connect=5.0, read=5.0, write=5.0, pool=1.0) │ │ │ │ files = {} │ │ │ │ data = {'chat_id': '592208461', 'text': '前面的区域,以后再来探索吧!'} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_clie │ │ nt.py:1527 in request │ │ │ │ 1524 │ │ │ timeout=timeout, │ │ 1525 │ │ │ extensions=extensions, │ │ 1526 │ │ ) │ │ ❱ 1527 │ │ return await self.send(request, auth=auth, follow_redirects=follow_redirects) │ │ 1528 │ │ │ 1529 │ @asynccontextmanager │ │ 1530 │ async def stream( │ │ │ │ ╭────────────────────────────────────────────────── locals ───────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ method = 'POST' │ │ │ │ url = 'https://api.telegram.org/bot1086676537:AAEEDHfpfKFnLxdJ7C5PaAdIsXPOSEbiQq0/sendM'+6 │ │ │ │ content = None │ │ │ │ data = {'chat_id': '592208461', 'text': '前面的区域,以后再来探索吧!'} │ │ │ │ files = {} │ │ │ │ json = None │ │ │ │ params = None │ │ │ │ headers = {'User-Agent': 'python-telegram-bot v20.0a4 (https://python-telegram-bot.org)'} │ │ │ │ cookies = None │ │ │ │ auth = │ │ │ │ follow_redirects = │ │ │ │ timeout = Timeout(connect=5.0, read=5.0, write=5.0, pool=1.0) │ │ │ │ extensions = None │ │ │ │ request = │ │ │ │ request = │ │ │ │ kwargs = { │ │ │ │ │ 'auth': , │ │ │ │ │ 'follow_redirects': │ │ │ │ } │ │ │ │ hub = │ │ │ │ span = │ │ │ │ key = 'sentry-trace' │ │ │ │ value = '8c1782362bb541e8a5c5ada24cb045a1-8b2301851ee1cd65-' │ │ │ │ real_send = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_clie │ │ nt.py:1614 in send │ │ │ │ 1611 │ │ │ │ 1612 │ │ auth = self._build_request_auth(request, auth) │ │ 1613 │ │ │ │ ❱ 1614 │ │ response = await self._send_handling_auth( │ │ 1615 │ │ │ request, │ │ 1616 │ │ │ auth=auth, │ │ 1617 │ │ │ follow_redirects=follow_redirects, │ │ │ │ ╭────────────────────────────────────────────────── locals ───────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ follow_redirects = False │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_clie │ │ nt.py:1642 in _send_handling_auth │ │ │ │ 1639 │ │ │ request = await auth_flow.__anext__() │ │ 1640 │ │ │ │ │ 1641 │ │ │ while True: │ │ ❱ 1642 │ │ │ │ response = await self._send_handling_redirects( │ │ 1643 │ │ │ │ │ request, │ │ 1644 │ │ │ │ │ follow_redirects=follow_redirects, │ │ 1645 │ │ │ │ │ history=history, │ │ │ │ ╭────────────────────────────────────────────────── locals ───────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ follow_redirects = False │ │ │ │ history = [] │ │ │ │ auth_flow = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_clie │ │ nt.py:1679 in _send_handling_redirects │ │ │ │ 1676 │ │ │ for hook in self._event_hooks["request"]: │ │ 1677 │ │ │ │ await hook(request) │ │ 1678 │ │ │ │ │ ❱ 1679 │ │ │ response = await self._send_single_request(request) │ │ 1680 │ │ │ try: │ │ 1681 │ │ │ │ for hook in self._event_hooks["response"]: │ │ 1682 │ │ │ │ │ await hook(response) │ │ │ │ ╭────────────────────────────────────────────────── locals ───────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ request = │ │ │ │ transport = │ │ │ │ timer = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_tran │ │ sports/default.py:352 in handle_async_request │ │ │ │ 349 │ │ │ content=request.stream, │ │ 350 │ │ │ extensions=request.extensions, │ │ 351 │ │ ) │ │ ❱ 352 │ │ with map_httpcore_exceptions(): │ │ 353 │ │ │ resp = await self._pool.handle_async_request(req) │ │ 354 │ │ │ │ 355 │ │ assert isinstance(resp.stream, typing.AsyncIterable) │ │ │ │ ╭────────────────────────────────────────────────── locals ───────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ req = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /usr/lib/python3.10/contextlib.py:153 in __exit__ │ │ │ │ 150 │ │ │ │ # tell if we get the same exception back │ │ 151 │ │ │ │ value = typ() │ │ 152 │ │ │ try: │ │ ❱ 153 │ │ │ │ self.gen.throw(typ, value, traceback) │ │ 154 │ │ │ except StopIteration as exc: │ │ 155 │ │ │ │ # Suppress StopIteration *unless* it's the same exception that │ │ 156 │ │ │ │ # was passed to throw(). This prevents a StopIteration │ │ │ │ ╭────────────────────────────────── locals ──────────────────────────────────╮ │ │ │ self = │ │ │ │ typ = │ │ │ │ value = ConnectTimeout(TimeoutError()) │ │ │ │ traceback = │ │ │ ╰────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_tran │ │ sports/default.py:77 in map_httpcore_exceptions │ │ │ │ 74 │ │ │ raise │ │ 75 │ │ │ │ 76 │ │ message = str(exc) │ │ ❱ 77 │ │ raise mapped_exc(message) from exc │ │ 78 │ │ 79 │ │ 80 HTTPCORE_EXC_MAP = { │ │ │ │ ╭────────────────────── locals ───────────────────────╮ │ │ │ mapped_exc = │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ │ message = '' │ │ │ ╰─────────────────────────────────────────────────────╯ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ConnectTimeout The above exception was the direct cause of the following exception: ╭─────────────────────────────────────── Traceback (most recent call last) ───────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/ex │ │ t/_application.py:931 in __create_task_callback │ │ │ │ 928 │ │ │ │ await self.process_error(update=update, error=exception, coroutine=coroutine) │ │ 929 │ │ │ │ │ 930 │ │ │ # Raise exception so that it can be set on the task and retrieved by task.exception() │ │ ❱ 931 │ │ │ raise exception │ │ 932 │ │ finally: │ │ 933 │ │ │ self._mark_for_persistence_update(update=update) │ │ 934 │ │ │ │ ╭────────────────────────────────────── locals ───────────────────────────────────────╮ │ │ │ self = │ │ │ │ coroutine = │ │ │ │ update = │ │ │ │ is_error_handler = False │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/ex │ │ t/_application.py:903 in __create_task_callback │ │ │ │ 900 │ │ is_error_handler: bool = False, │ │ 901 │ ) -> _RT: │ │ 902 │ │ try: │ │ ❱ 903 │ │ │ return await coroutine │ │ 904 │ │ except asyncio.CancelledError as cancel: │ │ 905 │ │ │ # TODO: in py3.8+, CancelledError is a subclass of BaseException, so we can drop this │ │ 906 │ │ │ # clause when we drop py3.7 │ │ │ │ ╭────────────────────────────────────── locals ───────────────────────────────────────╮ │ │ │ self = │ │ │ │ coroutine = │ │ │ │ update = │ │ │ │ is_error_handler = False │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/ex │ │ t/_handler.py:137 in handle_update │ │ │ │ 134 │ │ │ │ 135 │ │ """ │ │ 136 │ │ self.collect_additional_context(context, update, application, check_result) │ │ ❱ 137 │ │ return await self.callback(update, context) │ │ 138 │ │ │ 139 │ def collect_additional_context( │ │ 140 │ │ self, │ │ │ │ ╭──────────────────────────────────────── locals ─────────────────────────────────────────╮ │ │ │ self = │ │ │ │ update = │ │ │ │ application = │ │ │ │ check_result = True │ │ │ │ context = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/utils/decorators/restricts.py:107 in restricts_func │ │ │ │ 104 │ │ │ │ │ 105 │ │ │ if count > 1: │ │ 106 │ │ │ │ await asyncio.sleep(count) │ │ ❱ 107 │ │ │ return await func(*args, **kwargs) │ │ 108 │ │ │ │ 109 │ │ return restricts_func │ │ 110 │ │ │ │ ╭──────────────────────────────────────────────── locals ─────────────────────────────────────────────────╮ │ │ │ args = ( │ │ │ │ │ , │ │ │ │ │ │ │ │ │ ) │ │ │ │ kwargs = {} │ │ │ │ update = │ │ │ │ context = │ │ │ │ message = │ │ │ │ user = │ │ │ │ _restricts_time = 9 │ │ │ │ user_lock = │ │ │ │ command_time = 0 │ │ │ │ count = 0 │ │ │ │ restrict_since = 0 │ │ │ │ func = │ │ │ │ restricts_time = 9 │ │ │ │ restricts_time_of_groups = None │ │ │ │ return_data = None │ │ │ │ without_overlapping = False │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/plugins/system/start.py:40 in unknown_command │ │ │ │ 37 │ @staticmethod │ │ 38 │ @restricts() │ │ 39 │ async def unknown_command(update: Update, _: CallbackContext) -> None: │ │ ❱ 40 │ │ await update.effective_message.reply_text("前面的区域,以后再来探索吧!") │ │ 41 │ │ │ 42 │ @staticmethod │ │ 43 │ @restricts() │ │ │ │ ╭───────────────────────────────────── locals ──────────────────────────────────────╮ │ │ │ update = │ │ │ │ _ = │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/_m │ │ essage.py:802 in reply_text │ │ │ │ 799 │ │ │ │ 800 │ │ """ │ │ 801 │ │ reply_to_message_id = self._quote(quote, reply_to_message_id) │ │ ❱ 802 │ │ return await self.get_bot().send_message( │ │ 803 │ │ │ chat_id=self.chat_id, │ │ 804 │ │ │ text=text, │ │ 805 │ │ │ parse_mode=parse_mode, │ │ │ │ ╭────────────────────────────────────── locals ──────────────────────────────────────╮ │ │ │ self = │ │ │ │ text = '前面的区域,以后再来探索吧!' │ │ │ │ parse_mode = None │ │ │ │ disable_web_page_preview = None │ │ │ │ disable_notification = None │ │ │ │ reply_to_message_id = None │ │ │ │ reply_markup = None │ │ │ │ allow_sending_without_reply = None │ │ │ │ entities = None │ │ │ │ protect_content = None │ │ │ │ quote = None │ │ │ │ read_timeout = None │ │ │ │ write_timeout = None │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ │ api_kwargs = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/ex │ │ t/_extbot.py:2263 in send_message │ │ │ │ 2260 │ │ api_kwargs: JSONDict = None, │ │ 2261 │ │ rate_limit_args: RLARGS = None, │ │ 2262 │ ) -> Message: │ │ ❱ 2263 │ │ return await super().send_message( │ │ 2264 │ │ │ chat_id=chat_id, │ │ 2265 │ │ │ text=text, │ │ 2266 │ │ │ parse_mode=parse_mode, │ │ │ │ ╭─────────────────────────────────────── locals ───────────────────────────────────────╮ │ │ │ self = │ │ │ │ chat_id = 592208461 │ │ │ │ text = '前面的区域,以后再来探索吧!' │ │ │ │ parse_mode = None │ │ │ │ entities = None │ │ │ │ disable_web_page_preview = None │ │ │ │ disable_notification = None │ │ │ │ protect_content = None │ │ │ │ reply_to_message_id = None │ │ │ │ allow_sending_without_reply = None │ │ │ │ reply_markup = None │ │ │ │ read_timeout = None │ │ │ │ write_timeout = None │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ │ api_kwargs = None │ │ │ │ rate_limit_args = None │ │ │ │ __class__ = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/_b │ │ ot.py:242 in decorator │ │ │ │ 239 │ │ @functools.wraps(func) │ │ 240 │ │ async def decorator(*args, **kwargs): # type: ignore[no-untyped-def] │ │ 241 │ │ │ logger.debug("Entering: %s", func.__name__) │ │ ❱ 242 │ │ │ result = await func(*args, **kwargs) │ │ 243 │ │ │ logger.debug(result) │ │ 244 │ │ │ logger.debug("Exiting: %s", func.__name__) │ │ 245 │ │ │ return result │ │ │ │ ╭────────────────────────────── locals ──────────────────────────────╮ │ │ │ args = (,) │ │ │ │ kwargs = { │ │ │ │ │ 'chat_id': 592208461, │ │ │ │ │ 'text': '前面的区域,以后再来探索吧!', │ │ │ │ │ 'parse_mode': None, │ │ │ │ │ 'entities': None, │ │ │ │ │ 'disable_web_page_preview': None, │ │ │ │ │ 'disable_notification': None, │ │ │ │ │ 'protect_content': None, │ │ │ │ │ 'reply_to_message_id': None, │ │ │ │ │ 'allow_sending_without_reply': None, │ │ │ │ │ 'reply_markup': None, │ │ │ │ │ ... +5 │ │ │ │ } │ │ │ │ func = │ │ │ │ logger = │ │ │ ╰────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/_b │ │ ot.py:662 in send_message │ │ │ │ 659 │ │ if entities: │ │ 660 │ │ │ data["entities"] = entities │ │ 661 │ │ │ │ ❱ 662 │ │ return await self._send_message( # type: ignore[return-value] │ │ 663 │ │ │ "sendMessage", │ │ 664 │ │ │ data, │ │ 665 │ │ │ reply_to_message_id=reply_to_message_id, │ │ │ │ ╭─────────────────────────────────────── locals ───────────────────────────────────────╮ │ │ │ self = │ │ │ │ chat_id = 592208461 │ │ │ │ text = '前面的区域,以后再来探索吧!' │ │ │ │ parse_mode = None │ │ │ │ entities = None │ │ │ │ disable_web_page_preview = None │ │ │ │ disable_notification = None │ │ │ │ protect_content = None │ │ │ │ reply_to_message_id = None │ │ │ │ allow_sending_without_reply = None │ │ │ │ reply_markup = None │ │ │ │ read_timeout = None │ │ │ │ write_timeout = None │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ │ api_kwargs = None │ │ │ │ data = { │ │ │ │ │ 'chat_id': 592208461, │ │ │ │ │ 'text': '前面的区域,以后再来探索吧!', │ │ │ │ │ 'parse_mode': None, │ │ │ │ │ 'disable_web_page_preview': None, │ │ │ │ │ 'disable_notification': None, │ │ │ │ │ 'allow_sending_without_reply': None, │ │ │ │ │ 'protect_content': None │ │ │ │ } │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/ex │ │ t/_extbot.py:449 in _send_message │ │ │ │ 446 │ ) -> Union[bool, Message]: │ │ 447 │ │ # We override this method to call self._replace_keyboard and self._insert_callback_data. │ │ 448 │ │ # This covers most methods that have a reply_markup │ │ ❱ 449 │ │ result = await super()._send_message( │ │ 450 │ │ │ endpoint=endpoint, │ │ 451 │ │ │ data=data, │ │ 452 │ │ │ reply_to_message_id=reply_to_message_id, │ │ │ │ ╭─────────────────────────────────────── locals ───────────────────────────────────────╮ │ │ │ self = │ │ │ │ endpoint = 'sendMessage' │ │ │ │ data = { │ │ │ │ │ 'chat_id': 592208461, │ │ │ │ │ 'text': '前面的区域,以后再来探索吧!', │ │ │ │ │ 'parse_mode': None, │ │ │ │ │ 'disable_web_page_preview': None, │ │ │ │ │ 'disable_notification': None, │ │ │ │ │ 'allow_sending_without_reply': None, │ │ │ │ │ 'protect_content': None │ │ │ │ } │ │ │ │ reply_to_message_id = None │ │ │ │ disable_notification = None │ │ │ │ reply_markup = None │ │ │ │ allow_sending_without_reply = None │ │ │ │ protect_content = None │ │ │ │ read_timeout = None │ │ │ │ write_timeout = None │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ │ api_kwargs = None │ │ │ │ __class__ = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/_b │ │ ot.py:371 in _send_message │ │ │ │ 368 │ │ if reply_markup is not None: │ │ 369 │ │ │ data["reply_markup"] = reply_markup │ │ 370 │ │ │ │ ❱ 371 │ │ result = await self._post( │ │ 372 │ │ │ endpoint, │ │ 373 │ │ │ data, │ │ 374 │ │ │ read_timeout=read_timeout, │ │ │ │ ╭─────────────────────────────────────── locals ───────────────────────────────────────╮ │ │ │ self = │ │ │ │ endpoint = 'sendMessage' │ │ │ │ data = { │ │ │ │ │ 'chat_id': 592208461, │ │ │ │ │ 'text': '前面的区域,以后再来探索吧!', │ │ │ │ │ 'parse_mode': None, │ │ │ │ │ 'disable_web_page_preview': None, │ │ │ │ │ 'disable_notification': None, │ │ │ │ │ 'allow_sending_without_reply': None, │ │ │ │ │ 'protect_content': None │ │ │ │ } │ │ │ │ reply_to_message_id = None │ │ │ │ disable_notification = None │ │ │ │ reply_markup = None │ │ │ │ allow_sending_without_reply = None │ │ │ │ protect_content = None │ │ │ │ read_timeout = None │ │ │ │ write_timeout = None │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ │ api_kwargs = None │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/_b │ │ ot.py:303 in _post │ │ │ │ 300 │ │ # Drop any None values because Telegram doesn't handle them well │ │ 301 │ │ data = {key: value for key, value in data.items() if value is not None} │ │ 302 │ │ │ │ ❱ 303 │ │ return await self._do_post( │ │ 304 │ │ │ endpoint=endpoint, │ │ 305 │ │ │ data=data, │ │ 306 │ │ │ read_timeout=read_timeout, │ │ │ │ ╭───────────────────────────────────── locals ─────────────────────────────────────╮ │ │ │ self = │ │ │ │ endpoint = 'sendMessage' │ │ │ │ data = {'chat_id': 592208461, 'text': '前面的区域,以后再来探索吧!'} │ │ │ │ read_timeout = None │ │ │ │ write_timeout = None │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ │ api_kwargs = None │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/ex │ │ t/_extbot.py:301 in _do_post │ │ │ │ 298 │ │ │ type(self.rate_limiter), │ │ 299 │ │ │ rate_limit_args, │ │ 300 │ │ ) │ │ ❱ 301 │ │ return await self.rate_limiter.process_request( │ │ 302 │ │ │ callback=super()._do_post, │ │ 303 │ │ │ args=(endpoint, data), │ │ 304 │ │ │ kwargs=kwargs, │ │ │ │ ╭───────────────────────────────────── locals ─────────────────────────────────────╮ │ │ │ self = │ │ │ │ endpoint = 'sendMessage' │ │ │ │ data = {'chat_id': 592208461, 'text': '前面的区域,以后再来探索吧!'} │ │ │ │ read_timeout = None │ │ │ │ write_timeout = None │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ │ rate_limit_args = None │ │ │ │ kwargs = { │ │ │ │ │ 'read_timeout': None, │ │ │ │ │ 'write_timeout': None, │ │ │ │ │ 'connect_timeout': None, │ │ │ │ │ 'pool_timeout': None │ │ │ │ } │ │ │ │ __class__ = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/ex │ │ t/_aioratelimiter.py:245 in process_request │ │ │ │ 242 │ │ │ │ 243 │ │ for i in range(max_retries + 1): │ │ 244 │ │ │ try: │ │ ❱ 245 │ │ │ │ return await self._run_request( │ │ 246 │ │ │ │ │ chat=chat, group=group, callback=callback, args=args, kwargs=kwargs │ │ 247 │ │ │ │ ) │ │ 248 │ │ │ except RetryAfter as exc: │ │ │ │ ╭────────────────────────────────────────────────── locals ───────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ callback = > │ │ │ │ args = ('sendMessage', {...}) │ │ │ │ kwargs = { │ │ │ │ │ 'read_timeout': None, │ │ │ │ │ 'write_timeout': None, │ │ │ │ │ 'connect_timeout': None, │ │ │ │ │ 'pool_timeout': None │ │ │ │ } │ │ │ │ endpoint = 'sendMessage' │ │ │ │ data = {'chat_id': 592208461, 'text': '前面的区域,以后再来探索吧!'} │ │ │ │ rate_limit_args = None │ │ │ │ max_retries = 0 │ │ │ │ group = False │ │ │ │ chat = True │ │ │ │ chat_id = 592208461 │ │ │ │ i = 0 │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/ex │ │ t/_aioratelimiter.py:201 in _run_request │ │ │ │ 198 │ │ │ │ # In case a retry_after was hit, we wait with processing the request │ │ 199 │ │ │ │ await self._retry_after_event.wait() │ │ 200 │ │ │ │ │ │ ❱ 201 │ │ │ │ return await callback(*args, **kwargs) │ │ 202 │ │ │ 203 │ # mypy doesn't understand that the last run of the for loop raises an exception │ │ 204 │ async def process_request( # type: ignore[return] │ │ │ │ ╭────────────────────────────────────────────────── locals ───────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ chat = True │ │ │ │ group = False │ │ │ │ callback = > │ │ │ │ args = ('sendMessage', {...}) │ │ │ │ kwargs = { │ │ │ │ │ 'read_timeout': None, │ │ │ │ │ 'write_timeout': None, │ │ │ │ │ 'connect_timeout': None, │ │ │ │ │ 'pool_timeout': None │ │ │ │ } │ │ │ │ base_context = │ │ │ │ group_context = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/_b │ │ ot.py:334 in _do_post │ │ │ │ 331 │ │ else: │ │ 332 │ │ │ request = self._request[1] │ │ 333 │ │ │ │ ❱ 334 │ │ return await request.post( │ │ 335 │ │ │ url=f"{self.base_url}/{endpoint}", │ │ 336 │ │ │ request_data=request_data, │ │ 337 │ │ │ read_timeout=read_timeout, │ │ │ │ ╭───────────────────────────────────────── locals ─────────────────────────────────────────╮ │ │ │ self = │ │ │ │ endpoint = 'sendMessage' │ │ │ │ data = {'chat_id': 592208461, 'text': '前面的区域,以后再来探索吧!'} │ │ │ │ read_timeout = None │ │ │ │ write_timeout = None │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ │ request_data = │ │ │ │ request = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/re │ │ quest/_baserequest.py:162 in post │ │ │ │ 159 │ │ Dict[:obj:`str`, ...]: The JSON response of the Bot API. │ │ 160 │ │ │ │ 161 │ │ """ │ │ ❱ 162 │ │ result = await self._request_wrapper( │ │ 163 │ │ │ url=url, │ │ 164 │ │ │ method="POST", │ │ 165 │ │ │ request_data=request_data, │ │ │ │ ╭──────────────────────────────────────────────── locals ────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ url = 'https://api.telegram.org/bot1086676537:AAEEDHfpfKFnLxdJ7C5PaAdIsXPOSEbiQq0/sendM'+6 │ │ │ │ request_data = │ │ │ │ read_timeout = None │ │ │ │ write_timeout = None │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/re │ │ quest/_baserequest.py:285 in _request_wrapper │ │ │ │ 282 │ │ │ # clause when we drop py3.7 │ │ 283 │ │ │ raise exc │ │ 284 │ │ except TelegramError as exc: │ │ ❱ 285 │ │ │ raise exc │ │ 286 │ │ except Exception as exc: │ │ 287 │ │ │ raise NetworkError(f"Unknown error in HTTP implementation: {repr(exc)}") from exc │ │ 288 │ │ │ │ ╭──────────────────────────────────────────────── locals ────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ url = 'https://api.telegram.org/bot1086676537:AAEEDHfpfKFnLxdJ7C5PaAdIsXPOSEbiQq0/sendM'+6 │ │ │ │ method = 'POST' │ │ │ │ request_data = │ │ │ │ read_timeout = None │ │ │ │ write_timeout = None │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/re │ │ quest/_baserequest.py:271 in _request_wrapper │ │ │ │ 268 │ │ # However, we rather rely on the HTTP status code for now. │ │ 269 │ │ │ │ 270 │ │ try: │ │ ❱ 271 │ │ │ code, payload = await self.do_request( │ │ 272 │ │ │ │ url=url, │ │ 273 │ │ │ │ method=method, │ │ 274 │ │ │ │ request_data=request_data, │ │ │ │ ╭──────────────────────────────────────────────── locals ────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ url = 'https://api.telegram.org/bot1086676537:AAEEDHfpfKFnLxdJ7C5PaAdIsXPOSEbiQq0/sendM'+6 │ │ │ │ method = 'POST' │ │ │ │ request_data = │ │ │ │ read_timeout = None │ │ │ │ write_timeout = None │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/re │ │ quest/_httpxrequest.py:191 in do_request │ │ │ │ 188 │ │ │ │ │ │ "pool size or the pool timeout." │ │ 189 │ │ │ │ │ ) │ │ 190 │ │ │ │ ) from err │ │ ❱ 191 │ │ │ raise TimedOut from err │ │ 192 │ │ except httpx.HTTPError as err: │ │ 193 │ │ │ # HTTPError must come last as its the base httpx exception class │ │ 194 │ │ │ # TODO p4: do something smart here; for now just raise NetworkError │ │ │ │ ╭──────────────────────────────────────────────── locals ────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ url = 'https://api.telegram.org/bot1086676537:AAEEDHfpfKFnLxdJ7C5PaAdIsXPOSEbiQq0/sendM'+6 │ │ │ │ method = 'POST' │ │ │ │ request_data = │ │ │ │ read_timeout = 5.0 │ │ │ │ write_timeout = 5.0 │ │ │ │ connect_timeout = 5.0 │ │ │ │ pool_timeout = 1.0 │ │ │ │ timeout = Timeout(connect=5.0, read=5.0, write=5.0, pool=1.0) │ │ │ │ files = {} │ │ │ │ data = {'chat_id': '592208461', 'text': '前面的区域,以后再来探索吧!'} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TimedOut: Timed out [2022-10-21 11:17:51] INFO 正在关闭服务 core.bot 192 INFO Shutting down uvicorn.server 253 INFO Waiting for application shutdown. uvicorn.lifespan.on 66 INFO Application shutdown complete. uvicorn.lifespan.on 77 INFO Finished server process [280235] uvicorn.server 85 SUCCESS 服务 "WebServer" 关闭成功 core.bot 201 SUCCESS 服务 "MySQL" 关闭成功 core.bot 201 SUCCESS 服务 "RedisDB" 关闭成功 core.bot 201 SUCCESS 服务 "MTProto" 关闭成功 core.bot 201 INFO BOT 已经关闭 core.bot 266 [2022-10-21 11:18:05] INFO 正在初始化BOT core.bot 234 [2022-10-21 11:18:07] INFO 开始初始化 genshin.py 相关资源 core.bot 208 [2022-10-21 11:18:09] SUCCESS 初始化 genshin.py 相关资源成功 core.bot 223 INFO 开始初始化服务 core.bot 225 [2022-10-21 11:18:10] SUCCESS 服务 "WebServer" 初始化成功 core.bot 168 SUCCESS 服务 "MySQL" 初始化成功 core.bot 168 INFO 正在尝试建立与 Redis 连接 core.base.redisdb 33 INFO 连接 Redis 成功 core.base.redisdb 25 SUCCESS 服务 "RedisDB" 初始化成功 core.bot 168 INFO MTProto 服务需要的 pyrogram 模块未导入 本次服务 client 为 None core.base.mtproto 47 SUCCESS 服务 "MTProto" 初始化成功 core.bot 168 INFO 正在刷新元数据 core.base.assets 492 [2022-10-21 11:18:13] ERROR 服务 "AssetsService" 初始化失败: peer closed connection without sending complete message body (received 64720 bytes, expected core.bot 171 10563527) ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_exceptions.py:8 in │ │ map_exceptions │ │ │ │ 5 @contextlib.contextmanager │ │ 6 def map_exceptions(map: Dict[Type, Type]) -> Iterator[None]: │ │ 7 │ try: │ │ ❱ 8 │ │ yield │ │ 9 │ except Exception as exc: # noqa: PIE786 │ │ 10 │ │ for from_exc, to_exc in map.items(): │ │ 11 │ │ │ if isinstance(exc, from_exc): │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ map = {: } │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py:174 │ │ in _receive_event │ │ │ │ 171 │ async def _receive_event(self, timeout: Optional[float] = None) -> H11Event: │ │ 172 │ │ while True: │ │ 173 │ │ │ with map_exceptions({h11.RemoteProtocolError: RemoteProtocolError}): │ │ ❱ 174 │ │ │ │ event = self._h11_state.next_event() │ │ 175 │ │ │ │ │ 176 │ │ │ if event is h11.NEED_DATA: │ │ 177 │ │ │ │ data = await self._network_stream.read( │ │ │ │ ╭────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ self = │ │ │ │ timeout = 5.0 │ │ │ │ event = NEED_DATA │ │ │ │ data = b'' │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/h11/_connection.py:425 in │ │ next_event │ │ │ │ 422 │ │ if self.their_state is ERROR: │ │ 423 │ │ │ raise RemoteProtocolError("Can't receive data when peer state is ERROR") │ │ 424 │ │ try: │ │ ❱ 425 │ │ │ event = self._extract_next_receive_event() │ │ 426 │ │ │ if event not in [NEED_DATA, PAUSED]: │ │ 427 │ │ │ │ self._process_event(self.their_role, event) │ │ 428 │ │ │ if event is NEED_DATA: │ │ │ │ ╭─────────────────────────── locals ───────────────────────────╮ │ │ │ self = │ │ │ ╰──────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/h11/_connection.py:375 in │ │ _extract_next_receive_event │ │ │ │ 372 │ │ │ │ # return that event, and then the state will change and we'll │ │ 373 │ │ │ │ # get called again to generate the actual ConnectionClosed(). │ │ 374 │ │ │ │ if hasattr(self._reader, "read_eof"): │ │ ❱ 375 │ │ │ │ │ event = self._reader.read_eof() │ │ 376 │ │ │ │ else: │ │ 377 │ │ │ │ │ event = ConnectionClosed() │ │ 378 │ │ if event is None: │ │ │ │ ╭─────────────────────────── locals ────────────────────────────╮ │ │ │ self = │ │ │ │ state = SEND_BODY │ │ │ │ event = None │ │ │ ╰───────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/h11/_readers.py:117 in │ │ read_eof │ │ │ │ 114 │ │ return Data(data=data) │ │ 115 │ │ │ 116 │ def read_eof(self): │ │ ❱ 117 │ │ raise RemoteProtocolError( │ │ 118 │ │ │ "peer closed connection without sending complete message body " │ │ 119 │ │ │ "(received {} bytes, expected {})".format( │ │ 120 │ │ │ │ self._length - self._remaining, self._length │ │ │ │ ╭────────────────────────────── locals ──────────────────────────────╮ │ │ │ self = │ │ │ ╰────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ RemoteProtocolError: peer closed connection without sending complete message body (received 64720 bytes, expected 10563527) During handling of the above exception, another exception occurred: ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py:6 │ │ 0 in map_httpcore_exceptions │ │ │ │ 57 @contextlib.contextmanager │ │ 58 def map_httpcore_exceptions() -> typing.Iterator[None]: │ │ 59 │ try: │ │ ❱ 60 │ │ yield │ │ 61 │ except Exception as exc: # noqa: PIE-786 │ │ 62 │ │ mapped_exc = None │ │ 63 │ │ │ │ ╭────────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │ │ mapped_exc = │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ │ message = 'peer closed connection without sending complete message body (received 64720 byt'+22 │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py:2 │ │ 39 in __aiter__ │ │ │ │ 236 │ │ │ 237 │ async def __aiter__(self) -> typing.AsyncIterator[bytes]: │ │ 238 │ │ with map_httpcore_exceptions(): │ │ ❱ 239 │ │ │ async for part in self._httpcore_stream: │ │ 240 │ │ │ │ yield part │ │ 241 │ │ │ 242 │ async def aclose(self) -> None: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ part = b"J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba AsyncIterator[bytes]: │ │ ❱ 346 │ │ async for part in self._stream: │ │ 347 │ │ │ yield part │ │ 348 │ │ │ 349 │ async def aclose(self) -> None: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ part = b"J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba None: │ │ 303 │ │ if not self._closed: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ kwargs = {'request': } │ │ │ │ chunk = b"J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba │ │ │ │ kwargs = {'request': } │ │ │ │ chunk = b"J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba │ │ │ │ request = │ │ │ │ timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 5.0} │ │ │ │ timeout = 5.0 │ │ │ │ event = Data(data=bytearray(b'J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba\x04\xd2H\xa0\xbb\x9… │ │ │ │ \x89\\|\x822\xbcX\xe8\xca\x99\x85\'\xa1MQ\x8af\xd7\xbf\xbb\xdd\x0ef\\.\xef\x84\xae#p(&\xb0\xd1B\xe5\x13\xd7\xef(]^… │ │ │ │ \x88\xcf\x9b\xab\xfe\xfa\xca\xdfRj\xc3\xe8\xdd\x8aG\xc1K\xeb6\xc8e\x90Hc\x1e<\xa5\xdd\xbaHI\x8c\xfe\x08\x0e\xc8\xa… │ │ │ │ \xee\x9b}!G\xde"\xad\x88\x15\xbe;_\xfc\xdc\x01\x01LyL\xf9Hh\x93gr\xe4a\xb4\x94\xbb8\x98{\xf5\xb6S\xa2\xb8\xfb(tD:\… │ │ │ │ \xac\xc8}\xa7hEf%\xcdDt}\xbc\xb1h\x97\x04\x10\x8bY\xfe\xb7+\xdaF\xded\xcd.\x1f\xa4\xc4\xd5\x03\xaf}\xa0\xb5\x81&\x… │ │ │ │ \xc7o\xf0\x04yu\xf4\xa5\xe5?\x87\x8f\t@Pq;\xeeR41\x9a\xc0F\x8e\x07\xfe\xfb\x99\xc4dt\x95q\xab\x8es6\xfbd.\xb1\x89r… │ │ │ │ \x80*_E\xcf\xdfD7\xd1_i\x7f\xbeI.H!}\x80\xd0Z\x18\xb2\xc3\xb2\xa4\x10Z\x1f\xd5\xe8\x02\xa0>\x7f\t?\xf9\x85w\xb9y\x… │ │ │ │ \xad\xed\xf2g\xff&\xd8\xdd\x93\x06\xb1(?\'\xdd\xfcpmjK\xa0\xc4\x7f=fp\r\xdc\xc6\xe8~\x8eBMI_\xf1B\xc6\r\x0b\x90T%\… │ │ │ │ _3\x99\x8d\xdd\r\xda\xb8\xc3I\xafs24zy\x8cFo\x1a\xe4\xde\xff\xb8F\xec\xc4\xff\xcci\x84!-4\xb4 │ │ │ │ \x8bbx:umz\xd9\x9c\x13#\xabh\x97\xc4\xdeH{\xa4\xf0\x85j\xa3,\xd3\xcc\xdaj\xa3O\\kE\x94\xd9\xde\xe7\xed^?)\x94\x02\… │ │ │ │ H\xa9\x14<\xbf*\xc4/\xff\xfbw\xb1\x80\x012\x07\x8a\xdb\xf3ZQ\xb6\xb3\x9cN\xf0<\x17<_K\x16X\xf7\x18\xe9!(\x1a\xb5\x… │ │ │ │ TSz\xd4\xd9,\x85M\x8e\x1b\xa3Q>\x8e?\xdf\x87\x8c\xbaY\xf9|\xabG\x8b\x8f\xc0\xbbl\xbd\xf9\x8b\xda\xba\xca\xd2\xf2f\… │ │ │ │ wa8k\xa8S\xfdG`\xe4<\xa6\x8d\xb1\xe6o\xdck\xf7\xe4\xba\xa6c\xe7\x0c[\xbbs\nv\xf5I\x9bE\xf3\xa42\xaf(?\xf5\xce\xe12… │ │ │ │ \xf2gR<\xa5]yn\x9b\xdc\xe8P\x94M{\x8cF\xbf\x8c\x12\x0eE\x0c\xf2\x92\xc7k\x87t\x0e\xedG\xd7\xccf\x12d+t\x04\xee │ │ │ │ @4\xacE\x17kQ\xf9a2\x90B\x0er\xe3\x1c\xf5\x1c[b\xba\x0f\xb4\xdfM\xcb\x05\xa8F,\xeb\x06\x1a\x9b\xc6\x8f\x07ayQ\x1b\… │ │ │ │ &k\xe6T\xde8\xd8|\x1a\x0f\xebh\xee\xa2W\xc2\xc2\xe3A\xf3V\x1bk\x92\xdd\xb1\x0cY)x\x14\xe1=\xa1\xb5\xbb[\x07\x91\xd… │ │ │ │ \xe7\x94\xfd\x95#\x88\xe3\x96\x8a\xf4\xb9\x01\xa0\xb9\xea\x834\x16Y9\xd4\xa7\xa2r_\x14\x0f$I\x8dR\xc9\xf6\xd1\xb8\… │ │ │ │ d;|\xfc)\x13\xcf\x1d\x00%_\xf8`\x8a(]\x1f/ggTu\x0c\xc3\x0e\x01c\x0e\x96(p,1q&\xdc\xdd\x84sA2\t\xc1\xdd9\x12\xe0,v9… │ │ │ │ \xd7\'n\xb0\xc3\x19\x04\xf3J\x11,\xb0\xab\x9c\xb7\x14l\xe7\xe7h\x1f\xbaO\xdbg │ │ │ │ 3b\xdf\x13T\x11\xc7}\x9a\xe0\x12+\xc2\x17\xac\x0e\xbe\x8b[+\x81\xe0\xa5\t\x05\x98\x063U\x96\xaf\xe2N\xbbB\xb0\xb5\… │ │ │ │ *\xa8\xdc\xc6\xc7h\xe4]U\xd9f*|\xff\xf20\xbc\xc8+\x03p{\xcb\xdc\x91\xcf2\x86\x81\x0f\x1b\xd1\xb0CG\x05\xeb\x15\xb6… │ │ │ │ \x03\xcc\x90F\x95\xbc\xe7\x91t\xff41\xa4\xc3\xfcs\xb0\x11\x0eTI\x0bT\xf3\xe4\xf2\x93\x9f\xcd:\xf7B\x8b\xf9\x1d\xb7… │ │ │ │ \xd1m\xc9\x9aL"\xe5pw\x80\xf0\xa4\xd1\x1e_/\x8e\xef\xe6\x83U\xc6?&dI\xf4\xc5\xf2k\xe8\x06\xb8\xa7\x086\xa56\xe5d\x… │ │ │ │ #l\xeda\xbfH\xbf\x93\xcf\x8f\x11\x14t7.\x91g\xa7\xdd\xb0\x9c\xa7I\'\x00\x83\xe4\x01i\xfc\x98\xc1\x86`\x1a^\xd9\x92… │ │ │ │ \xca\x1fU\xd4}\x06\xe5\xe43\xc1\x98\xdd\xb5X\xccc7\xb9\xcfp\xf0\r\x1c\xbb\xf9z\xd0\xab\x83\xd8\x0f\xbep\xaa\xb2\xe… │ │ │ │ \xac\xc8\x8d\xfa"\xb2\xe0\xe8\xad/\xab\x80o\xeeFXF\xa4 │ │ │ │ .YI!9\xc0\xd5\x16Vh;I\x93\x860/yV\xee\x1e7\xd1y\x92\xff\xd5\xd9\x0f\x85\x7f\'\xa1\xf0\x96\xede\x060!\xcc}\x9f\xfd\… │ │ │ │ 5\xe7(:5\r\xcb\x95\x07\x0c\x17\x0e\xb1\xf2\xee\xd6@6\xb7\x01eSz)X\x17+\x14j\xdd\xe9\x07\xd9\xb6\xe1R`\xfc\x85\'\x8… │ │ │ │ (\x88\xdb-\x91\xfbiA\xd4\x10\xb3\xecq\x93\x03\xb4=\xda\xd9\x13)\xa0t\x13j\x06\xfb\x91,dy\xef\xf2\x19\xe4\xed\x1b\x… │ │ │ │ )?\x91~\xc3\xc6\xcc\xb4\xe5"\x9a\x99\xe8\xb80_\xd8\x05&\xc5\x07\x19\xbbCazH\xb7\x82f\xc1\t\xef\x1a\x86\x80\x0f\xeb… │ │ │ │ \x1cr\x8b\xe2\x0c1\x82G2\xedp\x8dv98L\xa1\x94LpO@X\xcc\x13\x84\xd9L\xdf\x94I\xef(C\xde\x931\xf9\x1a\xc8q\r+\xa9Q9r… │ │ │ │ \x11\xd2\x02@\x86\xe1\xd3\xfe\xdbct\xcc\xc2\xe8\xd8\x17W$\xdb,\xa9\xb0i0\xb9\rp\x9f\xeb\xa9)\xaaM^\xd0U\x9a\x8em\x… │ │ │ │ \x86!B~\x93g\x05\xef\x1c@\x0c\xbfO\xbf@\x8f\xbcKnC\xe2\xc7_\xfe\xf0k[\xc8\x80\xde\xec\xf8\xe7\xbbX\xeb\x1ch\xc4\\{… │ │ │ │ \x06\x1fT\xe98\xe6\xcd\x7f\x16/&\x8c\xc9\xe8\x94\xc1\xe7\xd4\xf4\x97\xf7\xebo\xa6:k\xc1\xb7M\x0bL\xcc;\xd9\xbah\xf… │ │ │ │ \xe3\xde.\x90\xdf\'\x98-m\xb8e\xe6r\xb4\x0f\xc8E\xb9\xca\x84\x9c\xe8\xfc\x1b\xabp\xa0\x1c\xaaT\xbf\xc0X\xc3\xd1;-C… │ │ │ │ y\xff\xa3\x10\x0e\xee\xb4!\x1e\xf9\xdd\xa6\x19\xbf\x92\xe5\xa0\xd1\x0c\xabe\xbf\xd7\x10\xbf\xb5p\xe3W\xe6>\xfb\x13… │ │ │ │ \xd0\xe4Lm\xbcF[\x8bSL\x0e9\xf2\xcb2\x80\xaeXzJ\xf6o\xff\xd6\xcb\xe4l4\x19\xec>G[\xed\xc4+\xe8\xcd\x07\xcdI/T.G\x8… │ │ │ │ 9:\x9fd\x94\xad\x0c\x996K\x852\x7f\xef\x84\xa4\xc5q\x8d\xa9\n,\xda\x96d\x99\x0e(\x99\xe45ME\xfb\xf4\x1b\xbc?\t\xea… │ │ │ │ \xb6\x18 │ │ │ │ \x15\xe6\x90\xeb\xeeS\xf4<\x19\xe4Q\xbc#\xb3\x8c\x96m\xedL\xd4\x8d\xbf\x8b5\xd9\x82<\x9c[\xc9\xf5\x8c\xf3\x0b\xf0\… │ │ │ │ c\'\xa7 │ │ │ │ \x05V&\x89\xdfX\xf4$XYe\x80\r\xf2\xfc\xe3\xfc\x1c\xbaDe\xafG"G+\xde[h\xed\xcb\xe4fb\x8bpm!h\x96\xc8\xdfC\xe9\x81\x… │ │ │ │ }i\xd8\xe3\xd6q\xac8\xdaO\xfa\xf5\xf4X\x17q\x02\x9f\x94\xdd\xbc\x84\xf5\x0f\x93Gf9\xb3\xfak\x07\xd9t\x18y\xd4\x82j… │ │ │ │ WI\xbe\x9ctlh\x1dX\xe3a\x9dS\xb0{~oAu\xacw\xde\x90\xd8\xff(\x01lRx\x8a^N\xd3\x10\x12\xcb\xf0(\x0c\x91\x85A\xb3\xc2… │ │ │ │ \xd8\x1aF\xf3g)\xe9\xaa,<5\xd4\r&W\x96\x8e\x82\xf0\xf0\x11\xdb\x04\x93v\xce^\xd9CfJ\x19\xadY\x85OsV\xe1\x13i\xc2L\… │ │ │ │ \xda\x1f\xaf\xd3\x9f\xdc │ │ │ │ \xabd\xc5~Bpx\x86\xe6\xa7*R\x8aB\xc0!\x9a,\xc8\x9e,\xcd\xff\x17\xff\xed\xbf\xfd7\xff\xe6\xef\xfe\xdd\xb4%\x81\'L\x… │ │ │ │ \xd94M\x0b]Rj\x8d\xf6:\xb4d\xa6\n\xcd\xd8\xea3\xe4"\xb9Z\xf0\xeb\xb7\xcb\xe8\xf1m\xef\x87m\xde\xbb\xbb\xb4\x05\x9d… │ │ │ │ \xfaX\x15\x99\x13Y\xe13\xab\xda\x01\xa3\xa7g\xc7\r\x93UP\xbe\xf46A\\Y\xabO\xcf5\'\xeb\xe5\x1cz\xb5\xb9\xb8\xd6r\x7… │ │ │ │ \x87\xbcDGy \x83\xdd\xa8\xf2*^7p\x87\xfcb\x84\xe3\x1c\xb3\xbb\xd6\xd4\x8f\xa3\xf8 │ │ │ │ \xce\xa0\xfc\xd8\x9a\x84I\xf1\x00\x19\x1d[K\x04I\xa3\xee\xcclE\x08\x8c\xaes3\xf5\xfe\xe8\xe5\x05\x0fo\xe3\xdeqj`\x… │ │ │ │ \xac\x97\xe1\xe5\x16w\xc9\x01\x0eiI7\x0f\xa6H\x07\xb2.\x0e\xb0\xe3\xec\x17\xcd\\\xc6\xfd\x08\xa9I\x0cP\xa9\x85+7\x… │ │ │ │ \xf0%\x98\x99\x87+\xec\xb6\xcd3\xb2\xbd\xb4\xf7\xe8\xc7x\xa8\xaf\xa8\xe9\xfdcJ\xb0Y\x94m\xdcx\xe5E\xdd\x05\xb2\xc4… │ │ │ │ {0}\x8a\\&\x03[\x9e\x8b\xcb\x8f}\x01\x13\xd3\x07\x80D\xd6\nM\x88=Q\xf0\xd2\x8f │ │ │ │ \xb3`[z\xfeC\xb2\x1d\x8a\xd9\xb2\xdb\xa0\xf7;{\x1d\xf2\x91\xc93\x8d\x19q\xf3\xba\x16z\xb2WBs\xe7\x06\xd9H\xc9VpwK\… │ │ │ │ chunk_start=False, chunk_end=False) │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py:173 │ │ in _receive_event │ │ │ │ 170 │ │ │ 171 │ async def _receive_event(self, timeout: Optional[float] = None) -> H11Event: │ │ 172 │ │ while True: │ │ ❱ 173 │ │ │ with map_exceptions({h11.RemoteProtocolError: RemoteProtocolError}): │ │ 174 │ │ │ │ event = self._h11_state.next_event() │ │ 175 │ │ │ │ │ 176 │ │ │ if event is h11.NEED_DATA: │ │ │ │ ╭────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ self = │ │ │ │ timeout = 5.0 │ │ │ │ event = NEED_DATA │ │ │ │ data = b'' │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /usr/lib/python3.10/contextlib.py:153 in __exit__ │ │ │ │ 150 │ │ │ │ # tell if we get the same exception back │ │ 151 │ │ │ │ value = typ() │ │ 152 │ │ │ try: │ │ ❱ 153 │ │ │ │ self.gen.throw(typ, value, traceback) │ │ 154 │ │ │ except StopIteration as exc: │ │ 155 │ │ │ │ # Suppress StopIteration *unless* it's the same exception that │ │ 156 │ │ │ │ # was passed to throw(). This prevents a StopIteration │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ typ = │ │ │ │ value = RemoteProtocolError('peer closed connection without sending complete message body (received 64720 bytes, expected │ │ │ │ 10563527)') │ │ │ │ traceback = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_exceptions.py:12 in │ │ map_exceptions │ │ │ │ 9 │ except Exception as exc: # noqa: PIE786 │ │ 10 │ │ for from_exc, to_exc in map.items(): │ │ 11 │ │ │ if isinstance(exc, from_exc): │ │ ❱ 12 │ │ │ │ raise to_exc(exc) │ │ 13 │ │ raise # pragma: nocover │ │ 14 │ │ 15 │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ map = {: } │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ RemoteProtocolError: peer closed connection without sending complete message body (received 64720 bytes, expected 10563527) The above exception was the direct cause of the following exception: ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:167 in _start_base_services │ │ │ │ 164 │ │ │ │ │ instance = base_service_cls.from_config(self._config) │ │ 165 │ │ │ │ else: │ │ 166 │ │ │ │ │ instance = self.init_inject(base_service_cls) │ │ ❱ 167 │ │ │ │ await instance.start() │ │ 168 │ │ │ │ logger.success(f'服务 "{base_service_cls.__name__}" 初始化成功') │ │ 169 │ │ │ │ self._services.update({base_service_cls: instance}) │ │ 170 │ │ │ except Exception as e: # pylint: disable=W0703 │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'core.base.aiobrowser' │ │ │ │ e = RemoteProtocolError('peer closed connection without sending complete message body (received 64720 bytes, │ │ │ │ expected 10563527)') │ │ │ │ base_service_cls = │ │ │ │ instance = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/assets.py:493 in start │ │ │ │ 490 │ │ │ 491 │ async def start(self): # pylint: disable=R0201 │ │ 492 │ │ logger.info("正在刷新元数据") │ │ ❱ 493 │ │ await update_metadata_from_github(False) │ │ 494 │ │ await update_metadata_from_ambr(False) │ │ 495 │ │ await update_honey_metadata(False) │ │ 496 │ │ logger.info("刷新元数据成功") │ │ │ │ ╭───────────────────────────── locals ─────────────────────────────╮ │ │ │ self = │ │ │ ╰──────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/metadata/scripts/metadatas.py:40 in update_metadata_from_github │ │ │ │ 37 │ text_map_url = host.join("TextMap/TextMapCHS.json") │ │ 38 │ material_url = host.join("ExcelBinOutput/MaterialExcelConfigData.json") │ │ 39 │ │ │ ❱ 40 │ text_map_json_data = json.loads((await client.get(text_map_url)).text) │ │ 41 │ material_json_data = json.loads((await client.get(material_url)).text) │ │ 42 │ │ │ 43 │ data = {} │ │ │ │ ╭──────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────╮ │ │ │ overwrite = False │ │ │ │ path = PosixPath('/home/wenjinyu/Documents/genshin/TGPaimonBot/metadata/data/namecard.json') │ │ │ │ host = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/') │ │ │ │ text_map_url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/TextMap/TextMapCHS.json') │ │ │ │ material_url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/ExcelBinOutput/MaterialExcelConfigData.json') │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1751 in get │ │ │ │ 1748 │ │ │ │ 1749 │ │ **Parameters**: See `httpx.request`. │ │ 1750 │ │ """ │ │ ❱ 1751 │ │ return await self.request( │ │ 1752 │ │ │ "GET", │ │ 1753 │ │ │ url, │ │ 1754 │ │ │ params=params, │ │ │ │ ╭──────────────────────────────────────────────── locals ────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/TextMap/TextMapCHS.json') │ │ │ │ params = None │ │ │ │ headers = None │ │ │ │ cookies = None │ │ │ │ auth = │ │ │ │ follow_redirects = │ │ │ │ timeout = │ │ │ │ extensions = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1527 in │ │ request │ │ │ │ 1524 │ │ │ timeout=timeout, │ │ 1525 │ │ │ extensions=extensions, │ │ 1526 │ │ ) │ │ ❱ 1527 │ │ return await self.send(request, auth=auth, follow_redirects=follow_redirects) │ │ 1528 │ │ │ 1529 │ @asynccontextmanager │ │ 1530 │ async def stream( │ │ │ │ ╭────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ method = 'GET' │ │ │ │ url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/TextMap/TextMapCHS.json') │ │ │ │ content = None │ │ │ │ data = None │ │ │ │ files = None │ │ │ │ json = None │ │ │ │ params = None │ │ │ │ headers = None │ │ │ │ cookies = None │ │ │ │ auth = │ │ │ │ follow_redirects = │ │ │ │ timeout = │ │ │ │ extensions = None │ │ │ │ request = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1628 in send │ │ │ │ 1625 │ │ │ │ 1626 │ │ except BaseException as exc: # pragma: no cover │ │ 1627 │ │ │ await response.aclose() │ │ ❱ 1628 │ │ │ raise exc │ │ 1629 │ │ │ 1630 │ async def _send_handling_auth( │ │ 1631 │ │ self, │ │ │ │ ╭────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ stream = False │ │ │ │ auth = │ │ │ │ follow_redirects = False │ │ │ │ response = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1622 in send │ │ │ │ 1619 │ │ ) │ │ 1620 │ │ try: │ │ 1621 │ │ │ if not stream: │ │ ❱ 1622 │ │ │ │ await response.aread() │ │ 1623 │ │ │ │ │ 1624 │ │ │ return response │ │ 1625 │ │ │ │ ╭────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ stream = False │ │ │ │ auth = │ │ │ │ follow_redirects = False │ │ │ │ response = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_models.py:896 in aread │ │ │ │ 893 │ │ Read and return the response content. │ │ 894 │ │ """ │ │ 895 │ │ if not hasattr(self, "_content"): │ │ ❱ 896 │ │ │ self._content = b"".join([part async for part in self.aiter_bytes()]) │ │ 897 │ │ return self._content │ │ 898 │ │ │ 899 │ async def aiter_bytes( │ │ │ │ ╭────────── locals ──────────╮ │ │ │ self = │ │ │ ╰────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_models.py:896 in │ │ │ │ │ │ 893 │ │ Read and return the response content. │ │ 894 │ │ """ │ │ 895 │ │ if not hasattr(self, "_content"): │ │ ❱ 896 │ │ │ self._content = b"".join([part async for part in self.aiter_bytes()]) │ │ 897 │ │ return self._content │ │ 898 │ │ │ 899 │ async def aiter_bytes( │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ .0 = │ │ │ │ part = b'\xe3\x80\x8c\xe9\x9b\xa8\xe5\xa4\xa9\xe4\xb8\x8d\xe8\xa6\x81\xe9\x9d\xa0\xe6\x88\x91\xe5\xa4\xaa\xe8\xbf\x91\xe5\x95… │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_models.py:914 in │ │ aiter_bytes │ │ │ │ 911 │ │ │ decoder = self._get_content_decoder() │ │ 912 │ │ │ chunker = ByteChunker(chunk_size=chunk_size) │ │ 913 │ │ │ with request_context(request=self._request): │ │ ❱ 914 │ │ │ │ async for raw_bytes in self.aiter_raw(): │ │ 915 │ │ │ │ │ decoded = decoder.decode(raw_bytes) │ │ 916 │ │ │ │ │ for chunk in chunker.decode(decoded): │ │ 917 │ │ │ │ │ │ yield chunk │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ chunk_size = None │ │ │ │ decoder = │ │ │ │ chunker = │ │ │ │ raw_bytes = b"J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba │ │ │ │ chunk_size = None │ │ │ │ chunker = │ │ │ │ raw_stream_bytes = b"J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba typing.AsyncIterator[bytes]: │ │ ❱ 146 │ │ async for chunk in self._stream: │ │ 147 │ │ │ yield chunk │ │ 148 │ │ │ 149 │ async def aclose(self) -> None: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ chunk = b"J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba typing.AsyncIterator[bytes]: │ │ ❱ 238 │ │ with map_httpcore_exceptions(): │ │ 239 │ │ │ async for part in self._httpcore_stream: │ │ 240 │ │ │ │ yield part │ │ 241 │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ part = b"J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba │ │ │ │ typ = │ │ │ │ value = RemoteProtocolError(RemoteProtocolError('peer closed connection without sending complete message body (received │ │ │ │ 64720 bytes, expected 10563527)')) │ │ │ │ traceback = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py:7 │ │ 7 in map_httpcore_exceptions │ │ │ │ 74 │ │ │ raise │ │ 75 │ │ │ │ 76 │ │ message = str(exc) │ │ ❱ 77 │ │ raise mapped_exc(message) from exc │ │ 78 │ │ 79 │ │ 80 HTTPCORE_EXC_MAP = { │ │ │ │ ╭────────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │ │ mapped_exc = │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ │ message = 'peer closed connection without sending complete message body (received 64720 byt'+22 │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ RemoteProtocolError: peer closed connection without sending complete message body (received 64720 bytes, expected 10563527) [2022-10-21 11:18:17] INFO 正在尝试启动 Playwright core.base.aiobrowser 17 SUCCESS Playwright 启动成功 core.base.aiobrowser 19 INFO 正在尝试启动 Browser core.base.aiobrowser 21 ERROR 服务 "AioBrowser" 初始化失败: Executable doesn't exist at /home/wenjinyu/.cache/ms-playwright/chromium-1024/chrome-linux/chrome core.bot 171 ╔════════════════════════════════════════════════════════════╗ ║ Looks like Playwright was just installed or updated. ║ ║ Please run the following command to download new browsers: ║ ║ ║ ║ playwright install ║ ║ ║ ║ <3 Playwright Team ║ ╚════════════════════════════════════════════════════════════╝ ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:167 in _start_base_services │ │ │ │ 164 │ │ │ │ │ instance = base_service_cls.from_config(self._config) │ │ 165 │ │ │ │ else: │ │ 166 │ │ │ │ │ instance = self.init_inject(base_service_cls) │ │ ❱ 167 │ │ │ │ await instance.start() │ │ 168 │ │ │ │ logger.success(f'服务 "{base_service_cls.__name__}" 初始化成功') │ │ 169 │ │ │ │ self._services.update({base_service_cls: instance}) │ │ 170 │ │ │ except Exception as e: # pylint: disable=W0703 │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'core.base.aiobrowser' │ │ │ │ base_service_cls = │ │ │ │ instance = │ │ │ │ e = Error("Executable doesn't exist at │ │ │ │ /home/wenjinyu/.cache/ms-playwright/chromium-1024/chrome-linux/chrome\n╔══════════════════════════════════… │ │ │ │ Looks like Playwright was just installed or updated. ║\n║ Please run the following command to │ │ │ │ download new browsers: ║\n║ ║\n║ playwright │ │ │ │ install ║\n║ │ │ │ │ ║\n║ <3 Playwright Team │ │ │ │ ║\n╚════════════════════════════════════════════════════════════╝") │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/aiobrowser.py:23 in start │ │ │ │ 20 │ │ if self.browser is None: │ │ 21 │ │ │ logger.info("正在尝试启动 [blue]Browser[/]", extra={"markup": True}) │ │ 22 │ │ │ try: │ │ ❱ 23 │ │ │ │ self.browser = await self._playwright.chromium.launch(timeout=5000) │ │ 24 │ │ │ │ logger.success("[blue]Browser[/] 启动成功", extra={"markup": True}) │ │ 25 │ │ │ except TimeoutError as err: │ │ 26 │ │ │ │ logger.warning("[blue]Browser[/] 启动失败", extra={"markup": True}) │ │ │ │ ╭───────────────────────────── locals ──────────────────────────────╮ │ │ │ self = │ │ │ ╰───────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/async_api/_generate │ │ d.py:11636 in launch │ │ │ │ 11633 │ │ """ │ │ 11634 │ │ │ │ 11635 │ │ return mapping.from_impl( │ │ ❱ 11636 │ │ │ await self._impl_obj.launch( │ │ 11637 │ │ │ │ executablePath=executable_path, │ │ 11638 │ │ │ │ channel=channel, │ │ 11639 │ │ │ │ args=mapping.to_impl(args), │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ executable_path = None │ │ │ │ channel = None │ │ │ │ args = None │ │ │ │ ignore_default_args = None │ │ │ │ handle_sigint = None │ │ │ │ handle_sigterm = None │ │ │ │ handle_sighup = None │ │ │ │ timeout = 5000 │ │ │ │ env = None │ │ │ │ headless = None │ │ │ │ devtools = None │ │ │ │ proxy = None │ │ │ │ downloads_path = None │ │ │ │ slow_mo = None │ │ │ │ traces_dir = None │ │ │ │ chromium_sandbox = None │ │ │ │ firefox_user_prefs = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/_impl/_browser_type │ │ .py:93 in launch │ │ │ │ 90 │ │ params = locals_to_params(locals()) │ │ 91 │ │ normalize_launch_params(params) │ │ 92 │ │ browser = cast( │ │ ❱ 93 │ │ │ Browser, from_channel(await self._channel.send("launch", params)) │ │ 94 │ │ ) │ │ 95 │ │ browser._set_browser_type(self) │ │ 96 │ │ return browser │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ executablePath = None │ │ │ │ channel = None │ │ │ │ args = None │ │ │ │ ignoreDefaultArgs = None │ │ │ │ handleSIGINT = None │ │ │ │ handleSIGTERM = None │ │ │ │ handleSIGHUP = None │ │ │ │ timeout = 5000 │ │ │ │ env = None │ │ │ │ headless = None │ │ │ │ devtools = None │ │ │ │ proxy = None │ │ │ │ downloadsPath = None │ │ │ │ slowMo = None │ │ │ │ tracesDir = None │ │ │ │ chromiumSandbox = None │ │ │ │ firefoxUserPrefs = None │ │ │ │ params = {'timeout': 5000} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/_impl/_connection.p │ │ y:43 in send │ │ │ │ 40 │ │ self._object: Optional[ChannelOwner] = None │ │ 41 │ │ │ 42 │ async def send(self, method: str, params: Dict = None) -> Any: │ │ ❱ 43 │ │ return await self._connection.wrap_api_call( │ │ 44 │ │ │ lambda: self.inner_send(method, params, False) │ │ 45 │ │ ) │ │ 46 │ │ │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ method = 'launch' │ │ │ │ params = {'timeout': 5000} │ │ │ │ self = │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/_impl/_connection.p │ │ y:387 in wrap_api_call │ │ │ │ 384 │ │ if metadata: │ │ 385 │ │ │ self._api_zone.set(metadata) │ │ 386 │ │ try: │ │ ❱ 387 │ │ │ return await cb() │ │ 388 │ │ finally: │ │ 389 │ │ │ self._api_zone.set(None) │ │ 390 │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ cb = . at 0x7f8f1b2ca290> │ │ │ │ is_internal = False │ │ │ │ task = cb=[_run_until_complete_cb() at │ │ │ │ /usr/lib/python3.10/asyncio/base_events.py:184]> │ │ │ │ st = [ │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ ... +7 │ │ │ │ ] │ │ │ │ metadata = {'apiName': 'BrowserType.launch', 'stack': [...]} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/_impl/_connection.p │ │ y:78 in inner_send │ │ │ │ 75 │ │ ) │ │ 76 │ │ if not callback.future.done(): │ │ 77 │ │ │ callback.future.cancel() │ │ ❱ 78 │ │ result = next(iter(done)).result() │ │ 79 │ │ # Protocol now has named return values, assume result is one level deeper unless │ │ 80 │ │ # there is explicit ambiguity. │ │ 81 │ │ if not result: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ method = 'launch' │ │ │ │ params = {'timeout': 5000} │ │ │ │ return_as_dict = False │ │ │ │ callback = │ │ │ │ done = { │ │ │ │ │ │ │ │ │ } │ │ │ │ _ = {} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ Error: Executable doesn't exist at /home/wenjinyu/.cache/ms-playwright/chromium-1024/chrome-linux/chrome ╔════════════════════════════════════════════════════════════╗ ║ Looks like Playwright was just installed or updated. ║ ║ Please run the following command to download new browsers: ║ ║ ║ ║ playwright install ║ ║ ║ ║ <3 Playwright Team ║ ╚════════════════════════════════════════════════════════════╝ [2022-10-21 11:18:19] SUCCESS 服务 "SignServices" 初始化成功 core.service 27 SUCCESS 服务 "WikiService" 初始化成功 core.service 27 ERROR 来自core.template的服务初始化失败:create_template_service() missing 1 required positional argument: 'browser' core.service 30 ╭────────────────────────────────────────────── Traceback (most recent call last) ───────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/service.py:26 in init_service │ │ │ │ 23 │ │ │ 24 │ if bot.is_running: │ │ 25 │ │ try: │ │ ❱ 26 │ │ │ service = bot.init_inject(func) │ │ 27 │ │ │ logger.success(f'服务 "{service.__class__.__name__}" 初始化成功') │ │ 28 │ │ │ bot.add_service(service) │ │ 29 │ │ except Exception as e: # pylint: disable=W0703 │ │ │ │ ╭──────────────────────────────────────────── locals ─────────────────────────────────────────────╮ │ │ │ func = │ │ │ │ bot = │ │ │ │ e = TypeError("create_template_service() missing 1 required positional argument: 'browser'") │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭─────────────────────────────────────────────── locals ───────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭─────────────────────────────────────────────── locals ───────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = │ │ │ │ target = │ │ │ │ kwargs = {'redis': } │ │ │ │ name = 'redis' │ │ │ │ parameter = │ │ │ │ value = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TypeError: create_template_service() missing 1 required positional argument: 'browser' SUCCESS 服务 "BotAdminService" 初始化成功 core.service 27 SUCCESS 服务 "UserService" 初始化成功 core.service 27 SUCCESS 服务 "CookiesService" 初始化成功 core.service 27 SUCCESS 服务 "PublicCookiesService" 初始化成功 core.service 27 SUCCESS 服务 "QuizService" 初始化成功 core.service 27 SUCCESS 服务 "GameStrategyService" 初始化成功 core.service 27 [2022-10-21 11:18:20] SUCCESS 服务 "GameMaterialService" 初始化成功 core.service 27 INFO 开始安装插件 core.bot 227 ERROR 在安装插件 "plugins.genshin.help.HelpPlugin" 的过程中遇到了错误: core.bot 124 ModuleNotFoundError: ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:100 in install_plugins │ │ │ │ 97 │ │ for plugin_cls in {*Plugin.__subclasses__(), *Plugin.Conversation.__subclasses__()}: │ │ 98 │ │ │ path = f"{plugin_cls.__module__}.{plugin_cls.__name__}" │ │ 99 │ │ │ try: │ │ ❱ 100 │ │ │ │ plugin: PluginType = self.init_inject(plugin_cls) │ │ 101 │ │ │ │ if hasattr(plugin, "__async_init__"): │ │ 102 │ │ │ │ │ await self.async_inject(plugin.__async_init__) │ │ 103 │ │ │ │ handlers = plugin.handlers │ │ │ │ ╭───────────────────────── locals ──────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'plugins.genshin.ledger' │ │ │ │ e = ModuleNotFoundError() │ │ │ │ plugin_cls = │ │ │ │ path = 'plugins.genshin.help.HelpPlugin' │ │ │ │ callback_dict = {} │ │ │ ╰───────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭──────────────────────────────────────────── locals ─────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭──────────────────────────────────────────── locals ─────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = │ │ │ │ target = │ │ │ │ kwargs = {} │ │ │ │ name = 'template_service' │ │ │ │ parameter = │ │ │ │ value = None │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/plugins/genshin/help.py:19 in __init__ │ │ │ │ 16 │ │ self.file_id = None │ │ 17 │ │ self.help_png = None │ │ 18 │ │ if template_service is None: │ │ ❱ 19 │ │ │ raise ModuleNotFoundError │ │ 20 │ │ self.template_service = template_service │ │ 21 │ │ │ 22 │ @handler(CommandHandler, command="help", block=False) │ │ │ │ ╭─────────────────────────────────── locals ────────────────────────────────────╮ │ │ │ self = │ │ │ │ template_service = None │ │ │ ╰───────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ModuleNotFoundError SUCCESS 插件 "plugins.system.admin.AdminPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.daily_note.DailyNote" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.sign.Sign" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.player_cards.PlayerCards" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.abyss.Abyss" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.errorhandler.ErrorHandler" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.log.Log" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.gacha.gacha.Gacha" 载入成功 core.bot 122 [2022-10-21 11:18:21] SUCCESS 插件 "plugins.jobs.sign.SignJob" 载入成功 core.bot 122 SUCCESS 插件 "plugins.jobs.public_cookies.PublicCookies" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.artifact_rate.ArtifactRate" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.hilichurls.HilichurlsPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.other.post.Post" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.start.StartPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.set_quiz.SetQuizPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.abyss_team.AbyssTeam" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.get_chat.GetChat" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.ledger.Ledger" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.uid.SetUserUid" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.quiz.QuizPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.inline.Inline" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.strategy.StrategyPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.material.Material" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.cookies.SetUserCookies" 载入成功 core.bot 122 ERROR 在安装插件 "plugins.genshin.avatar_list.AvatarListPlugin" 的过程中遇到了错误: core.bot 124 TypeError: AvatarListPlugin.__init__() missing 2 required positional arguments: 'assets_service' and 'template_service' ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:100 in install_plugins │ │ │ │ 97 │ │ for plugin_cls in {*Plugin.__subclasses__(), *Plugin.Conversation.__subclasses__()}: │ │ 98 │ │ │ path = f"{plugin_cls.__module__}.{plugin_cls.__name__}" │ │ 99 │ │ │ try: │ │ ❱ 100 │ │ │ │ plugin: PluginType = self.init_inject(plugin_cls) │ │ 101 │ │ │ │ if hasattr(plugin, "__async_init__"): │ │ 102 │ │ │ │ │ await self.async_inject(plugin.__async_init__) │ │ 103 │ │ │ │ handlers = plugin.handlers │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'plugins.genshin.ledger' │ │ │ │ e = TypeError("AvatarListPlugin.__init__() missing 2 required positional arguments: 'assets_service' and │ │ │ │ 'template_service'") │ │ │ │ plugin_cls = │ │ │ │ path = 'plugins.genshin.avatar_list.AvatarListPlugin' │ │ │ │ callback_dict = {} │ │ │ │ plugin = │ │ │ │ handlers = [] │ │ │ │ error_handlers = {} │ │ │ │ block = False │ │ │ │ jobs = [] │ │ │ │ callback = > │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = None> │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = None> │ │ │ │ target = │ │ │ │ kwargs = {'cookies_service': } │ │ │ │ name = 'template_service' │ │ │ │ parameter = │ │ │ │ value = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TypeError: AvatarListPlugin.__init__() missing 2 required positional arguments: 'assets_service' and 'template_service' SUCCESS 插件 "plugins.system.sign_status.SignStatus" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.weapon.WeaponPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.gacha.gacha_log.GachaLog" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.new_member.BotJoiningGroupsVerification" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.update.UpdatePlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.sign_all.SignAll" 载入成功 core.bot 122 ERROR 在安装插件 "plugins.genshin.daily.material.DailyMaterial" 的过程中遇到了错误: core.bot 124 TypeError: DailyMaterial.__init__() missing 2 required positional arguments: 'assets' and 'template_service' ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:100 in install_plugins │ │ │ │ 97 │ │ for plugin_cls in {*Plugin.__subclasses__(), *Plugin.Conversation.__subclasses__()}: │ │ 98 │ │ │ path = f"{plugin_cls.__module__}.{plugin_cls.__name__}" │ │ 99 │ │ │ try: │ │ ❱ 100 │ │ │ │ plugin: PluginType = self.init_inject(plugin_cls) │ │ 101 │ │ │ │ if hasattr(plugin, "__async_init__"): │ │ 102 │ │ │ │ │ await self.async_inject(plugin.__async_init__) │ │ 103 │ │ │ │ handlers = plugin.handlers │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'plugins.genshin.ledger' │ │ │ │ e = TypeError("DailyMaterial.__init__() missing 2 required positional arguments: 'assets' and │ │ │ │ 'template_service'") │ │ │ │ plugin_cls = │ │ │ │ path = 'plugins.genshin.daily.material.DailyMaterial' │ │ │ │ callback_dict = {1: [...]} │ │ │ │ plugin = │ │ │ │ handlers = [] │ │ │ │ error_handlers = {} │ │ │ │ block = False │ │ │ │ jobs = [] │ │ │ │ callback = > │ │ │ │ priority = 1 │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = │ │ │ │ target = │ │ │ │ kwargs = {} │ │ │ │ name = 'template_service' │ │ │ │ parameter = │ │ │ │ value = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TypeError: DailyMaterial.__init__() missing 2 required positional arguments: 'assets' and 'template_service' SUCCESS 插件 "plugins.genshin.wiki.Wiki" 载入成功 core.bot 122 INFO 群验证模块正在刷新问题列表 plugins.system.auth 46 SUCCESS 群验证模块刷新问题列表成功 plugins.system.auth 48 SUCCESS 插件 "plugins.system.auth.GroupJoiningVerification" 载入成功 core.bot 122 [2022-10-21 11:18:22] SUCCESS 插件 "plugins.genshin.map.map.Map" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.userstats.UserStatsPlugins" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.refresh_metadata.MetadataPlugin" 载入成功 core.bot 122 SUCCESS 成功添加了 2 个针对 filters.StatusUpdate.NEW_CHAT_MEMBERS 的 MessageHandler core.bot 139 INFO BOT 初始化成功 core.bot 229 [2022-10-21 11:22:34] INFO 正在关闭服务 core.bot 192 SUCCESS 服务 "WebServer" 关闭成功 core.bot 201 SUCCESS 服务 "MySQL" 关闭成功 core.bot 201 SUCCESS 服务 "RedisDB" 关闭成功 core.bot 201 SUCCESS 服务 "MTProto" 关闭成功 core.bot 201 INFO BOT 已经关闭 core.bot 266 [2022-10-21 11:24:59] ERROR 在导入文件 "core.sign.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.admin.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.user.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.cookies.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] ERROR 在导入文件 "core.quiz.models" 的过程中遇到了错误: alembic.env 45 [red bold]ImportError: cannot import name 'AIORateLimiter' from 'telegram.ext' (/home/wenjinyu/.local/lib/python3.10/site-packages/telegram/ext/__init__.py)[/] [2022-10-21 11:25:16] INFO 正在初始化BOT core.bot 234 [2022-10-21 11:25:17] INFO 开始初始化 genshin.py 相关资源 core.bot 208 [2022-10-21 11:25:18] SUCCESS 初始化 genshin.py 相关资源成功 core.bot 223 INFO 开始初始化服务 core.bot 225 [2022-10-21 11:25:20] SUCCESS 服务 "WebServer" 初始化成功 core.bot 168 SUCCESS 服务 "MySQL" 初始化成功 core.bot 168 INFO 正在尝试建立与 Redis 连接 core.base.redisdb 33 INFO 连接 Redis 成功 core.base.redisdb 25 SUCCESS 服务 "RedisDB" 初始化成功 core.bot 168 INFO MTProto 服务需要的 api_id 未配置 本次服务 client 为 None core.base.mtproto 50 SUCCESS 服务 "MTProto" 初始化成功 core.bot 168 INFO 正在刷新元数据 core.base.assets 492 [2022-10-21 11:25:24] ERROR 服务 "AssetsService" 初始化失败: peer closed connection without sending complete message body (received 64721 bytes, expected core.bot 171 10563527) ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_exceptions.py:8 in │ │ map_exceptions │ │ │ │ 5 @contextlib.contextmanager │ │ 6 def map_exceptions(map: Dict[Type, Type]) -> Iterator[None]: │ │ 7 │ try: │ │ ❱ 8 │ │ yield │ │ 9 │ except Exception as exc: # noqa: PIE786 │ │ 10 │ │ for from_exc, to_exc in map.items(): │ │ 11 │ │ │ if isinstance(exc, from_exc): │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ map = {: } │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py:174 │ │ in _receive_event │ │ │ │ 171 │ async def _receive_event(self, timeout: Optional[float] = None) -> H11Event: │ │ 172 │ │ while True: │ │ 173 │ │ │ with map_exceptions({h11.RemoteProtocolError: RemoteProtocolError}): │ │ ❱ 174 │ │ │ │ event = self._h11_state.next_event() │ │ 175 │ │ │ │ │ 176 │ │ │ if event is h11.NEED_DATA: │ │ 177 │ │ │ │ data = await self._network_stream.read( │ │ │ │ ╭────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ self = │ │ │ │ timeout = 5.0 │ │ │ │ event = NEED_DATA │ │ │ │ data = b'' │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/h11/_connection.py:425 in │ │ next_event │ │ │ │ 422 │ │ if self.their_state is ERROR: │ │ 423 │ │ │ raise RemoteProtocolError("Can't receive data when peer state is ERROR") │ │ 424 │ │ try: │ │ ❱ 425 │ │ │ event = self._extract_next_receive_event() │ │ 426 │ │ │ if event not in [NEED_DATA, PAUSED]: │ │ 427 │ │ │ │ self._process_event(self.their_role, event) │ │ 428 │ │ │ if event is NEED_DATA: │ │ │ │ ╭─────────────────────────── locals ───────────────────────────╮ │ │ │ self = │ │ │ ╰──────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/h11/_connection.py:375 in │ │ _extract_next_receive_event │ │ │ │ 372 │ │ │ │ # return that event, and then the state will change and we'll │ │ 373 │ │ │ │ # get called again to generate the actual ConnectionClosed(). │ │ 374 │ │ │ │ if hasattr(self._reader, "read_eof"): │ │ ❱ 375 │ │ │ │ │ event = self._reader.read_eof() │ │ 376 │ │ │ │ else: │ │ 377 │ │ │ │ │ event = ConnectionClosed() │ │ 378 │ │ if event is None: │ │ │ │ ╭─────────────────────────── locals ────────────────────────────╮ │ │ │ self = │ │ │ │ state = SEND_BODY │ │ │ │ event = None │ │ │ ╰───────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/h11/_readers.py:117 in │ │ read_eof │ │ │ │ 114 │ │ return Data(data=data) │ │ 115 │ │ │ 116 │ def read_eof(self): │ │ ❱ 117 │ │ raise RemoteProtocolError( │ │ 118 │ │ │ "peer closed connection without sending complete message body " │ │ 119 │ │ │ "(received {} bytes, expected {})".format( │ │ 120 │ │ │ │ self._length - self._remaining, self._length │ │ │ │ ╭────────────────────────────── locals ──────────────────────────────╮ │ │ │ self = │ │ │ ╰────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ RemoteProtocolError: peer closed connection without sending complete message body (received 64721 bytes, expected 10563527) During handling of the above exception, another exception occurred: ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py:6 │ │ 0 in map_httpcore_exceptions │ │ │ │ 57 @contextlib.contextmanager │ │ 58 def map_httpcore_exceptions() -> typing.Iterator[None]: │ │ 59 │ try: │ │ ❱ 60 │ │ yield │ │ 61 │ except Exception as exc: # noqa: PIE-786 │ │ 62 │ │ mapped_exc = None │ │ 63 │ │ │ │ ╭────────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │ │ mapped_exc = │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ │ message = 'peer closed connection without sending complete message body (received 64721 byt'+22 │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py:2 │ │ 39 in __aiter__ │ │ │ │ 236 │ │ │ 237 │ async def __aiter__(self) -> typing.AsyncIterator[bytes]: │ │ 238 │ │ with map_httpcore_exceptions(): │ │ ❱ 239 │ │ │ async for part in self._httpcore_stream: │ │ 240 │ │ │ │ yield part │ │ 241 │ │ │ 242 │ async def aclose(self) -> None: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ part = b"\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba AsyncIterator[bytes]: │ │ ❱ 346 │ │ async for part in self._stream: │ │ 347 │ │ │ yield part │ │ 348 │ │ │ 349 │ async def aclose(self) -> None: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ part = b"\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba None: │ │ 303 │ │ if not self._closed: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ kwargs = {'request': } │ │ │ │ chunk = b"\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba │ │ │ │ kwargs = {'request': } │ │ │ │ chunk = b"\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba │ │ │ │ request = │ │ │ │ timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 5.0} │ │ │ │ timeout = 5.0 │ │ │ │ event = Data(data=bytearray(b'\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba\x04\xd2H\xa0\xbb\x9… │ │ │ │ \x89\\|\x822\xbcX\xe8\xca\x99\x85\'\xa1MQ\x8af\xd7\xbf\xbb\xdd\x0ef\\.\xef\x84\xae#p(&\xb0\xd1B\xe5\x13\xd7\xef(]^… │ │ │ │ \x88\xcf\x9b\xab\xfe\xfa\xca\xdfRj\xc3\xe8\xdd\x8aG\xc1K\xeb6\xc8e\x90Hc\x1e<\xa5\xdd\xbaHI\x8c\xfe\x08\x0e\xc8\xa… │ │ │ │ \xee\x9b}!G\xde"\xad\x88\x15\xbe;_\xfc\xdc\x01\x01LyL\xf9Hh\x93gr\xe4a\xb4\x94\xbb8\x98{\xf5\xb6S\xa2\xb8\xfb(tD:\… │ │ │ │ \xac\xc8}\xa7hEf%\xcdDt}\xbc\xb1h\x97\x04\x10\x8bY\xfe\xb7+\xdaF\xded\xcd.\x1f\xa4\xc4\xd5\x03\xaf}\xa0\xb5\x81&\x… │ │ │ │ \xc7o\xf0\x04yu\xf4\xa5\xe5?\x87\x8f\t@Pq;\xeeR41\x9a\xc0F\x8e\x07\xfe\xfb\x99\xc4dt\x95q\xab\x8es6\xfbd.\xb1\x89r… │ │ │ │ \x80*_E\xcf\xdfD7\xd1_i\x7f\xbeI.H!}\x80\xd0Z\x18\xb2\xc3\xb2\xa4\x10Z\x1f\xd5\xe8\x02\xa0>\x7f\t?\xf9\x85w\xb9y\x… │ │ │ │ \xad\xed\xf2g\xff&\xd8\xdd\x93\x06\xb1(?\'\xdd\xfcpmjK\xa0\xc4\x7f=fp\r\xdc\xc6\xe8~\x8eBMI_\xf1B\xc6\r\x0b\x90T%\… │ │ │ │ _3\x99\x8d\xdd\r\xda\xb8\xc3I\xafs24zy\x8cFo\x1a\xe4\xde\xff\xb8F\xec\xc4\xff\xcci\x84!-4\xb4 │ │ │ │ \x8bbx:umz\xd9\x9c\x13#\xabh\x97\xc4\xdeH{\xa4\xf0\x85j\xa3,\xd3\xcc\xdaj\xa3O\\kE\x94\xd9\xde\xe7\xed^?)\x94\x02\… │ │ │ │ H\xa9\x14<\xbf*\xc4/\xff\xfbw\xb1\x80\x012\x07\x8a\xdb\xf3ZQ\xb6\xb3\x9cN\xf0<\x17<_K\x16X\xf7\x18\xe9!(\x1a\xb5\x… │ │ │ │ TSz\xd4\xd9,\x85M\x8e\x1b\xa3Q>\x8e?\xdf\x87\x8c\xbaY\xf9|\xabG\x8b\x8f\xc0\xbbl\xbd\xf9\x8b\xda\xba\xca\xd2\xf2f\… │ │ │ │ wa8k\xa8S\xfdG`\xe4<\xa6\x8d\xb1\xe6o\xdck\xf7\xe4\xba\xa6c\xe7\x0c[\xbbs\nv\xf5I\x9bE\xf3\xa42\xaf(?\xf5\xce\xe12… │ │ │ │ \xf2gR<\xa5]yn\x9b\xdc\xe8P\x94M{\x8cF\xbf\x8c\x12\x0eE\x0c\xf2\x92\xc7k\x87t\x0e\xedG\xd7\xccf\x12d+t\x04\xee │ │ │ │ @4\xacE\x17kQ\xf9a2\x90B\x0er\xe3\x1c\xf5\x1c[b\xba\x0f\xb4\xdfM\xcb\x05\xa8F,\xeb\x06\x1a\x9b\xc6\x8f\x07ayQ\x1b\… │ │ │ │ &k\xe6T\xde8\xd8|\x1a\x0f\xebh\xee\xa2W\xc2\xc2\xe3A\xf3V\x1bk\x92\xdd\xb1\x0cY)x\x14\xe1=\xa1\xb5\xbb[\x07\x91\xd… │ │ │ │ \xe7\x94\xfd\x95#\x88\xe3\x96\x8a\xf4\xb9\x01\xa0\xb9\xea\x834\x16Y9\xd4\xa7\xa2r_\x14\x0f$I\x8dR\xc9\xf6\xd1\xb8\… │ │ │ │ d;|\xfc)\x13\xcf\x1d\x00%_\xf8`\x8a(]\x1f/ggTu\x0c\xc3\x0e\x01c\x0e\x96(p,1q&\xdc\xdd\x84sA2\t\xc1\xdd9\x12\xe0,v9… │ │ │ │ \xd7\'n\xb0\xc3\x19\x04\xf3J\x11,\xb0\xab\x9c\xb7\x14l\xe7\xe7h\x1f\xbaO\xdbg │ │ │ │ 3b\xdf\x13T\x11\xc7}\x9a\xe0\x12+\xc2\x17\xac\x0e\xbe\x8b[+\x81\xe0\xa5\t\x05\x98\x063U\x96\xaf\xe2N\xbbB\xb0\xb5\… │ │ │ │ *\xa8\xdc\xc6\xc7h\xe4]U\xd9f*|\xff\xf20\xbc\xc8+\x03p{\xcb\xdc\x91\xcf2\x86\x81\x0f\x1b\xd1\xb0CG\x05\xeb\x15\xb6… │ │ │ │ \x03\xcc\x90F\x95\xbc\xe7\x91t\xff41\xa4\xc3\xfcs\xb0\x11\x0eTI\x0bT\xf3\xe4\xf2\x93\x9f\xcd:\xf7B\x8b\xf9\x1d\xb7… │ │ │ │ \xd1m\xc9\x9aL"\xe5pw\x80\xf0\xa4\xd1\x1e_/\x8e\xef\xe6\x83U\xc6?&dI\xf4\xc5\xf2k\xe8\x06\xb8\xa7\x086\xa56\xe5d\x… │ │ │ │ #l\xeda\xbfH\xbf\x93\xcf\x8f\x11\x14t7.\x91g\xa7\xdd\xb0\x9c\xa7I\'\x00\x83\xe4\x01i\xfc\x98\xc1\x86`\x1a^\xd9\x92… │ │ │ │ \xca\x1fU\xd4}\x06\xe5\xe43\xc1\x98\xdd\xb5X\xccc7\xb9\xcfp\xf0\r\x1c\xbb\xf9z\xd0\xab\x83\xd8\x0f\xbep\xaa\xb2\xe… │ │ │ │ \xac\xc8\x8d\xfa"\xb2\xe0\xe8\xad/\xab\x80o\xeeFXF\xa4 │ │ │ │ .YI!9\xc0\xd5\x16Vh;I\x93\x860/yV\xee\x1e7\xd1y\x92\xff\xd5\xd9\x0f\x85\x7f\'\xa1\xf0\x96\xede\x060!\xcc}\x9f\xfd\… │ │ │ │ 5\xe7(:5\r\xcb\x95\x07\x0c\x17\x0e\xb1\xf2\xee\xd6@6\xb7\x01eSz)X\x17+\x14j\xdd\xe9\x07\xd9\xb6\xe1R`\xfc\x85\'\x8… │ │ │ │ (\x88\xdb-\x91\xfbiA\xd4\x10\xb3\xecq\x93\x03\xb4=\xda\xd9\x13)\xa0t\x13j\x06\xfb\x91,dy\xef\xf2\x19\xe4\xed\x1b\x… │ │ │ │ )?\x91~\xc3\xc6\xcc\xb4\xe5"\x9a\x99\xe8\xb80_\xd8\x05&\xc5\x07\x19\xbbCazH\xb7\x82f\xc1\t\xef\x1a\x86\x80\x0f\xeb… │ │ │ │ \x1cr\x8b\xe2\x0c1\x82G2\xedp\x8dv98L\xa1\x94LpO@X\xcc\x13\x84\xd9L\xdf\x94I\xef(C\xde\x931\xf9\x1a\xc8q\r+\xa9Q9r… │ │ │ │ \x11\xd2\x02@\x86\xe1\xd3\xfe\xdbct\xcc\xc2\xe8\xd8\x17W$\xdb,\xa9\xb0i0\xb9\rp\x9f\xeb\xa9)\xaaM^\xd0U\x9a\x8em\x… │ │ │ │ \x86!B~\x93g\x05\xef\x1c@\x0c\xbfO\xbf@\x8f\xbcKnC\xe2\xc7_\xfe\xf0k[\xc8\x80\xde\xec\xf8\xe7\xbbX\xeb\x1ch\xc4\\{… │ │ │ │ \x06\x1fT\xe98\xe6\xcd\x7f\x16/&\x8c\xc9\xe8\x94\xc1\xe7\xd4\xf4\x97\xf7\xebo\xa6:k\xc1\xb7M\x0bL\xcc;\xd9\xbah\xf… │ │ │ │ \xe3\xde.\x90\xdf\'\x98-m\xb8e\xe6r\xb4\x0f\xc8E\xb9\xca\x84\x9c\xe8\xfc\x1b\xabp\xa0\x1c\xaaT\xbf\xc0X\xc3\xd1;-C… │ │ │ │ y\xff\xa3\x10\x0e\xee\xb4!\x1e\xf9\xdd\xa6\x19\xbf\x92\xe5\xa0\xd1\x0c\xabe\xbf\xd7\x10\xbf\xb5p\xe3W\xe6>\xfb\x13… │ │ │ │ \xd0\xe4Lm\xbcF[\x8bSL\x0e9\xf2\xcb2\x80\xaeXzJ\xf6o\xff\xd6\xcb\xe4l4\x19\xec>G[\xed\xc4+\xe8\xcd\x07\xcdI/T.G\x8… │ │ │ │ 9:\x9fd\x94\xad\x0c\x996K\x852\x7f\xef\x84\xa4\xc5q\x8d\xa9\n,\xda\x96d\x99\x0e(\x99\xe45ME\xfb\xf4\x1b\xbc?\t\xea… │ │ │ │ \xb6\x18 │ │ │ │ \x15\xe6\x90\xeb\xeeS\xf4<\x19\xe4Q\xbc#\xb3\x8c\x96m\xedL\xd4\x8d\xbf\x8b5\xd9\x82<\x9c[\xc9\xf5\x8c\xf3\x0b\xf0\… │ │ │ │ c\'\xa7 │ │ │ │ \x05V&\x89\xdfX\xf4$XYe\x80\r\xf2\xfc\xe3\xfc\x1c\xbaDe\xafG"G+\xde[h\xed\xcb\xe4fb\x8bpm!h\x96\xc8\xdfC\xe9\x81\x… │ │ │ │ }i\xd8\xe3\xd6q\xac8\xdaO\xfa\xf5\xf4X\x17q\x02\x9f\x94\xdd\xbc\x84\xf5\x0f\x93Gf9\xb3\xfak\x07\xd9t\x18y\xd4\x82j… │ │ │ │ WI\xbe\x9ctlh\x1dX\xe3a\x9dS\xb0{~oAu\xacw\xde\x90\xd8\xff(\x01lRx\x8a^N\xd3\x10\x12\xcb\xf0(\x0c\x91\x85A\xb3\xc2… │ │ │ │ \xd8\x1aF\xf3g)\xe9\xaa,<5\xd4\r&W\x96\x8e\x82\xf0\xf0\x11\xdb\x04\x93v\xce^\xd9CfJ\x19\xadY\x85OsV\xe1\x13i\xc2L\… │ │ │ │ \xda\x1f\xaf\xd3\x9f\xdc │ │ │ │ \xabd\xc5~Bpx\x86\xe6\xa7*R\x8aB\xc0!\x9a,\xc8\x9e,\xcd\xff\x17\xff\xed\xbf\xfd7\xff\xe6\xef\xfe\xdd\xb4%\x81\'L\x… │ │ │ │ \xd94M\x0b]Rj\x8d\xf6:\xb4d\xa6\n\xcd\xd8\xea3\xe4"\xb9Z\xf0\xeb\xb7\xcb\xe8\xf1m\xef\x87m\xde\xbb\xbb\xb4\x05\x9d… │ │ │ │ \xfaX\x15\x99\x13Y\xe13\xab\xda\x01\xa3\xa7g\xc7\r\x93UP\xbe\xf46A\\Y\xabO\xcf5\'\xeb\xe5\x1cz\xb5\xb9\xb8\xd6r\x7… │ │ │ │ \x87\xbcDGy \x83\xdd\xa8\xf2*^7p\x87\xfcb\x84\xe3\x1c\xb3\xbb\xd6\xd4\x8f\xa3\xf8 │ │ │ │ \xce\xa0\xfc\xd8\x9a\x84I\xf1\x00\x19\x1d[K\x04I\xa3\xee\xcclE\x08\x8c\xaes3\xf5\xfe\xe8\xe5\x05\x0fo\xe3\xdeqj`\x… │ │ │ │ \xac\x97\xe1\xe5\x16w\xc9\x01\x0eiI7\x0f\xa6H\x07\xb2.\x0e\xb0\xe3\xec\x17\xcd\\\xc6\xfd\x08\xa9I\x0cP\xa9\x85+7\x… │ │ │ │ \xf0%\x98\x99\x87+\xec\xb6\xcd3\xb2\xbd\xb4\xf7\xe8\xc7x\xa8\xaf\xa8\xe9\xfdcJ\xb0Y\x94m\xdcx\xe5E\xdd\x05\xb2\xc4… │ │ │ │ {0}\x8a\\&\x03[\x9e\x8b\xcb\x8f}\x01\x13\xd3\x07\x80D\xd6\nM\x88=Q\xf0\xd2\x8f │ │ │ │ \xb3`[z\xfeC\xb2\x1d\x8a\xd9\xb2\xdb\xa0\xf7;{\x1d\xf2\x91\xc93\x8d\x19q\xf3\xba\x16z\xb2WBs\xe7\x06\xd9H\xc9VpwK\… │ │ │ │ chunk_start=False, chunk_end=False) │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py:173 │ │ in _receive_event │ │ │ │ 170 │ │ │ 171 │ async def _receive_event(self, timeout: Optional[float] = None) -> H11Event: │ │ 172 │ │ while True: │ │ ❱ 173 │ │ │ with map_exceptions({h11.RemoteProtocolError: RemoteProtocolError}): │ │ 174 │ │ │ │ event = self._h11_state.next_event() │ │ 175 │ │ │ │ │ 176 │ │ │ if event is h11.NEED_DATA: │ │ │ │ ╭────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ self = │ │ │ │ timeout = 5.0 │ │ │ │ event = NEED_DATA │ │ │ │ data = b'' │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /usr/lib/python3.10/contextlib.py:153 in __exit__ │ │ │ │ 150 │ │ │ │ # tell if we get the same exception back │ │ 151 │ │ │ │ value = typ() │ │ 152 │ │ │ try: │ │ ❱ 153 │ │ │ │ self.gen.throw(typ, value, traceback) │ │ 154 │ │ │ except StopIteration as exc: │ │ 155 │ │ │ │ # Suppress StopIteration *unless* it's the same exception that │ │ 156 │ │ │ │ # was passed to throw(). This prevents a StopIteration │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ typ = │ │ │ │ value = RemoteProtocolError('peer closed connection without sending complete message body (received 64721 bytes, expected │ │ │ │ 10563527)') │ │ │ │ traceback = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_exceptions.py:12 in │ │ map_exceptions │ │ │ │ 9 │ except Exception as exc: # noqa: PIE786 │ │ 10 │ │ for from_exc, to_exc in map.items(): │ │ 11 │ │ │ if isinstance(exc, from_exc): │ │ ❱ 12 │ │ │ │ raise to_exc(exc) │ │ 13 │ │ raise # pragma: nocover │ │ 14 │ │ 15 │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ map = {: } │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ RemoteProtocolError: peer closed connection without sending complete message body (received 64721 bytes, expected 10563527) The above exception was the direct cause of the following exception: ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:167 in _start_base_services │ │ │ │ 164 │ │ │ │ │ instance = base_service_cls.from_config(self._config) │ │ 165 │ │ │ │ else: │ │ 166 │ │ │ │ │ instance = self.init_inject(base_service_cls) │ │ ❱ 167 │ │ │ │ await instance.start() │ │ 168 │ │ │ │ logger.success(f'服务 "{base_service_cls.__name__}" 初始化成功') │ │ 169 │ │ │ │ self._services.update({base_service_cls: instance}) │ │ 170 │ │ │ except Exception as e: # pylint: disable=W0703 │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'core.base.aiobrowser' │ │ │ │ e = RemoteProtocolError('peer closed connection without sending complete message body (received 64721 bytes, │ │ │ │ expected 10563527)') │ │ │ │ base_service_cls = │ │ │ │ instance = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/assets.py:493 in start │ │ │ │ 490 │ │ │ 491 │ async def start(self): # pylint: disable=R0201 │ │ 492 │ │ logger.info("正在刷新元数据") │ │ ❱ 493 │ │ await update_metadata_from_github(False) │ │ 494 │ │ await update_metadata_from_ambr(False) │ │ 495 │ │ await update_honey_metadata(False) │ │ 496 │ │ logger.info("刷新元数据成功") │ │ │ │ ╭───────────────────────────── locals ─────────────────────────────╮ │ │ │ self = │ │ │ ╰──────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/metadata/scripts/metadatas.py:40 in update_metadata_from_github │ │ │ │ 37 │ text_map_url = host.join("TextMap/TextMapCHS.json") │ │ 38 │ material_url = host.join("ExcelBinOutput/MaterialExcelConfigData.json") │ │ 39 │ │ │ ❱ 40 │ text_map_json_data = json.loads((await client.get(text_map_url)).text) │ │ 41 │ material_json_data = json.loads((await client.get(material_url)).text) │ │ 42 │ │ │ 43 │ data = {} │ │ │ │ ╭──────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────╮ │ │ │ overwrite = False │ │ │ │ path = PosixPath('/home/wenjinyu/Documents/genshin/TGPaimonBot/metadata/data/namecard.json') │ │ │ │ host = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/') │ │ │ │ text_map_url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/TextMap/TextMapCHS.json') │ │ │ │ material_url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/ExcelBinOutput/MaterialExcelConfigData.json') │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1751 in get │ │ │ │ 1748 │ │ │ │ 1749 │ │ **Parameters**: See `httpx.request`. │ │ 1750 │ │ """ │ │ ❱ 1751 │ │ return await self.request( │ │ 1752 │ │ │ "GET", │ │ 1753 │ │ │ url, │ │ 1754 │ │ │ params=params, │ │ │ │ ╭──────────────────────────────────────────────── locals ────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/TextMap/TextMapCHS.json') │ │ │ │ params = None │ │ │ │ headers = None │ │ │ │ cookies = None │ │ │ │ auth = │ │ │ │ follow_redirects = │ │ │ │ timeout = │ │ │ │ extensions = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1527 in │ │ request │ │ │ │ 1524 │ │ │ timeout=timeout, │ │ 1525 │ │ │ extensions=extensions, │ │ 1526 │ │ ) │ │ ❱ 1527 │ │ return await self.send(request, auth=auth, follow_redirects=follow_redirects) │ │ 1528 │ │ │ 1529 │ @asynccontextmanager │ │ 1530 │ async def stream( │ │ │ │ ╭────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ method = 'GET' │ │ │ │ url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/TextMap/TextMapCHS.json') │ │ │ │ content = None │ │ │ │ data = None │ │ │ │ files = None │ │ │ │ json = None │ │ │ │ params = None │ │ │ │ headers = None │ │ │ │ cookies = None │ │ │ │ auth = │ │ │ │ follow_redirects = │ │ │ │ timeout = │ │ │ │ extensions = None │ │ │ │ request = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1628 in send │ │ │ │ 1625 │ │ │ │ 1626 │ │ except BaseException as exc: # pragma: no cover │ │ 1627 │ │ │ await response.aclose() │ │ ❱ 1628 │ │ │ raise exc │ │ 1629 │ │ │ 1630 │ async def _send_handling_auth( │ │ 1631 │ │ self, │ │ │ │ ╭────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ stream = False │ │ │ │ auth = │ │ │ │ follow_redirects = False │ │ │ │ response = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1622 in send │ │ │ │ 1619 │ │ ) │ │ 1620 │ │ try: │ │ 1621 │ │ │ if not stream: │ │ ❱ 1622 │ │ │ │ await response.aread() │ │ 1623 │ │ │ │ │ 1624 │ │ │ return response │ │ 1625 │ │ │ │ ╭────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ stream = False │ │ │ │ auth = │ │ │ │ follow_redirects = False │ │ │ │ response = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_models.py:896 in aread │ │ │ │ 893 │ │ Read and return the response content. │ │ 894 │ │ """ │ │ 895 │ │ if not hasattr(self, "_content"): │ │ ❱ 896 │ │ │ self._content = b"".join([part async for part in self.aiter_bytes()]) │ │ 897 │ │ return self._content │ │ 898 │ │ │ 899 │ async def aiter_bytes( │ │ │ │ ╭────────── locals ──────────╮ │ │ │ self = │ │ │ ╰────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_models.py:896 in │ │ │ │ │ │ 893 │ │ Read and return the response content. │ │ 894 │ │ """ │ │ 895 │ │ if not hasattr(self, "_content"): │ │ ❱ 896 │ │ │ self._content = b"".join([part async for part in self.aiter_bytes()]) │ │ 897 │ │ return self._content │ │ 898 │ │ │ 899 │ async def aiter_bytes( │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ .0 = │ │ │ │ part = b'\x9b\xa8\xe5\xa4\xa9\xe4\xb8\x8d\xe8\xa6\x81\xe9\x9d\xa0\xe6\x88\x91\xe5\xa4\xaa\xe8\xbf\x91\xe5\x95\x8a\xe8\x80\x81… │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_models.py:914 in │ │ aiter_bytes │ │ │ │ 911 │ │ │ decoder = self._get_content_decoder() │ │ 912 │ │ │ chunker = ByteChunker(chunk_size=chunk_size) │ │ 913 │ │ │ with request_context(request=self._request): │ │ ❱ 914 │ │ │ │ async for raw_bytes in self.aiter_raw(): │ │ 915 │ │ │ │ │ decoded = decoder.decode(raw_bytes) │ │ 916 │ │ │ │ │ for chunk in chunker.decode(decoded): │ │ 917 │ │ │ │ │ │ yield chunk │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ chunk_size = None │ │ │ │ decoder = │ │ │ │ chunker = │ │ │ │ raw_bytes = b"\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba │ │ │ │ chunk_size = None │ │ │ │ chunker = │ │ │ │ raw_stream_bytes = b"\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba typing.AsyncIterator[bytes]: │ │ ❱ 146 │ │ async for chunk in self._stream: │ │ 147 │ │ │ yield chunk │ │ 148 │ │ │ 149 │ async def aclose(self) -> None: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ chunk = b"\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba typing.AsyncIterator[bytes]: │ │ ❱ 238 │ │ with map_httpcore_exceptions(): │ │ 239 │ │ │ async for part in self._httpcore_stream: │ │ 240 │ │ │ │ yield part │ │ 241 │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ part = b"\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba │ │ │ │ typ = │ │ │ │ value = RemoteProtocolError(RemoteProtocolError('peer closed connection without sending complete message body (received │ │ │ │ 64721 bytes, expected 10563527)')) │ │ │ │ traceback = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py:7 │ │ 7 in map_httpcore_exceptions │ │ │ │ 74 │ │ │ raise │ │ 75 │ │ │ │ 76 │ │ message = str(exc) │ │ ❱ 77 │ │ raise mapped_exc(message) from exc │ │ 78 │ │ 79 │ │ 80 HTTPCORE_EXC_MAP = { │ │ │ │ ╭────────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │ │ mapped_exc = │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ │ message = 'peer closed connection without sending complete message body (received 64721 byt'+22 │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ RemoteProtocolError: peer closed connection without sending complete message body (received 64721 bytes, expected 10563527) [2022-10-21 11:25:27] INFO 正在尝试启动 Playwright core.base.aiobrowser 17 SUCCESS Playwright 启动成功 core.base.aiobrowser 19 INFO 正在尝试启动 Browser core.base.aiobrowser 21 ERROR 服务 "AioBrowser" 初始化失败: Executable doesn't exist at /home/wenjinyu/.cache/ms-playwright/chromium-1024/chrome-linux/chrome core.bot 171 ╔════════════════════════════════════════════════════════════╗ ║ Looks like Playwright was just installed or updated. ║ ║ Please run the following command to download new browsers: ║ ║ ║ ║ playwright install ║ ║ ║ ║ <3 Playwright Team ║ ╚════════════════════════════════════════════════════════════╝ ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:167 in _start_base_services │ │ │ │ 164 │ │ │ │ │ instance = base_service_cls.from_config(self._config) │ │ 165 │ │ │ │ else: │ │ 166 │ │ │ │ │ instance = self.init_inject(base_service_cls) │ │ ❱ 167 │ │ │ │ await instance.start() │ │ 168 │ │ │ │ logger.success(f'服务 "{base_service_cls.__name__}" 初始化成功') │ │ 169 │ │ │ │ self._services.update({base_service_cls: instance}) │ │ 170 │ │ │ except Exception as e: # pylint: disable=W0703 │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'core.base.aiobrowser' │ │ │ │ base_service_cls = │ │ │ │ instance = │ │ │ │ e = Error("Executable doesn't exist at │ │ │ │ /home/wenjinyu/.cache/ms-playwright/chromium-1024/chrome-linux/chrome\n╔══════════════════════════════════… │ │ │ │ Looks like Playwright was just installed or updated. ║\n║ Please run the following command to │ │ │ │ download new browsers: ║\n║ ║\n║ playwright │ │ │ │ install ║\n║ │ │ │ │ ║\n║ <3 Playwright Team │ │ │ │ ║\n╚════════════════════════════════════════════════════════════╝") │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/aiobrowser.py:23 in start │ │ │ │ 20 │ │ if self.browser is None: │ │ 21 │ │ │ logger.info("正在尝试启动 [blue]Browser[/]", extra={"markup": True}) │ │ 22 │ │ │ try: │ │ ❱ 23 │ │ │ │ self.browser = await self._playwright.chromium.launch(timeout=5000) │ │ 24 │ │ │ │ logger.success("[blue]Browser[/] 启动成功", extra={"markup": True}) │ │ 25 │ │ │ except TimeoutError as err: │ │ 26 │ │ │ │ logger.warning("[blue]Browser[/] 启动失败", extra={"markup": True}) │ │ │ │ ╭───────────────────────────── locals ──────────────────────────────╮ │ │ │ self = │ │ │ ╰───────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/async_api/_generate │ │ d.py:11636 in launch │ │ │ │ 11633 │ │ """ │ │ 11634 │ │ │ │ 11635 │ │ return mapping.from_impl( │ │ ❱ 11636 │ │ │ await self._impl_obj.launch( │ │ 11637 │ │ │ │ executablePath=executable_path, │ │ 11638 │ │ │ │ channel=channel, │ │ 11639 │ │ │ │ args=mapping.to_impl(args), │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ executable_path = None │ │ │ │ channel = None │ │ │ │ args = None │ │ │ │ ignore_default_args = None │ │ │ │ handle_sigint = None │ │ │ │ handle_sigterm = None │ │ │ │ handle_sighup = None │ │ │ │ timeout = 5000 │ │ │ │ env = None │ │ │ │ headless = None │ │ │ │ devtools = None │ │ │ │ proxy = None │ │ │ │ downloads_path = None │ │ │ │ slow_mo = None │ │ │ │ traces_dir = None │ │ │ │ chromium_sandbox = None │ │ │ │ firefox_user_prefs = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/_impl/_browser_type │ │ .py:93 in launch │ │ │ │ 90 │ │ params = locals_to_params(locals()) │ │ 91 │ │ normalize_launch_params(params) │ │ 92 │ │ browser = cast( │ │ ❱ 93 │ │ │ Browser, from_channel(await self._channel.send("launch", params)) │ │ 94 │ │ ) │ │ 95 │ │ browser._set_browser_type(self) │ │ 96 │ │ return browser │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ executablePath = None │ │ │ │ channel = None │ │ │ │ args = None │ │ │ │ ignoreDefaultArgs = None │ │ │ │ handleSIGINT = None │ │ │ │ handleSIGTERM = None │ │ │ │ handleSIGHUP = None │ │ │ │ timeout = 5000 │ │ │ │ env = None │ │ │ │ headless = None │ │ │ │ devtools = None │ │ │ │ proxy = None │ │ │ │ downloadsPath = None │ │ │ │ slowMo = None │ │ │ │ tracesDir = None │ │ │ │ chromiumSandbox = None │ │ │ │ firefoxUserPrefs = None │ │ │ │ params = {'timeout': 5000} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/_impl/_connection.p │ │ y:43 in send │ │ │ │ 40 │ │ self._object: Optional[ChannelOwner] = None │ │ 41 │ │ │ 42 │ async def send(self, method: str, params: Dict = None) -> Any: │ │ ❱ 43 │ │ return await self._connection.wrap_api_call( │ │ 44 │ │ │ lambda: self.inner_send(method, params, False) │ │ 45 │ │ ) │ │ 46 │ │ │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ method = 'launch' │ │ │ │ params = {'timeout': 5000} │ │ │ │ self = │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/_impl/_connection.p │ │ y:387 in wrap_api_call │ │ │ │ 384 │ │ if metadata: │ │ 385 │ │ │ self._api_zone.set(metadata) │ │ 386 │ │ try: │ │ ❱ 387 │ │ │ return await cb() │ │ 388 │ │ finally: │ │ 389 │ │ │ self._api_zone.set(None) │ │ 390 │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ cb = . at 0x7efebc4ab760> │ │ │ │ is_internal = False │ │ │ │ task = cb=[_run_until_complete_cb() at │ │ │ │ /usr/lib/python3.10/asyncio/base_events.py:184]> │ │ │ │ st = [ │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ ... +7 │ │ │ │ ] │ │ │ │ metadata = {'apiName': 'BrowserType.launch', 'stack': [...]} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/_impl/_connection.p │ │ y:78 in inner_send │ │ │ │ 75 │ │ ) │ │ 76 │ │ if not callback.future.done(): │ │ 77 │ │ │ callback.future.cancel() │ │ ❱ 78 │ │ result = next(iter(done)).result() │ │ 79 │ │ # Protocol now has named return values, assume result is one level deeper unless │ │ 80 │ │ # there is explicit ambiguity. │ │ 81 │ │ if not result: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ method = 'launch' │ │ │ │ params = {'timeout': 5000} │ │ │ │ return_as_dict = False │ │ │ │ callback = │ │ │ │ done = { │ │ │ │ │ │ │ │ │ } │ │ │ │ _ = {} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ Error: Executable doesn't exist at /home/wenjinyu/.cache/ms-playwright/chromium-1024/chrome-linux/chrome ╔════════════════════════════════════════════════════════════╗ ║ Looks like Playwright was just installed or updated. ║ ║ Please run the following command to download new browsers: ║ ║ ║ ║ playwright install ║ ║ ║ ║ <3 Playwright Team ║ ╚════════════════════════════════════════════════════════════╝ [2022-10-21 11:25:29] SUCCESS 服务 "SignServices" 初始化成功 core.service 27 SUCCESS 服务 "WikiService" 初始化成功 core.service 27 ERROR 来自core.template的服务初始化失败:create_template_service() missing 1 required positional argument: 'browser' core.service 30 ╭────────────────────────────────────────────── Traceback (most recent call last) ───────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/service.py:26 in init_service │ │ │ │ 23 │ │ │ 24 │ if bot.is_running: │ │ 25 │ │ try: │ │ ❱ 26 │ │ │ service = bot.init_inject(func) │ │ 27 │ │ │ logger.success(f'服务 "{service.__class__.__name__}" 初始化成功') │ │ 28 │ │ │ bot.add_service(service) │ │ 29 │ │ except Exception as e: # pylint: disable=W0703 │ │ │ │ ╭──────────────────────────────────────────── locals ─────────────────────────────────────────────╮ │ │ │ func = │ │ │ │ bot = │ │ │ │ e = TypeError("create_template_service() missing 1 required positional argument: 'browser'") │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭─────────────────────────────────────────────── locals ───────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭─────────────────────────────────────────────── locals ───────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = │ │ │ │ target = │ │ │ │ kwargs = {'redis': } │ │ │ │ name = 'redis' │ │ │ │ parameter = │ │ │ │ value = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TypeError: create_template_service() missing 1 required positional argument: 'browser' SUCCESS 服务 "BotAdminService" 初始化成功 core.service 27 SUCCESS 服务 "UserService" 初始化成功 core.service 27 SUCCESS 服务 "CookiesService" 初始化成功 core.service 27 SUCCESS 服务 "PublicCookiesService" 初始化成功 core.service 27 SUCCESS 服务 "QuizService" 初始化成功 core.service 27 [2022-10-21 11:25:30] SUCCESS 服务 "GameStrategyService" 初始化成功 core.service 27 SUCCESS 服务 "GameMaterialService" 初始化成功 core.service 27 INFO 开始安装插件 core.bot 227 SUCCESS 插件 "plugins.genshin.userstats.UserStatsPlugins" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.uid.SetUserUid" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.quiz.QuizPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.inline.Inline" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.ledger.Ledger" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.artifact_rate.ArtifactRate" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.strategy.StrategyPlugin" 载入成功 core.bot 122 INFO 群验证模块正在刷新问题列表 plugins.system.auth 46 SUCCESS 群验证模块刷新问题列表成功 plugins.system.auth 48 SUCCESS 插件 "plugins.system.auth.GroupJoiningVerification" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.new_member.BotJoiningGroupsVerification" 载入成功 core.bot 122 ERROR 在安装插件 "plugins.genshin.avatar_list.AvatarListPlugin" 的过程中遇到了错误: core.bot 124 TypeError: AvatarListPlugin.__init__() missing 2 required positional arguments: 'assets_service' and 'template_service' ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:100 in install_plugins │ │ │ │ 97 │ │ for plugin_cls in {*Plugin.__subclasses__(), *Plugin.Conversation.__subclasses__()}: │ │ 98 │ │ │ path = f"{plugin_cls.__module__}.{plugin_cls.__name__}" │ │ 99 │ │ │ try: │ │ ❱ 100 │ │ │ │ plugin: PluginType = self.init_inject(plugin_cls) │ │ 101 │ │ │ │ if hasattr(plugin, "__async_init__"): │ │ 102 │ │ │ │ │ await self.async_inject(plugin.__async_init__) │ │ 103 │ │ │ │ handlers = plugin.handlers │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'plugins.genshin.ledger' │ │ │ │ e = TypeError("AvatarListPlugin.__init__() missing 2 required positional arguments: 'assets_service' and │ │ │ │ 'template_service'") │ │ │ │ plugin_cls = │ │ │ │ path = 'plugins.genshin.avatar_list.AvatarListPlugin' │ │ │ │ plugin = │ │ │ │ handlers = [] │ │ │ │ priority = 1 │ │ │ │ error_handlers = {} │ │ │ │ jobs = [] │ │ │ │ callback = > │ │ │ │ callback_dict = {2: [...], 1: [...]} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = None> │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = None> │ │ │ │ target = │ │ │ │ kwargs = {'cookies_service': } │ │ │ │ name = 'template_service' │ │ │ │ parameter = │ │ │ │ value = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TypeError: AvatarListPlugin.__init__() missing 2 required positional arguments: 'assets_service' and 'template_service' SUCCESS 插件 "plugins.system.update.UpdatePlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.sign_all.SignAll" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.gacha.gacha_log.GachaLog" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.errorhandler.ErrorHandler" 载入成功 core.bot 122 [2022-10-21 11:25:31] SUCCESS 插件 "plugins.genshin.sign.Sign" 载入成功 core.bot 122 SUCCESS 插件 "plugins.jobs.sign.SignJob" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.material.Material" 载入成功 core.bot 122 SUCCESS 插件 "plugins.jobs.public_cookies.PublicCookies" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.refresh_metadata.MetadataPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.weapon.WeaponPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.hilichurls.HilichurlsPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.other.post.Post" 载入成功 core.bot 122 ERROR 在安装插件 "plugins.genshin.help.HelpPlugin" 的过程中遇到了错误: core.bot 124 ModuleNotFoundError: ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:100 in install_plugins │ │ │ │ 97 │ │ for plugin_cls in {*Plugin.__subclasses__(), *Plugin.Conversation.__subclasses__()}: │ │ 98 │ │ │ path = f"{plugin_cls.__module__}.{plugin_cls.__name__}" │ │ 99 │ │ │ try: │ │ ❱ 100 │ │ │ │ plugin: PluginType = self.init_inject(plugin_cls) │ │ 101 │ │ │ │ if hasattr(plugin, "__async_init__"): │ │ 102 │ │ │ │ │ await self.async_inject(plugin.__async_init__) │ │ 103 │ │ │ │ handlers = plugin.handlers │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'plugins.genshin.ledger' │ │ │ │ e = ModuleNotFoundError() │ │ │ │ plugin_cls = │ │ │ │ path = 'plugins.genshin.help.HelpPlugin' │ │ │ │ plugin = │ │ │ │ handlers = [] │ │ │ │ priority = 1 │ │ │ │ error_handlers = {} │ │ │ │ jobs = [] │ │ │ │ callback = > │ │ │ │ callback_dict = {2: [...], 1: [...]} │ │ │ │ block = False │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭──────────────────────────────────────────── locals ─────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭──────────────────────────────────────────── locals ─────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = │ │ │ │ target = │ │ │ │ kwargs = {} │ │ │ │ name = 'template_service' │ │ │ │ parameter = │ │ │ │ value = None │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/plugins/genshin/help.py:19 in __init__ │ │ │ │ 16 │ │ self.file_id = None │ │ 17 │ │ self.help_png = None │ │ 18 │ │ if template_service is None: │ │ ❱ 19 │ │ │ raise ModuleNotFoundError │ │ 20 │ │ self.template_service = template_service │ │ 21 │ │ │ 22 │ @handler(CommandHandler, command="help", block=False) │ │ │ │ ╭─────────────────────────────────── locals ────────────────────────────────────╮ │ │ │ self = │ │ │ │ template_service = None │ │ │ ╰───────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ModuleNotFoundError SUCCESS 插件 "plugins.system.admin.AdminPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.abyss.Abyss" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.daily_note.DailyNote" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.map.map.Map" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.log.Log" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.sign_status.SignStatus" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.gacha.gacha.Gacha" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.cookies.SetUserCookies" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.player_cards.PlayerCards" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.start.StartPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.set_quiz.SetQuizPlugin" 载入成功 core.bot 122 [2022-10-21 11:25:32] SUCCESS 插件 "plugins.genshin.abyss_team.AbyssTeam" 载入成功 core.bot 122 ERROR 在安装插件 "plugins.genshin.daily.material.DailyMaterial" 的过程中遇到了错误: core.bot 124 TypeError: DailyMaterial.__init__() missing 2 required positional arguments: 'assets' and 'template_service' ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:100 in install_plugins │ │ │ │ 97 │ │ for plugin_cls in {*Plugin.__subclasses__(), *Plugin.Conversation.__subclasses__()}: │ │ 98 │ │ │ path = f"{plugin_cls.__module__}.{plugin_cls.__name__}" │ │ 99 │ │ │ try: │ │ ❱ 100 │ │ │ │ plugin: PluginType = self.init_inject(plugin_cls) │ │ 101 │ │ │ │ if hasattr(plugin, "__async_init__"): │ │ 102 │ │ │ │ │ await self.async_inject(plugin.__async_init__) │ │ 103 │ │ │ │ handlers = plugin.handlers │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'plugins.genshin.ledger' │ │ │ │ e = TypeError("DailyMaterial.__init__() missing 2 required positional arguments: 'assets' and │ │ │ │ 'template_service'") │ │ │ │ plugin_cls = │ │ │ │ path = 'plugins.genshin.daily.material.DailyMaterial' │ │ │ │ plugin = │ │ │ │ handlers = [ │ │ │ │ │ , │ │ │ │ │ │ │ │ │ ] │ │ │ │ priority = 1 │ │ │ │ error_handlers = {} │ │ │ │ jobs = [] │ │ │ │ callback = > │ │ │ │ callback_dict = {2: [...], 1: [...]} │ │ │ │ block = False │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = │ │ │ │ target = │ │ │ │ kwargs = {} │ │ │ │ name = 'template_service' │ │ │ │ parameter = │ │ │ │ value = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TypeError: DailyMaterial.__init__() missing 2 required positional arguments: 'assets' and 'template_service' SUCCESS 插件 "plugins.system.get_chat.GetChat" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.wiki.Wiki" 载入成功 core.bot 122 SUCCESS 成功添加了 2 个针对 filters.StatusUpdate.NEW_CHAT_MEMBERS 的 MessageHandler core.bot 139 INFO BOT 初始化成功 core.bot 229 [2022-10-21 11:26:24] INFO 正在关闭服务 core.bot 192 SUCCESS 服务 "WebServer" 关闭成功 core.bot 201 SUCCESS 服务 "MySQL" 关闭成功 core.bot 201 SUCCESS 服务 "RedisDB" 关闭成功 core.bot 201 SUCCESS 服务 "MTProto" 关闭成功 core.bot 201 INFO BOT 已经关闭 core.bot 266 [2022-10-21 11:27:47] INFO 正在初始化BOT core.bot 234 [2022-10-21 11:27:52] WARNING 连接至 telegram 服务器失败,正在重试 core.bot 249 [2022-10-21 11:27:54] INFO 开始初始化 genshin.py 相关资源 core.bot 208 [2022-10-21 11:27:56] SUCCESS 初始化 genshin.py 相关资源成功 core.bot 223 INFO 开始初始化服务 core.bot 225 [2022-10-21 11:27:57] SUCCESS 服务 "WebServer" 初始化成功 core.bot 168 SUCCESS 服务 "MySQL" 初始化成功 core.bot 168 INFO 正在尝试建立与 Redis 连接 core.base.redisdb 33 INFO 连接 Redis 成功 core.base.redisdb 25 SUCCESS 服务 "RedisDB" 初始化成功 core.bot 168 INFO MTProto 服务需要的 api_id 未配置 本次服务 client 为 None core.base.mtproto 50 SUCCESS 服务 "MTProto" 初始化成功 core.bot 168 INFO 正在刷新元数据 core.base.assets 492 [2022-10-21 11:28:00] ERROR 服务 "AssetsService" 初始化失败: peer closed connection without sending complete message body (received 64720 bytes, expected core.bot 171 10563527) ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_exceptions.py:8 in │ │ map_exceptions │ │ │ │ 5 @contextlib.contextmanager │ │ 6 def map_exceptions(map: Dict[Type, Type]) -> Iterator[None]: │ │ 7 │ try: │ │ ❱ 8 │ │ yield │ │ 9 │ except Exception as exc: # noqa: PIE786 │ │ 10 │ │ for from_exc, to_exc in map.items(): │ │ 11 │ │ │ if isinstance(exc, from_exc): │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ map = {: } │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py:174 │ │ in _receive_event │ │ │ │ 171 │ async def _receive_event(self, timeout: Optional[float] = None) -> H11Event: │ │ 172 │ │ while True: │ │ 173 │ │ │ with map_exceptions({h11.RemoteProtocolError: RemoteProtocolError}): │ │ ❱ 174 │ │ │ │ event = self._h11_state.next_event() │ │ 175 │ │ │ │ │ 176 │ │ │ if event is h11.NEED_DATA: │ │ 177 │ │ │ │ data = await self._network_stream.read( │ │ │ │ ╭────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ self = │ │ │ │ timeout = 5.0 │ │ │ │ event = NEED_DATA │ │ │ │ data = b'' │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/h11/_connection.py:425 in │ │ next_event │ │ │ │ 422 │ │ if self.their_state is ERROR: │ │ 423 │ │ │ raise RemoteProtocolError("Can't receive data when peer state is ERROR") │ │ 424 │ │ try: │ │ ❱ 425 │ │ │ event = self._extract_next_receive_event() │ │ 426 │ │ │ if event not in [NEED_DATA, PAUSED]: │ │ 427 │ │ │ │ self._process_event(self.their_role, event) │ │ 428 │ │ │ if event is NEED_DATA: │ │ │ │ ╭─────────────────────────── locals ───────────────────────────╮ │ │ │ self = │ │ │ ╰──────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/h11/_connection.py:375 in │ │ _extract_next_receive_event │ │ │ │ 372 │ │ │ │ # return that event, and then the state will change and we'll │ │ 373 │ │ │ │ # get called again to generate the actual ConnectionClosed(). │ │ 374 │ │ │ │ if hasattr(self._reader, "read_eof"): │ │ ❱ 375 │ │ │ │ │ event = self._reader.read_eof() │ │ 376 │ │ │ │ else: │ │ 377 │ │ │ │ │ event = ConnectionClosed() │ │ 378 │ │ if event is None: │ │ │ │ ╭─────────────────────────── locals ────────────────────────────╮ │ │ │ self = │ │ │ │ state = SEND_BODY │ │ │ │ event = None │ │ │ ╰───────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/h11/_readers.py:117 in │ │ read_eof │ │ │ │ 114 │ │ return Data(data=data) │ │ 115 │ │ │ 116 │ def read_eof(self): │ │ ❱ 117 │ │ raise RemoteProtocolError( │ │ 118 │ │ │ "peer closed connection without sending complete message body " │ │ 119 │ │ │ "(received {} bytes, expected {})".format( │ │ 120 │ │ │ │ self._length - self._remaining, self._length │ │ │ │ ╭────────────────────────────── locals ──────────────────────────────╮ │ │ │ self = │ │ │ ╰────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ RemoteProtocolError: peer closed connection without sending complete message body (received 64720 bytes, expected 10563527) During handling of the above exception, another exception occurred: ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py:6 │ │ 0 in map_httpcore_exceptions │ │ │ │ 57 @contextlib.contextmanager │ │ 58 def map_httpcore_exceptions() -> typing.Iterator[None]: │ │ 59 │ try: │ │ ❱ 60 │ │ yield │ │ 61 │ except Exception as exc: # noqa: PIE-786 │ │ 62 │ │ mapped_exc = None │ │ 63 │ │ │ │ ╭────────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │ │ mapped_exc = │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ │ message = 'peer closed connection without sending complete message body (received 64720 byt'+22 │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py:2 │ │ 39 in __aiter__ │ │ │ │ 236 │ │ │ 237 │ async def __aiter__(self) -> typing.AsyncIterator[bytes]: │ │ 238 │ │ with map_httpcore_exceptions(): │ │ ❱ 239 │ │ │ async for part in self._httpcore_stream: │ │ 240 │ │ │ │ yield part │ │ 241 │ │ │ 242 │ async def aclose(self) -> None: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ part = b"J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba AsyncIterator[bytes]: │ │ ❱ 346 │ │ async for part in self._stream: │ │ 347 │ │ │ yield part │ │ 348 │ │ │ 349 │ async def aclose(self) -> None: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ part = b"J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba None: │ │ 303 │ │ if not self._closed: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ kwargs = {'request': } │ │ │ │ chunk = b"J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba │ │ │ │ kwargs = {'request': } │ │ │ │ chunk = b"J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba │ │ │ │ request = │ │ │ │ timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 5.0} │ │ │ │ timeout = 5.0 │ │ │ │ event = Data(data=bytearray(b'J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba\x04\xd2H\xa0\xbb\x9… │ │ │ │ \x89\\|\x822\xbcX\xe8\xca\x99\x85\'\xa1MQ\x8af\xd7\xbf\xbb\xdd\x0ef\\.\xef\x84\xae#p(&\xb0\xd1B\xe5\x13\xd7\xef(]^… │ │ │ │ \x88\xcf\x9b\xab\xfe\xfa\xca\xdfRj\xc3\xe8\xdd\x8aG\xc1K\xeb6\xc8e\x90Hc\x1e<\xa5\xdd\xbaHI\x8c\xfe\x08\x0e\xc8\xa… │ │ │ │ \xee\x9b}!G\xde"\xad\x88\x15\xbe;_\xfc\xdc\x01\x01LyL\xf9Hh\x93gr\xe4a\xb4\x94\xbb8\x98{\xf5\xb6S\xa2\xb8\xfb(tD:\… │ │ │ │ \xac\xc8}\xa7hEf%\xcdDt}\xbc\xb1h\x97\x04\x10\x8bY\xfe\xb7+\xdaF\xded\xcd.\x1f\xa4\xc4\xd5\x03\xaf}\xa0\xb5\x81&\x… │ │ │ │ \xc7o\xf0\x04yu\xf4\xa5\xe5?\x87\x8f\t@Pq;\xeeR41\x9a\xc0F\x8e\x07\xfe\xfb\x99\xc4dt\x95q\xab\x8es6\xfbd.\xb1\x89r… │ │ │ │ \x80*_E\xcf\xdfD7\xd1_i\x7f\xbeI.H!}\x80\xd0Z\x18\xb2\xc3\xb2\xa4\x10Z\x1f\xd5\xe8\x02\xa0>\x7f\t?\xf9\x85w\xb9y\x… │ │ │ │ \xad\xed\xf2g\xff&\xd8\xdd\x93\x06\xb1(?\'\xdd\xfcpmjK\xa0\xc4\x7f=fp\r\xdc\xc6\xe8~\x8eBMI_\xf1B\xc6\r\x0b\x90T%\… │ │ │ │ _3\x99\x8d\xdd\r\xda\xb8\xc3I\xafs24zy\x8cFo\x1a\xe4\xde\xff\xb8F\xec\xc4\xff\xcci\x84!-4\xb4 │ │ │ │ \x8bbx:umz\xd9\x9c\x13#\xabh\x97\xc4\xdeH{\xa4\xf0\x85j\xa3,\xd3\xcc\xdaj\xa3O\\kE\x94\xd9\xde\xe7\xed^?)\x94\x02\… │ │ │ │ H\xa9\x14<\xbf*\xc4/\xff\xfbw\xb1\x80\x012\x07\x8a\xdb\xf3ZQ\xb6\xb3\x9cN\xf0<\x17<_K\x16X\xf7\x18\xe9!(\x1a\xb5\x… │ │ │ │ TSz\xd4\xd9,\x85M\x8e\x1b\xa3Q>\x8e?\xdf\x87\x8c\xbaY\xf9|\xabG\x8b\x8f\xc0\xbbl\xbd\xf9\x8b\xda\xba\xca\xd2\xf2f\… │ │ │ │ wa8k\xa8S\xfdG`\xe4<\xa6\x8d\xb1\xe6o\xdck\xf7\xe4\xba\xa6c\xe7\x0c[\xbbs\nv\xf5I\x9bE\xf3\xa42\xaf(?\xf5\xce\xe12… │ │ │ │ \xf2gR<\xa5]yn\x9b\xdc\xe8P\x94M{\x8cF\xbf\x8c\x12\x0eE\x0c\xf2\x92\xc7k\x87t\x0e\xedG\xd7\xccf\x12d+t\x04\xee │ │ │ │ @4\xacE\x17kQ\xf9a2\x90B\x0er\xe3\x1c\xf5\x1c[b\xba\x0f\xb4\xdfM\xcb\x05\xa8F,\xeb\x06\x1a\x9b\xc6\x8f\x07ayQ\x1b\… │ │ │ │ &k\xe6T\xde8\xd8|\x1a\x0f\xebh\xee\xa2W\xc2\xc2\xe3A\xf3V\x1bk\x92\xdd\xb1\x0cY)x\x14\xe1=\xa1\xb5\xbb[\x07\x91\xd… │ │ │ │ \xe7\x94\xfd\x95#\x88\xe3\x96\x8a\xf4\xb9\x01\xa0\xb9\xea\x834\x16Y9\xd4\xa7\xa2r_\x14\x0f$I\x8dR\xc9\xf6\xd1\xb8\… │ │ │ │ d;|\xfc)\x13\xcf\x1d\x00%_\xf8`\x8a(]\x1f/ggTu\x0c\xc3\x0e\x01c\x0e\x96(p,1q&\xdc\xdd\x84sA2\t\xc1\xdd9\x12\xe0,v9… │ │ │ │ \xd7\'n\xb0\xc3\x19\x04\xf3J\x11,\xb0\xab\x9c\xb7\x14l\xe7\xe7h\x1f\xbaO\xdbg │ │ │ │ 3b\xdf\x13T\x11\xc7}\x9a\xe0\x12+\xc2\x17\xac\x0e\xbe\x8b[+\x81\xe0\xa5\t\x05\x98\x063U\x96\xaf\xe2N\xbbB\xb0\xb5\… │ │ │ │ *\xa8\xdc\xc6\xc7h\xe4]U\xd9f*|\xff\xf20\xbc\xc8+\x03p{\xcb\xdc\x91\xcf2\x86\x81\x0f\x1b\xd1\xb0CG\x05\xeb\x15\xb6… │ │ │ │ \x03\xcc\x90F\x95\xbc\xe7\x91t\xff41\xa4\xc3\xfcs\xb0\x11\x0eTI\x0bT\xf3\xe4\xf2\x93\x9f\xcd:\xf7B\x8b\xf9\x1d\xb7… │ │ │ │ \xd1m\xc9\x9aL"\xe5pw\x80\xf0\xa4\xd1\x1e_/\x8e\xef\xe6\x83U\xc6?&dI\xf4\xc5\xf2k\xe8\x06\xb8\xa7\x086\xa56\xe5d\x… │ │ │ │ #l\xeda\xbfH\xbf\x93\xcf\x8f\x11\x14t7.\x91g\xa7\xdd\xb0\x9c\xa7I\'\x00\x83\xe4\x01i\xfc\x98\xc1\x86`\x1a^\xd9\x92… │ │ │ │ \xca\x1fU\xd4}\x06\xe5\xe43\xc1\x98\xdd\xb5X\xccc7\xb9\xcfp\xf0\r\x1c\xbb\xf9z\xd0\xab\x83\xd8\x0f\xbep\xaa\xb2\xe… │ │ │ │ \xac\xc8\x8d\xfa"\xb2\xe0\xe8\xad/\xab\x80o\xeeFXF\xa4 │ │ │ │ .YI!9\xc0\xd5\x16Vh;I\x93\x860/yV\xee\x1e7\xd1y\x92\xff\xd5\xd9\x0f\x85\x7f\'\xa1\xf0\x96\xede\x060!\xcc}\x9f\xfd\… │ │ │ │ 5\xe7(:5\r\xcb\x95\x07\x0c\x17\x0e\xb1\xf2\xee\xd6@6\xb7\x01eSz)X\x17+\x14j\xdd\xe9\x07\xd9\xb6\xe1R`\xfc\x85\'\x8… │ │ │ │ (\x88\xdb-\x91\xfbiA\xd4\x10\xb3\xecq\x93\x03\xb4=\xda\xd9\x13)\xa0t\x13j\x06\xfb\x91,dy\xef\xf2\x19\xe4\xed\x1b\x… │ │ │ │ )?\x91~\xc3\xc6\xcc\xb4\xe5"\x9a\x99\xe8\xb80_\xd8\x05&\xc5\x07\x19\xbbCazH\xb7\x82f\xc1\t\xef\x1a\x86\x80\x0f\xeb… │ │ │ │ \x1cr\x8b\xe2\x0c1\x82G2\xedp\x8dv98L\xa1\x94LpO@X\xcc\x13\x84\xd9L\xdf\x94I\xef(C\xde\x931\xf9\x1a\xc8q\r+\xa9Q9r… │ │ │ │ \x11\xd2\x02@\x86\xe1\xd3\xfe\xdbct\xcc\xc2\xe8\xd8\x17W$\xdb,\xa9\xb0i0\xb9\rp\x9f\xeb\xa9)\xaaM^\xd0U\x9a\x8em\x… │ │ │ │ \x86!B~\x93g\x05\xef\x1c@\x0c\xbfO\xbf@\x8f\xbcKnC\xe2\xc7_\xfe\xf0k[\xc8\x80\xde\xec\xf8\xe7\xbbX\xeb\x1ch\xc4\\{… │ │ │ │ \x06\x1fT\xe98\xe6\xcd\x7f\x16/&\x8c\xc9\xe8\x94\xc1\xe7\xd4\xf4\x97\xf7\xebo\xa6:k\xc1\xb7M\x0bL\xcc;\xd9\xbah\xf… │ │ │ │ \xe3\xde.\x90\xdf\'\x98-m\xb8e\xe6r\xb4\x0f\xc8E\xb9\xca\x84\x9c\xe8\xfc\x1b\xabp\xa0\x1c\xaaT\xbf\xc0X\xc3\xd1;-C… │ │ │ │ y\xff\xa3\x10\x0e\xee\xb4!\x1e\xf9\xdd\xa6\x19\xbf\x92\xe5\xa0\xd1\x0c\xabe\xbf\xd7\x10\xbf\xb5p\xe3W\xe6>\xfb\x13… │ │ │ │ \xd0\xe4Lm\xbcF[\x8bSL\x0e9\xf2\xcb2\x80\xaeXzJ\xf6o\xff\xd6\xcb\xe4l4\x19\xec>G[\xed\xc4+\xe8\xcd\x07\xcdI/T.G\x8… │ │ │ │ 9:\x9fd\x94\xad\x0c\x996K\x852\x7f\xef\x84\xa4\xc5q\x8d\xa9\n,\xda\x96d\x99\x0e(\x99\xe45ME\xfb\xf4\x1b\xbc?\t\xea… │ │ │ │ \xb6\x18 │ │ │ │ \x15\xe6\x90\xeb\xeeS\xf4<\x19\xe4Q\xbc#\xb3\x8c\x96m\xedL\xd4\x8d\xbf\x8b5\xd9\x82<\x9c[\xc9\xf5\x8c\xf3\x0b\xf0\… │ │ │ │ c\'\xa7 │ │ │ │ \x05V&\x89\xdfX\xf4$XYe\x80\r\xf2\xfc\xe3\xfc\x1c\xbaDe\xafG"G+\xde[h\xed\xcb\xe4fb\x8bpm!h\x96\xc8\xdfC\xe9\x81\x… │ │ │ │ }i\xd8\xe3\xd6q\xac8\xdaO\xfa\xf5\xf4X\x17q\x02\x9f\x94\xdd\xbc\x84\xf5\x0f\x93Gf9\xb3\xfak\x07\xd9t\x18y\xd4\x82j… │ │ │ │ WI\xbe\x9ctlh\x1dX\xe3a\x9dS\xb0{~oAu\xacw\xde\x90\xd8\xff(\x01lRx\x8a^N\xd3\x10\x12\xcb\xf0(\x0c\x91\x85A\xb3\xc2… │ │ │ │ \xd8\x1aF\xf3g)\xe9\xaa,<5\xd4\r&W\x96\x8e\x82\xf0\xf0\x11\xdb\x04\x93v\xce^\xd9CfJ\x19\xadY\x85OsV\xe1\x13i\xc2L\… │ │ │ │ \xda\x1f\xaf\xd3\x9f\xdc │ │ │ │ \xabd\xc5~Bpx\x86\xe6\xa7*R\x8aB\xc0!\x9a,\xc8\x9e,\xcd\xff\x17\xff\xed\xbf\xfd7\xff\xe6\xef\xfe\xdd\xb4%\x81\'L\x… │ │ │ │ \xd94M\x0b]Rj\x8d\xf6:\xb4d\xa6\n\xcd\xd8\xea3\xe4"\xb9Z\xf0\xeb\xb7\xcb\xe8\xf1m\xef\x87m\xde\xbb\xbb\xb4\x05\x9d… │ │ │ │ \xfaX\x15\x99\x13Y\xe13\xab\xda\x01\xa3\xa7g\xc7\r\x93UP\xbe\xf46A\\Y\xabO\xcf5\'\xeb\xe5\x1cz\xb5\xb9\xb8\xd6r\x7… │ │ │ │ \x87\xbcDGy \x83\xdd\xa8\xf2*^7p\x87\xfcb\x84\xe3\x1c\xb3\xbb\xd6\xd4\x8f\xa3\xf8 │ │ │ │ \xce\xa0\xfc\xd8\x9a\x84I\xf1\x00\x19\x1d[K\x04I\xa3\xee\xcclE\x08\x8c\xaes3\xf5\xfe\xe8\xe5\x05\x0fo\xe3\xdeqj`\x… │ │ │ │ \xac\x97\xe1\xe5\x16w\xc9\x01\x0eiI7\x0f\xa6H\x07\xb2.\x0e\xb0\xe3\xec\x17\xcd\\\xc6\xfd\x08\xa9I\x0cP\xa9\x85+7\x… │ │ │ │ \xf0%\x98\x99\x87+\xec\xb6\xcd3\xb2\xbd\xb4\xf7\xe8\xc7x\xa8\xaf\xa8\xe9\xfdcJ\xb0Y\x94m\xdcx\xe5E\xdd\x05\xb2\xc4… │ │ │ │ {0}\x8a\\&\x03[\x9e\x8b\xcb\x8f}\x01\x13\xd3\x07\x80D\xd6\nM\x88=Q\xf0\xd2\x8f │ │ │ │ \xb3`[z\xfeC\xb2\x1d\x8a\xd9\xb2\xdb\xa0\xf7;{\x1d\xf2\x91\xc93\x8d\x19q\xf3\xba\x16z\xb2WBs\xe7\x06\xd9H\xc9VpwK\… │ │ │ │ chunk_start=False, chunk_end=False) │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py:173 │ │ in _receive_event │ │ │ │ 170 │ │ │ 171 │ async def _receive_event(self, timeout: Optional[float] = None) -> H11Event: │ │ 172 │ │ while True: │ │ ❱ 173 │ │ │ with map_exceptions({h11.RemoteProtocolError: RemoteProtocolError}): │ │ 174 │ │ │ │ event = self._h11_state.next_event() │ │ 175 │ │ │ │ │ 176 │ │ │ if event is h11.NEED_DATA: │ │ │ │ ╭────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ self = │ │ │ │ timeout = 5.0 │ │ │ │ event = NEED_DATA │ │ │ │ data = b'' │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /usr/lib/python3.10/contextlib.py:153 in __exit__ │ │ │ │ 150 │ │ │ │ # tell if we get the same exception back │ │ 151 │ │ │ │ value = typ() │ │ 152 │ │ │ try: │ │ ❱ 153 │ │ │ │ self.gen.throw(typ, value, traceback) │ │ 154 │ │ │ except StopIteration as exc: │ │ 155 │ │ │ │ # Suppress StopIteration *unless* it's the same exception that │ │ 156 │ │ │ │ # was passed to throw(). This prevents a StopIteration │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ typ = │ │ │ │ value = RemoteProtocolError('peer closed connection without sending complete message body (received 64720 bytes, expected │ │ │ │ 10563527)') │ │ │ │ traceback = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_exceptions.py:12 in │ │ map_exceptions │ │ │ │ 9 │ except Exception as exc: # noqa: PIE786 │ │ 10 │ │ for from_exc, to_exc in map.items(): │ │ 11 │ │ │ if isinstance(exc, from_exc): │ │ ❱ 12 │ │ │ │ raise to_exc(exc) │ │ 13 │ │ raise # pragma: nocover │ │ 14 │ │ 15 │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ map = {: } │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ RemoteProtocolError: peer closed connection without sending complete message body (received 64720 bytes, expected 10563527) The above exception was the direct cause of the following exception: ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:167 in _start_base_services │ │ │ │ 164 │ │ │ │ │ instance = base_service_cls.from_config(self._config) │ │ 165 │ │ │ │ else: │ │ 166 │ │ │ │ │ instance = self.init_inject(base_service_cls) │ │ ❱ 167 │ │ │ │ await instance.start() │ │ 168 │ │ │ │ logger.success(f'服务 "{base_service_cls.__name__}" 初始化成功') │ │ 169 │ │ │ │ self._services.update({base_service_cls: instance}) │ │ 170 │ │ │ except Exception as e: # pylint: disable=W0703 │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'core.base.aiobrowser' │ │ │ │ e = RemoteProtocolError('peer closed connection without sending complete message body (received 64720 bytes, │ │ │ │ expected 10563527)') │ │ │ │ base_service_cls = │ │ │ │ instance = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/assets.py:493 in start │ │ │ │ 490 │ │ │ 491 │ async def start(self): # pylint: disable=R0201 │ │ 492 │ │ logger.info("正在刷新元数据") │ │ ❱ 493 │ │ await update_metadata_from_github(False) │ │ 494 │ │ await update_metadata_from_ambr(False) │ │ 495 │ │ await update_honey_metadata(False) │ │ 496 │ │ logger.info("刷新元数据成功") │ │ │ │ ╭───────────────────────────── locals ─────────────────────────────╮ │ │ │ self = │ │ │ ╰──────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/metadata/scripts/metadatas.py:40 in update_metadata_from_github │ │ │ │ 37 │ text_map_url = host.join("TextMap/TextMapCHS.json") │ │ 38 │ material_url = host.join("ExcelBinOutput/MaterialExcelConfigData.json") │ │ 39 │ │ │ ❱ 40 │ text_map_json_data = json.loads((await client.get(text_map_url)).text) │ │ 41 │ material_json_data = json.loads((await client.get(material_url)).text) │ │ 42 │ │ │ 43 │ data = {} │ │ │ │ ╭──────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────╮ │ │ │ overwrite = False │ │ │ │ path = PosixPath('/home/wenjinyu/Documents/genshin/TGPaimonBot/metadata/data/namecard.json') │ │ │ │ host = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/') │ │ │ │ text_map_url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/TextMap/TextMapCHS.json') │ │ │ │ material_url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/ExcelBinOutput/MaterialExcelConfigData.json') │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1751 in get │ │ │ │ 1748 │ │ │ │ 1749 │ │ **Parameters**: See `httpx.request`. │ │ 1750 │ │ """ │ │ ❱ 1751 │ │ return await self.request( │ │ 1752 │ │ │ "GET", │ │ 1753 │ │ │ url, │ │ 1754 │ │ │ params=params, │ │ │ │ ╭──────────────────────────────────────────────── locals ────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/TextMap/TextMapCHS.json') │ │ │ │ params = None │ │ │ │ headers = None │ │ │ │ cookies = None │ │ │ │ auth = │ │ │ │ follow_redirects = │ │ │ │ timeout = │ │ │ │ extensions = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1527 in │ │ request │ │ │ │ 1524 │ │ │ timeout=timeout, │ │ 1525 │ │ │ extensions=extensions, │ │ 1526 │ │ ) │ │ ❱ 1527 │ │ return await self.send(request, auth=auth, follow_redirects=follow_redirects) │ │ 1528 │ │ │ 1529 │ @asynccontextmanager │ │ 1530 │ async def stream( │ │ │ │ ╭────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ method = 'GET' │ │ │ │ url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/TextMap/TextMapCHS.json') │ │ │ │ content = None │ │ │ │ data = None │ │ │ │ files = None │ │ │ │ json = None │ │ │ │ params = None │ │ │ │ headers = None │ │ │ │ cookies = None │ │ │ │ auth = │ │ │ │ follow_redirects = │ │ │ │ timeout = │ │ │ │ extensions = None │ │ │ │ request = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1628 in send │ │ │ │ 1625 │ │ │ │ 1626 │ │ except BaseException as exc: # pragma: no cover │ │ 1627 │ │ │ await response.aclose() │ │ ❱ 1628 │ │ │ raise exc │ │ 1629 │ │ │ 1630 │ async def _send_handling_auth( │ │ 1631 │ │ self, │ │ │ │ ╭────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ stream = False │ │ │ │ auth = │ │ │ │ follow_redirects = False │ │ │ │ response = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1622 in send │ │ │ │ 1619 │ │ ) │ │ 1620 │ │ try: │ │ 1621 │ │ │ if not stream: │ │ ❱ 1622 │ │ │ │ await response.aread() │ │ 1623 │ │ │ │ │ 1624 │ │ │ return response │ │ 1625 │ │ │ │ ╭────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ stream = False │ │ │ │ auth = │ │ │ │ follow_redirects = False │ │ │ │ response = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_models.py:896 in aread │ │ │ │ 893 │ │ Read and return the response content. │ │ 894 │ │ """ │ │ 895 │ │ if not hasattr(self, "_content"): │ │ ❱ 896 │ │ │ self._content = b"".join([part async for part in self.aiter_bytes()]) │ │ 897 │ │ return self._content │ │ 898 │ │ │ 899 │ async def aiter_bytes( │ │ │ │ ╭────────── locals ──────────╮ │ │ │ self = │ │ │ ╰────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_models.py:896 in │ │ │ │ │ │ 893 │ │ Read and return the response content. │ │ 894 │ │ """ │ │ 895 │ │ if not hasattr(self, "_content"): │ │ ❱ 896 │ │ │ self._content = b"".join([part async for part in self.aiter_bytes()]) │ │ 897 │ │ return self._content │ │ 898 │ │ │ 899 │ async def aiter_bytes( │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ .0 = │ │ │ │ part = b'\xe3\x80\x8c\xe9\x9b\xa8\xe5\xa4\xa9\xe4\xb8\x8d\xe8\xa6\x81\xe9\x9d\xa0\xe6\x88\x91\xe5\xa4\xaa\xe8\xbf\x91\xe5\x95… │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_models.py:914 in │ │ aiter_bytes │ │ │ │ 911 │ │ │ decoder = self._get_content_decoder() │ │ 912 │ │ │ chunker = ByteChunker(chunk_size=chunk_size) │ │ 913 │ │ │ with request_context(request=self._request): │ │ ❱ 914 │ │ │ │ async for raw_bytes in self.aiter_raw(): │ │ 915 │ │ │ │ │ decoded = decoder.decode(raw_bytes) │ │ 916 │ │ │ │ │ for chunk in chunker.decode(decoded): │ │ 917 │ │ │ │ │ │ yield chunk │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ chunk_size = None │ │ │ │ decoder = │ │ │ │ chunker = │ │ │ │ raw_bytes = b"J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba │ │ │ │ chunk_size = None │ │ │ │ chunker = │ │ │ │ raw_stream_bytes = b"J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba typing.AsyncIterator[bytes]: │ │ ❱ 146 │ │ async for chunk in self._stream: │ │ 147 │ │ │ yield chunk │ │ 148 │ │ │ 149 │ async def aclose(self) -> None: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ chunk = b"J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba typing.AsyncIterator[bytes]: │ │ ❱ 238 │ │ with map_httpcore_exceptions(): │ │ 239 │ │ │ async for part in self._httpcore_stream: │ │ 240 │ │ │ │ yield part │ │ 241 │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ part = b"J\xfb\x96\x95\xd7q\x86E\xf7\x14\x15\x02\x006\xc1&\xba │ │ │ │ typ = │ │ │ │ value = RemoteProtocolError(RemoteProtocolError('peer closed connection without sending complete message body (received │ │ │ │ 64720 bytes, expected 10563527)')) │ │ │ │ traceback = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py:7 │ │ 7 in map_httpcore_exceptions │ │ │ │ 74 │ │ │ raise │ │ 75 │ │ │ │ 76 │ │ message = str(exc) │ │ ❱ 77 │ │ raise mapped_exc(message) from exc │ │ 78 │ │ 79 │ │ 80 HTTPCORE_EXC_MAP = { │ │ │ │ ╭────────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │ │ mapped_exc = │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ │ message = 'peer closed connection without sending complete message body (received 64720 byt'+22 │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ RemoteProtocolError: peer closed connection without sending complete message body (received 64720 bytes, expected 10563527) [2022-10-21 11:28:04] INFO 正在尝试启动 Playwright core.base.aiobrowser 17 SUCCESS Playwright 启动成功 core.base.aiobrowser 19 INFO 正在尝试启动 Browser core.base.aiobrowser 21 ERROR 服务 "AioBrowser" 初始化失败: Executable doesn't exist at /home/wenjinyu/.cache/ms-playwright/chromium-1024/chrome-linux/chrome core.bot 171 ╔════════════════════════════════════════════════════════════╗ ║ Looks like Playwright was just installed or updated. ║ ║ Please run the following command to download new browsers: ║ ║ ║ ║ playwright install ║ ║ ║ ║ <3 Playwright Team ║ ╚════════════════════════════════════════════════════════════╝ ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:167 in _start_base_services │ │ │ │ 164 │ │ │ │ │ instance = base_service_cls.from_config(self._config) │ │ 165 │ │ │ │ else: │ │ 166 │ │ │ │ │ instance = self.init_inject(base_service_cls) │ │ ❱ 167 │ │ │ │ await instance.start() │ │ 168 │ │ │ │ logger.success(f'服务 "{base_service_cls.__name__}" 初始化成功') │ │ 169 │ │ │ │ self._services.update({base_service_cls: instance}) │ │ 170 │ │ │ except Exception as e: # pylint: disable=W0703 │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'core.base.aiobrowser' │ │ │ │ base_service_cls = │ │ │ │ instance = │ │ │ │ e = Error("Executable doesn't exist at │ │ │ │ /home/wenjinyu/.cache/ms-playwright/chromium-1024/chrome-linux/chrome\n╔══════════════════════════════════… │ │ │ │ Looks like Playwright was just installed or updated. ║\n║ Please run the following command to │ │ │ │ download new browsers: ║\n║ ║\n║ playwright │ │ │ │ install ║\n║ │ │ │ │ ║\n║ <3 Playwright Team │ │ │ │ ║\n╚════════════════════════════════════════════════════════════╝") │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/aiobrowser.py:23 in start │ │ │ │ 20 │ │ if self.browser is None: │ │ 21 │ │ │ logger.info("正在尝试启动 [blue]Browser[/]", extra={"markup": True}) │ │ 22 │ │ │ try: │ │ ❱ 23 │ │ │ │ self.browser = await self._playwright.chromium.launch(timeout=5000) │ │ 24 │ │ │ │ logger.success("[blue]Browser[/] 启动成功", extra={"markup": True}) │ │ 25 │ │ │ except TimeoutError as err: │ │ 26 │ │ │ │ logger.warning("[blue]Browser[/] 启动失败", extra={"markup": True}) │ │ │ │ ╭───────────────────────────── locals ──────────────────────────────╮ │ │ │ self = │ │ │ ╰───────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/async_api/_generate │ │ d.py:11636 in launch │ │ │ │ 11633 │ │ """ │ │ 11634 │ │ │ │ 11635 │ │ return mapping.from_impl( │ │ ❱ 11636 │ │ │ await self._impl_obj.launch( │ │ 11637 │ │ │ │ executablePath=executable_path, │ │ 11638 │ │ │ │ channel=channel, │ │ 11639 │ │ │ │ args=mapping.to_impl(args), │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ executable_path = None │ │ │ │ channel = None │ │ │ │ args = None │ │ │ │ ignore_default_args = None │ │ │ │ handle_sigint = None │ │ │ │ handle_sigterm = None │ │ │ │ handle_sighup = None │ │ │ │ timeout = 5000 │ │ │ │ env = None │ │ │ │ headless = None │ │ │ │ devtools = None │ │ │ │ proxy = None │ │ │ │ downloads_path = None │ │ │ │ slow_mo = None │ │ │ │ traces_dir = None │ │ │ │ chromium_sandbox = None │ │ │ │ firefox_user_prefs = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/_impl/_browser_type │ │ .py:93 in launch │ │ │ │ 90 │ │ params = locals_to_params(locals()) │ │ 91 │ │ normalize_launch_params(params) │ │ 92 │ │ browser = cast( │ │ ❱ 93 │ │ │ Browser, from_channel(await self._channel.send("launch", params)) │ │ 94 │ │ ) │ │ 95 │ │ browser._set_browser_type(self) │ │ 96 │ │ return browser │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ executablePath = None │ │ │ │ channel = None │ │ │ │ args = None │ │ │ │ ignoreDefaultArgs = None │ │ │ │ handleSIGINT = None │ │ │ │ handleSIGTERM = None │ │ │ │ handleSIGHUP = None │ │ │ │ timeout = 5000 │ │ │ │ env = None │ │ │ │ headless = None │ │ │ │ devtools = None │ │ │ │ proxy = None │ │ │ │ downloadsPath = None │ │ │ │ slowMo = None │ │ │ │ tracesDir = None │ │ │ │ chromiumSandbox = None │ │ │ │ firefoxUserPrefs = None │ │ │ │ params = {'timeout': 5000} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/_impl/_connection.p │ │ y:43 in send │ │ │ │ 40 │ │ self._object: Optional[ChannelOwner] = None │ │ 41 │ │ │ 42 │ async def send(self, method: str, params: Dict = None) -> Any: │ │ ❱ 43 │ │ return await self._connection.wrap_api_call( │ │ 44 │ │ │ lambda: self.inner_send(method, params, False) │ │ 45 │ │ ) │ │ 46 │ │ │ │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ │ │ method = 'launch' │ │ │ │ params = {'timeout': 5000} │ │ │ │ self = │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/_impl/_connection.p │ │ y:387 in wrap_api_call │ │ │ │ 384 │ │ if metadata: │ │ 385 │ │ │ self._api_zone.set(metadata) │ │ 386 │ │ try: │ │ ❱ 387 │ │ │ return await cb() │ │ 388 │ │ finally: │ │ 389 │ │ │ self._api_zone.set(None) │ │ 390 │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ cb = . at 0x7f7c5bfaf0a0> │ │ │ │ is_internal = False │ │ │ │ task = cb=[_run_until_complete_cb() at │ │ │ │ /usr/lib/python3.10/asyncio/base_events.py:184]> │ │ │ │ st = [ │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ FrameInfo(...), │ │ │ │ │ ... +7 │ │ │ │ ] │ │ │ │ metadata = {'apiName': 'BrowserType.launch', 'stack': [...]} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/playwright/_impl/_connection.p │ │ y:78 in inner_send │ │ │ │ 75 │ │ ) │ │ 76 │ │ if not callback.future.done(): │ │ 77 │ │ │ callback.future.cancel() │ │ ❱ 78 │ │ result = next(iter(done)).result() │ │ 79 │ │ # Protocol now has named return values, assume result is one level deeper unless │ │ 80 │ │ # there is explicit ambiguity. │ │ 81 │ │ if not result: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ method = 'launch' │ │ │ │ params = {'timeout': 5000} │ │ │ │ return_as_dict = False │ │ │ │ callback = │ │ │ │ done = { │ │ │ │ │ │ │ │ │ } │ │ │ │ _ = {} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ Error: Executable doesn't exist at /home/wenjinyu/.cache/ms-playwright/chromium-1024/chrome-linux/chrome ╔════════════════════════════════════════════════════════════╗ ║ Looks like Playwright was just installed or updated. ║ ║ Please run the following command to download new browsers: ║ ║ ║ ║ playwright install ║ ║ ║ ║ <3 Playwright Team ║ ╚════════════════════════════════════════════════════════════╝ [2022-10-21 11:28:06] SUCCESS 服务 "SignServices" 初始化成功 core.service 27 SUCCESS 服务 "WikiService" 初始化成功 core.service 27 ERROR 来自core.template的服务初始化失败:create_template_service() missing 1 required positional argument: 'browser' core.service 30 ╭────────────────────────────────────────────── Traceback (most recent call last) ───────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/service.py:26 in init_service │ │ │ │ 23 │ │ │ 24 │ if bot.is_running: │ │ 25 │ │ try: │ │ ❱ 26 │ │ │ service = bot.init_inject(func) │ │ 27 │ │ │ logger.success(f'服务 "{service.__class__.__name__}" 初始化成功') │ │ 28 │ │ │ bot.add_service(service) │ │ 29 │ │ except Exception as e: # pylint: disable=W0703 │ │ │ │ ╭──────────────────────────────────────────── locals ─────────────────────────────────────────────╮ │ │ │ func = │ │ │ │ bot = │ │ │ │ e = TypeError("create_template_service() missing 1 required positional argument: 'browser'") │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭─────────────────────────────────────────────── locals ───────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭─────────────────────────────────────────────── locals ───────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = │ │ │ │ target = │ │ │ │ kwargs = {'redis': } │ │ │ │ name = 'redis' │ │ │ │ parameter = │ │ │ │ value = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TypeError: create_template_service() missing 1 required positional argument: 'browser' SUCCESS 服务 "BotAdminService" 初始化成功 core.service 27 SUCCESS 服务 "UserService" 初始化成功 core.service 27 SUCCESS 服务 "CookiesService" 初始化成功 core.service 27 SUCCESS 服务 "PublicCookiesService" 初始化成功 core.service 27 SUCCESS 服务 "QuizService" 初始化成功 core.service 27 SUCCESS 服务 "GameStrategyService" 初始化成功 core.service 27 [2022-10-21 11:28:07] SUCCESS 服务 "GameMaterialService" 初始化成功 core.service 27 INFO 开始安装插件 core.bot 227 SUCCESS 插件 "plugins.system.start.StartPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.cookies.SetUserCookies" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.set_quiz.SetQuizPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.get_chat.GetChat" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.weapon.WeaponPlugin" 载入成功 core.bot 122 ERROR 在安装插件 "plugins.genshin.daily.material.DailyMaterial" 的过程中遇到了错误: core.bot 124 TypeError: DailyMaterial.__init__() missing 2 required positional arguments: 'assets' and 'template_service' ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:100 in install_plugins │ │ │ │ 97 │ │ for plugin_cls in {*Plugin.__subclasses__(), *Plugin.Conversation.__subclasses__()}: │ │ 98 │ │ │ path = f"{plugin_cls.__module__}.{plugin_cls.__name__}" │ │ 99 │ │ │ try: │ │ ❱ 100 │ │ │ │ plugin: PluginType = self.init_inject(plugin_cls) │ │ 101 │ │ │ │ if hasattr(plugin, "__async_init__"): │ │ 102 │ │ │ │ │ await self.async_inject(plugin.__async_init__) │ │ 103 │ │ │ │ handlers = plugin.handlers │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'plugins.genshin.ledger' │ │ │ │ e = TypeError("DailyMaterial.__init__() missing 2 required positional arguments: 'assets' and │ │ │ │ 'template_service'") │ │ │ │ plugin_cls = │ │ │ │ path = 'plugins.genshin.daily.material.DailyMaterial' │ │ │ │ plugin = │ │ │ │ handlers = [ │ │ │ │ │ , │ │ │ │ │ │ │ │ │ ] │ │ │ │ error_handlers = {} │ │ │ │ jobs = [] │ │ │ │ callback_dict = {} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = │ │ │ │ target = │ │ │ │ kwargs = {} │ │ │ │ name = 'template_service' │ │ │ │ parameter = │ │ │ │ value = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TypeError: DailyMaterial.__init__() missing 2 required positional arguments: 'assets' and 'template_service' SUCCESS 插件 "plugins.system.inline.Inline" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.player_cards.PlayerCards" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.wiki.Wiki" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.quiz.QuizPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.map.map.Map" 载入成功 core.bot 122 ERROR 在安装插件 "plugins.genshin.avatar_list.AvatarListPlugin" 的过程中遇到了错误: core.bot 124 TypeError: AvatarListPlugin.__init__() missing 2 required positional arguments: 'assets_service' and 'template_service' ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:100 in install_plugins │ │ │ │ 97 │ │ for plugin_cls in {*Plugin.__subclasses__(), *Plugin.Conversation.__subclasses__()}: │ │ 98 │ │ │ path = f"{plugin_cls.__module__}.{plugin_cls.__name__}" │ │ 99 │ │ │ try: │ │ ❱ 100 │ │ │ │ plugin: PluginType = self.init_inject(plugin_cls) │ │ 101 │ │ │ │ if hasattr(plugin, "__async_init__"): │ │ 102 │ │ │ │ │ await self.async_inject(plugin.__async_init__) │ │ 103 │ │ │ │ handlers = plugin.handlers │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'plugins.genshin.ledger' │ │ │ │ e = TypeError("AvatarListPlugin.__init__() missing 2 required positional arguments: 'assets_service' and │ │ │ │ 'template_service'") │ │ │ │ plugin_cls = │ │ │ │ path = 'plugins.genshin.avatar_list.AvatarListPlugin' │ │ │ │ plugin = │ │ │ │ handlers = [ │ │ │ │ │ , │ │ │ │ │ │ │ │ │ ] │ │ │ │ error_handlers = {} │ │ │ │ jobs = [] │ │ │ │ callback_dict = {} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = None> │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = None> │ │ │ │ target = │ │ │ │ kwargs = {'cookies_service': } │ │ │ │ name = 'template_service' │ │ │ │ parameter = │ │ │ │ value = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TypeError: AvatarListPlugin.__init__() missing 2 required positional arguments: 'assets_service' and 'template_service' [2022-10-21 11:28:08] SUCCESS 插件 "plugins.genshin.userstats.UserStatsPlugins" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.uid.SetUserUid" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.gacha.gacha_log.GachaLog" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.strategy.StrategyPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.ledger.Ledger" 载入成功 core.bot 122 INFO 群验证模块正在刷新问题列表 plugins.system.auth 46 SUCCESS 群验证模块刷新问题列表成功 plugins.system.auth 48 SUCCESS 插件 "plugins.system.auth.GroupJoiningVerification" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.new_member.BotJoiningGroupsVerification" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.update.UpdatePlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.sign_all.SignAll" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.errorhandler.ErrorHandler" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.abyss_team.AbyssTeam" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.abyss.Abyss" 载入成功 core.bot 122 SUCCESS 插件 "plugins.jobs.sign.SignJob" 载入成功 core.bot 122 SUCCESS 插件 "plugins.jobs.public_cookies.PublicCookies" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.refresh_metadata.MetadataPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.other.post.Post" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.artifact_rate.ArtifactRate" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.admin.AdminPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.hilichurls.HilichurlsPlugin" 载入成功 core.bot 122 ERROR 在安装插件 "plugins.genshin.help.HelpPlugin" 的过程中遇到了错误: core.bot 124 ModuleNotFoundError: ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:100 in install_plugins │ │ │ │ 97 │ │ for plugin_cls in {*Plugin.__subclasses__(), *Plugin.Conversation.__subclasses__()}: │ │ 98 │ │ │ path = f"{plugin_cls.__module__}.{plugin_cls.__name__}" │ │ 99 │ │ │ try: │ │ ❱ 100 │ │ │ │ plugin: PluginType = self.init_inject(plugin_cls) │ │ 101 │ │ │ │ if hasattr(plugin, "__async_init__"): │ │ 102 │ │ │ │ │ await self.async_inject(plugin.__async_init__) │ │ 103 │ │ │ │ handlers = plugin.handlers │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'plugins.genshin.ledger' │ │ │ │ e = ModuleNotFoundError() │ │ │ │ plugin_cls = │ │ │ │ path = 'plugins.genshin.help.HelpPlugin' │ │ │ │ plugin = │ │ │ │ handlers = [] │ │ │ │ error_handlers = {} │ │ │ │ jobs = [] │ │ │ │ callback_dict = {2: [...], 1: [...]} │ │ │ │ priority = 1 │ │ │ │ block = False │ │ │ │ callback = > │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭──────────────────────────────────────────── locals ─────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭──────────────────────────────────────────── locals ─────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = │ │ │ │ target = │ │ │ │ kwargs = {} │ │ │ │ name = 'template_service' │ │ │ │ parameter = │ │ │ │ value = None │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/plugins/genshin/help.py:19 in __init__ │ │ │ │ 16 │ │ self.file_id = None │ │ 17 │ │ self.help_png = None │ │ 18 │ │ if template_service is None: │ │ ❱ 19 │ │ │ raise ModuleNotFoundError │ │ 20 │ │ self.template_service = template_service │ │ 21 │ │ │ 22 │ @handler(CommandHandler, command="help", block=False) │ │ │ │ ╭─────────────────────────────────── locals ────────────────────────────────────╮ │ │ │ self = │ │ │ │ template_service = None │ │ │ ╰───────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ModuleNotFoundError SUCCESS 插件 "plugins.genshin.daily_note.DailyNote" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.sign.Sign" 载入成功 core.bot 122 [2022-10-21 11:28:09] SUCCESS 插件 "plugins.system.log.Log" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.sign_status.SignStatus" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.gacha.gacha.Gacha" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.material.Material" 载入成功 core.bot 122 SUCCESS 成功添加了 2 个针对 filters.StatusUpdate.NEW_CHAT_MEMBERS 的 MessageHandler core.bot 139 INFO BOT 初始化成功 core.bot 229 [2022-10-21 11:53:05] INFO 正在关闭服务 core.bot 192 SUCCESS 服务 "WebServer" 关闭成功 core.bot 201 SUCCESS 服务 "MySQL" 关闭成功 core.bot 201 SUCCESS 服务 "RedisDB" 关闭成功 core.bot 201 SUCCESS 服务 "MTProto" 关闭成功 core.bot 201 INFO BOT 已经关闭 core.bot 266 [2022-10-21 11:53:49] INFO 正在初始化BOT core.bot 234 [2022-10-21 11:53:51] INFO 开始初始化 genshin.py 相关资源 core.bot 208 [2022-10-21 11:53:52] SUCCESS 初始化 genshin.py 相关资源成功 core.bot 223 INFO 开始初始化服务 core.bot 225 [2022-10-21 11:53:54] SUCCESS 服务 "WebServer" 初始化成功 core.bot 168 SUCCESS 服务 "MySQL" 初始化成功 core.bot 168 INFO 正在尝试建立与 Redis 连接 core.base.redisdb 33 INFO 连接 Redis 成功 core.base.redisdb 25 SUCCESS 服务 "RedisDB" 初始化成功 core.bot 168 INFO MTProto 服务需要的 api_id 未配置 本次服务 client 为 None core.base.mtproto 50 SUCCESS 服务 "MTProto" 初始化成功 core.bot 168 INFO 正在刷新元数据 core.base.assets 492 [2022-10-21 11:54:00] ERROR 服务 "AssetsService" 初始化失败: core.bot 171 ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/anyio/streams/tls.py:130 in │ │ _call_sslobject_method │ │ │ │ 127 │ ) -> T_Retval: │ │ 128 │ │ while True: │ │ 129 │ │ │ try: │ │ ❱ 130 │ │ │ │ result = func(*args) │ │ 131 │ │ │ except ssl.SSLWantReadError: │ │ 132 │ │ │ │ try: │ │ 133 │ │ │ │ │ # Flush any pending writes first │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = TLSStream( │ │ │ │ │ transport_stream=, │ │ │ │ │ standard_compatible=False, │ │ │ │ │ _ssl_object=, │ │ │ │ │ _read_bio=<_ssl.MemoryBIO object at 0x7f3ae06f2200>, │ │ │ │ │ _write_bio=<_ssl.MemoryBIO object at 0x7f3ae06f20b0> │ │ │ │ ) │ │ │ │ func = > │ │ │ │ args = (65536,) │ │ │ │ data = b'\x17\x03\x03@\x11aQM\x1a\xfd\xf8$\t\x11\x04\x03uM\x03\xe2yS\x0f\x0c]\xbb\xf0\xadL&`s\x07\x17\xbfL\xe4\xc1\xc2IU\xfb(… │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /usr/lib/python3.10/ssl.py:916 in read │ │ │ │ 913 │ │ if buffer is not None: │ │ 914 │ │ │ v = self._sslobj.read(len, buffer) │ │ 915 │ │ else: │ │ ❱ 916 │ │ │ v = self._sslobj.read(len) │ │ 917 │ │ return v │ │ 918 │ │ │ 919 │ def write(self, data): │ │ │ │ ╭───────────────────── locals ──────────────────────╮ │ │ │ self = │ │ │ │ len = 65536 │ │ │ │ buffer = None │ │ │ ╰───────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ SSLWantReadError: The operation did not complete (read) (_ssl.c:2548) During handling of the above exception, another exception occurred: ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/backends/asyncio.py:3 │ │ 3 in read │ │ │ │ 30 │ │ with map_exceptions(exc_map): │ │ 31 │ │ │ with anyio.fail_after(timeout): │ │ 32 │ │ │ │ try: │ │ ❱ 33 │ │ │ │ │ return await self._stream.receive(max_bytes=max_bytes) │ │ 34 │ │ │ │ except anyio.EndOfStream: # pragma: nocover │ │ 35 │ │ │ │ │ return b"" │ │ 36 │ │ │ │ ╭───────────────────────────────────── locals ──────────────────────────────────────╮ │ │ │ self = │ │ │ │ max_bytes = 65536 │ │ │ │ timeout = 5.0 │ │ │ │ exc_map = { │ │ │ │ │ : , │ │ │ │ │ : │ │ │ │ } │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/anyio/streams/tls.py:195 in │ │ receive │ │ │ │ 192 │ │ await self.transport_stream.aclose() │ │ 193 │ │ │ 194 │ async def receive(self, max_bytes: int = 65536) -> bytes: │ │ ❱ 195 │ │ data = await self._call_sslobject_method(self._ssl_object.read, max_bytes) │ │ 196 │ │ if not data: │ │ 197 │ │ │ raise EndOfStream │ │ 198 │ │ │ │ ╭────────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │ │ │ self = TLSStream( │ │ │ │ │ transport_stream=, │ │ │ │ │ standard_compatible=False, │ │ │ │ │ _ssl_object=, │ │ │ │ │ _read_bio=<_ssl.MemoryBIO object at 0x7f3ae06f2200>, │ │ │ │ │ _write_bio=<_ssl.MemoryBIO object at 0x7f3ae06f20b0> │ │ │ │ ) │ │ │ │ max_bytes = 65536 │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/anyio/streams/tls.py:137 in │ │ _call_sslobject_method │ │ │ │ 134 │ │ │ │ │ if self._write_bio.pending: │ │ 135 │ │ │ │ │ │ await self.transport_stream.send(self._write_bio.read()) │ │ 136 │ │ │ │ │ │ │ ❱ 137 │ │ │ │ │ data = await self.transport_stream.receive() │ │ 138 │ │ │ │ except EndOfStream: │ │ 139 │ │ │ │ │ self._read_bio.write_eof() │ │ 140 │ │ │ │ except OSError as exc: │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = TLSStream( │ │ │ │ │ transport_stream=, │ │ │ │ │ standard_compatible=False, │ │ │ │ │ _ssl_object=, │ │ │ │ │ _read_bio=<_ssl.MemoryBIO object at 0x7f3ae06f2200>, │ │ │ │ │ _write_bio=<_ssl.MemoryBIO object at 0x7f3ae06f20b0> │ │ │ │ ) │ │ │ │ func = > │ │ │ │ args = (65536,) │ │ │ │ data = b'\x17\x03\x03@\x11aQM\x1a\xfd\xf8$\t\x11\x04\x03uM\x03\xe2yS\x0f\x0c]\xbb\xf0\xadL&`s\x07\x17\xbfL\xe4\xc1\xc2IU\xfb(… │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/anyio/_backends/_asyncio.py:12 │ │ 65 in receive │ │ │ │ 1262 │ │ │ │ and not self._transport.is_closing() │ │ 1263 │ │ │ ): │ │ 1264 │ │ │ │ self._transport.resume_reading() │ │ ❱ 1265 │ │ │ │ await self._protocol.read_event.wait() │ │ 1266 │ │ │ │ self._transport.pause_reading() │ │ 1267 │ │ │ │ │ 1268 │ │ │ try: │ │ │ │ ╭─────────────────────────────────── locals ───────────────────────────────────╮ │ │ │ self = │ │ │ │ max_bytes = 65536 │ │ │ ╰──────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /usr/lib/python3.10/asyncio/locks.py:214 in wait │ │ │ │ 211 │ │ fut = self._get_loop().create_future() │ │ 212 │ │ self._waiters.append(fut) │ │ 213 │ │ try: │ │ ❱ 214 │ │ │ await fut │ │ 215 │ │ │ return True │ │ 216 │ │ finally: │ │ 217 │ │ │ self._waiters.remove(fut) │ │ │ │ ╭────────────────────────── locals ───────────────────────────╮ │ │ │ self = │ │ │ │ fut = │ │ │ ╰─────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ CancelledError During handling of the above exception, another exception occurred: ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_exceptions.py:8 in │ │ map_exceptions │ │ │ │ 5 @contextlib.contextmanager │ │ 6 def map_exceptions(map: Dict[Type, Type]) -> Iterator[None]: │ │ 7 │ try: │ │ ❱ 8 │ │ yield │ │ 9 │ except Exception as exc: # noqa: PIE786 │ │ 10 │ │ for from_exc, to_exc in map.items(): │ │ 11 │ │ │ if isinstance(exc, from_exc): │ │ │ │ ╭───────────────────────────────────── locals ─────────────────────────────────────╮ │ │ │ map = { │ │ │ │ │ : , │ │ │ │ │ : │ │ │ │ } │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/backends/asyncio.py:3 │ │ 1 in read │ │ │ │ 28 │ │ │ anyio.BrokenResourceError: ReadError, │ │ 29 │ │ } │ │ 30 │ │ with map_exceptions(exc_map): │ │ ❱ 31 │ │ │ with anyio.fail_after(timeout): │ │ 32 │ │ │ │ try: │ │ 33 │ │ │ │ │ return await self._stream.receive(max_bytes=max_bytes) │ │ 34 │ │ │ │ except anyio.EndOfStream: # pragma: nocover │ │ │ │ ╭───────────────────────────────────── locals ──────────────────────────────────────╮ │ │ │ self = │ │ │ │ max_bytes = 65536 │ │ │ │ timeout = 5.0 │ │ │ │ exc_map = { │ │ │ │ │ : , │ │ │ │ │ : │ │ │ │ } │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/anyio/_core/_tasks.py:118 in │ │ __exit__ │ │ │ │ 115 │ ) -> Optional[bool]: │ │ 116 │ │ retval = self._cancel_scope.__exit__(exc_type, exc_val, exc_tb) │ │ 117 │ │ if self._cancel_scope.cancel_called: │ │ ❱ 118 │ │ │ raise TimeoutError │ │ 119 │ │ │ │ 120 │ │ return retval │ │ 121 │ │ │ │ ╭───────────────────────────────────── locals ─────────────────────────────────────╮ │ │ │ self = │ │ │ │ exc_type = │ │ │ │ exc_val = CancelledError() │ │ │ │ exc_tb = │ │ │ │ retval = True │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TimeoutError During handling of the above exception, another exception occurred: ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py:6 │ │ 0 in map_httpcore_exceptions │ │ │ │ 57 @contextlib.contextmanager │ │ 58 def map_httpcore_exceptions() -> typing.Iterator[None]: │ │ 59 │ try: │ │ ❱ 60 │ │ yield │ │ 61 │ except Exception as exc: # noqa: PIE-786 │ │ 62 │ │ mapped_exc = None │ │ 63 │ │ │ │ ╭────────────────────── locals ───────────────────────╮ │ │ │ mapped_exc = │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ │ message = '' │ │ │ ╰─────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py:3 │ │ 53 in handle_async_request │ │ │ │ 350 │ │ │ extensions=request.extensions, │ │ 351 │ │ ) │ │ 352 │ │ with map_httpcore_exceptions(): │ │ ❱ 353 │ │ │ resp = await self._pool.handle_async_request(req) │ │ 354 │ │ │ │ 355 │ │ assert isinstance(resp.stream, typing.AsyncIterable) │ │ 356 │ │ │ │ ╭────────────────────────────────────────────────── locals ──────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ req = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_async/connection_poo │ │ l.py:253 in handle_async_request │ │ │ │ 250 │ │ │ │ │ await self._attempt_to_acquire_connection(status) │ │ 251 │ │ │ except BaseException as exc: │ │ 252 │ │ │ │ await self.response_closed(status) │ │ ❱ 253 │ │ │ │ raise exc │ │ 254 │ │ │ else: │ │ 255 │ │ │ │ break │ │ 256 │ │ │ │ ╭─────────────────────────────────────────────────── locals ───────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ scheme = 'https' │ │ │ │ status = │ │ │ │ timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 5.0} │ │ │ │ timeout = 5.0 │ │ │ │ connection = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_async/connection_poo │ │ l.py:237 in handle_async_request │ │ │ │ 234 │ │ │ │ │ raise exc │ │ 235 │ │ │ │ │ 236 │ │ │ try: │ │ ❱ 237 │ │ │ │ response = await connection.handle_async_request(request) │ │ 238 │ │ │ except ConnectionNotAvailable: │ │ 239 │ │ │ │ # The ConnectionNotAvailable exception is a special case, that │ │ 240 │ │ │ │ # indicates we need to retry the request on a new connection. │ │ │ │ ╭─────────────────────────────────────────────────── locals ───────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ scheme = 'https' │ │ │ │ status = │ │ │ │ timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 5.0} │ │ │ │ timeout = 5.0 │ │ │ │ connection = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_async/http_proxy.py: │ │ 313 in handle_async_request │ │ │ │ 310 │ │ │ │ │ ) │ │ 311 │ │ │ │ │ │ 312 │ │ │ │ self._connected = True │ │ ❱ 313 │ │ return await self._connection.handle_async_request(request) │ │ 314 │ │ │ 315 │ def can_handle_request(self, origin: Origin) -> bool: │ │ 316 │ │ return origin == self._remote_origin │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 5.0} │ │ │ │ timeout = 5.0 │ │ │ │ target = b'raw.fastgit.org:443' │ │ │ │ connect_url = URL(scheme=b'http', host=b'127.0.0.1', port=10801, target=b'raw.fastgit.org:443') │ │ │ │ connect_headers = [(...), (...)] │ │ │ │ connect_request = │ │ │ │ connect_response = │ │ │ │ stream = │ │ │ │ ssl_context = │ │ │ │ alpn_protocols = ['http/1.1'] │ │ │ │ kwargs = { │ │ │ │ │ 'ssl_context': , │ │ │ │ │ 'server_hostname': 'raw.fastgit.org', │ │ │ │ │ 'timeout': 5.0 │ │ │ │ } │ │ │ │ trace = │ │ │ │ ssl_object = │ │ │ │ http2_negotiated = False │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py:105 │ │ in handle_async_request │ │ │ │ 102 │ │ except BaseException as exc: │ │ 103 │ │ │ async with Trace("http11.response_closed", request) as trace: │ │ 104 │ │ │ │ await self._response_closed() │ │ ❱ 105 │ │ │ raise exc │ │ 106 │ │ │ 107 │ # Sending the request... │ │ 108 │ │ │ │ ╭────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ kwargs = {'request': } │ │ │ │ trace = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py:84 │ │ in handle_async_request │ │ │ │ 81 │ │ │ │ │ status, │ │ 82 │ │ │ │ │ reason_phrase, │ │ 83 │ │ │ │ │ headers, │ │ ❱ 84 │ │ │ │ ) = await self._receive_response_headers(**kwargs) │ │ 85 │ │ │ │ trace.return_value = ( │ │ 86 │ │ │ │ │ http_version, │ │ 87 │ │ │ │ │ status, │ │ │ │ ╭────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ kwargs = {'request': } │ │ │ │ trace = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py:148 │ │ in _receive_response_headers │ │ │ │ 145 │ │ timeout = timeouts.get("read", None) │ │ 146 │ │ │ │ 147 │ │ while True: │ │ ❱ 148 │ │ │ event = await self._receive_event(timeout=timeout) │ │ 149 │ │ │ if isinstance(event, h11.Response): │ │ 150 │ │ │ │ break │ │ 151 │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ timeouts = {'connect': 5.0, 'read': 5.0, 'write': 5.0, 'pool': 5.0} │ │ │ │ timeout = 5.0 │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py:177 │ │ in _receive_event │ │ │ │ 174 │ │ │ │ event = self._h11_state.next_event() │ │ 175 │ │ │ │ │ 176 │ │ │ if event is h11.NEED_DATA: │ │ ❱ 177 │ │ │ │ data = await self._network_stream.read( │ │ 178 │ │ │ │ │ self.READ_NUM_BYTES, timeout=timeout │ │ 179 │ │ │ │ ) │ │ 180 │ │ │ │ ╭────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ self = │ │ │ │ timeout = 5.0 │ │ │ │ event = NEED_DATA │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/backends/asyncio.py:3 │ │ 0 in read │ │ │ │ 27 │ │ │ TimeoutError: ReadTimeout, │ │ 28 │ │ │ anyio.BrokenResourceError: ReadError, │ │ 29 │ │ } │ │ ❱ 30 │ │ with map_exceptions(exc_map): │ │ 31 │ │ │ with anyio.fail_after(timeout): │ │ 32 │ │ │ │ try: │ │ 33 │ │ │ │ │ return await self._stream.receive(max_bytes=max_bytes) │ │ │ │ ╭───────────────────────────────────── locals ──────────────────────────────────────╮ │ │ │ self = │ │ │ │ max_bytes = 65536 │ │ │ │ timeout = 5.0 │ │ │ │ exc_map = { │ │ │ │ │ : , │ │ │ │ │ : │ │ │ │ } │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /usr/lib/python3.10/contextlib.py:153 in __exit__ │ │ │ │ 150 │ │ │ │ # tell if we get the same exception back │ │ 151 │ │ │ │ value = typ() │ │ 152 │ │ │ try: │ │ ❱ 153 │ │ │ │ self.gen.throw(typ, value, traceback) │ │ 154 │ │ │ except StopIteration as exc: │ │ 155 │ │ │ │ # Suppress StopIteration *unless* it's the same exception that │ │ 156 │ │ │ │ # was passed to throw(). This prevents a StopIteration │ │ │ │ ╭────────────────────────────────── locals ──────────────────────────────────╮ │ │ │ self = │ │ │ │ typ = │ │ │ │ value = TimeoutError() │ │ │ │ traceback = │ │ │ ╰────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_exceptions.py:12 in │ │ map_exceptions │ │ │ │ 9 │ except Exception as exc: # noqa: PIE786 │ │ 10 │ │ for from_exc, to_exc in map.items(): │ │ 11 │ │ │ if isinstance(exc, from_exc): │ │ ❱ 12 │ │ │ │ raise to_exc(exc) │ │ 13 │ │ raise # pragma: nocover │ │ 14 │ │ 15 │ │ │ │ ╭───────────────────────────────────── locals ─────────────────────────────────────╮ │ │ │ map = { │ │ │ │ │ : , │ │ │ │ │ : │ │ │ │ } │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ReadTimeout The above exception was the direct cause of the following exception: ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:167 in _start_base_services │ │ │ │ 164 │ │ │ │ │ instance = base_service_cls.from_config(self._config) │ │ 165 │ │ │ │ else: │ │ 166 │ │ │ │ │ instance = self.init_inject(base_service_cls) │ │ ❱ 167 │ │ │ │ await instance.start() │ │ 168 │ │ │ │ logger.success(f'服务 "{base_service_cls.__name__}" 初始化成功') │ │ 169 │ │ │ │ self._services.update({base_service_cls: instance}) │ │ 170 │ │ │ except Exception as e: # pylint: disable=W0703 │ │ │ │ ╭─────────────────────────────────── locals ───────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'core.base.aiobrowser' │ │ │ │ e = ReadTimeout('') │ │ │ │ base_service_cls = │ │ │ │ instance = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/assets.py:493 in start │ │ │ │ 490 │ │ │ 491 │ async def start(self): # pylint: disable=R0201 │ │ 492 │ │ logger.info("正在刷新元数据") │ │ ❱ 493 │ │ await update_metadata_from_github(False) │ │ 494 │ │ await update_metadata_from_ambr(False) │ │ 495 │ │ await update_honey_metadata(False) │ │ 496 │ │ logger.info("刷新元数据成功") │ │ │ │ ╭───────────────────────────── locals ─────────────────────────────╮ │ │ │ self = │ │ │ ╰──────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/metadata/scripts/metadatas.py:40 in update_metadata_from_github │ │ │ │ 37 │ text_map_url = host.join("TextMap/TextMapCHS.json") │ │ 38 │ material_url = host.join("ExcelBinOutput/MaterialExcelConfigData.json") │ │ 39 │ │ │ ❱ 40 │ text_map_json_data = json.loads((await client.get(text_map_url)).text) │ │ 41 │ material_json_data = json.loads((await client.get(material_url)).text) │ │ 42 │ │ │ 43 │ data = {} │ │ │ │ ╭──────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────╮ │ │ │ overwrite = False │ │ │ │ path = PosixPath('/home/wenjinyu/Documents/genshin/TGPaimonBot/metadata/data/namecard.json') │ │ │ │ host = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/') │ │ │ │ text_map_url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/TextMap/TextMapCHS.json') │ │ │ │ material_url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/ExcelBinOutput/MaterialExcelConfigData.json') │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1751 in get │ │ │ │ 1748 │ │ │ │ 1749 │ │ **Parameters**: See `httpx.request`. │ │ 1750 │ │ """ │ │ ❱ 1751 │ │ return await self.request( │ │ 1752 │ │ │ "GET", │ │ 1753 │ │ │ url, │ │ 1754 │ │ │ params=params, │ │ │ │ ╭──────────────────────────────────────────────── locals ────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/TextMap/TextMapCHS.json') │ │ │ │ params = None │ │ │ │ headers = None │ │ │ │ cookies = None │ │ │ │ auth = │ │ │ │ follow_redirects = │ │ │ │ timeout = │ │ │ │ extensions = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1527 in │ │ request │ │ │ │ 1524 │ │ │ timeout=timeout, │ │ 1525 │ │ │ extensions=extensions, │ │ 1526 │ │ ) │ │ ❱ 1527 │ │ return await self.send(request, auth=auth, follow_redirects=follow_redirects) │ │ 1528 │ │ │ 1529 │ @asynccontextmanager │ │ 1530 │ async def stream( │ │ │ │ ╭────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ method = 'GET' │ │ │ │ url = URL('https://raw.fastgit.org/Dimbreath/GenshinData/master/TextMap/TextMapCHS.json') │ │ │ │ content = None │ │ │ │ data = None │ │ │ │ files = None │ │ │ │ json = None │ │ │ │ params = None │ │ │ │ headers = None │ │ │ │ cookies = None │ │ │ │ auth = │ │ │ │ follow_redirects = │ │ │ │ timeout = │ │ │ │ extensions = None │ │ │ │ request = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1614 in send │ │ │ │ 1611 │ │ │ │ 1612 │ │ auth = self._build_request_auth(request, auth) │ │ 1613 │ │ │ │ ❱ 1614 │ │ response = await self._send_handling_auth( │ │ 1615 │ │ │ request, │ │ 1616 │ │ │ auth=auth, │ │ 1617 │ │ │ follow_redirects=follow_redirects, │ │ │ │ ╭────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ stream = False │ │ │ │ auth = │ │ │ │ follow_redirects = False │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1642 in │ │ _send_handling_auth │ │ │ │ 1639 │ │ │ request = await auth_flow.__anext__() │ │ 1640 │ │ │ │ │ 1641 │ │ │ while True: │ │ ❱ 1642 │ │ │ │ response = await self._send_handling_redirects( │ │ 1643 │ │ │ │ │ request, │ │ 1644 │ │ │ │ │ follow_redirects=follow_redirects, │ │ 1645 │ │ │ │ │ history=history, │ │ │ │ ╭────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ auth = │ │ │ │ follow_redirects = False │ │ │ │ history = [] │ │ │ │ auth_flow = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1679 in │ │ _send_handling_redirects │ │ │ │ 1676 │ │ │ for hook in self._event_hooks["request"]: │ │ 1677 │ │ │ │ await hook(request) │ │ 1678 │ │ │ │ │ ❱ 1679 │ │ │ response = await self._send_single_request(request) │ │ 1680 │ │ │ try: │ │ 1681 │ │ │ │ for hook in self._event_hooks["response"]: │ │ 1682 │ │ │ │ │ await hook(response) │ │ │ │ ╭────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ follow_redirects = False │ │ │ │ history = [] │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_client.py:1716 in │ │ _send_single_request │ │ │ │ 1713 │ │ │ ) │ │ 1714 │ │ │ │ 1715 │ │ with request_context(request=request): │ │ ❱ 1716 │ │ │ response = await transport.handle_async_request(request) │ │ 1717 │ │ │ │ 1718 │ │ assert isinstance(response.stream, AsyncByteStream) │ │ 1719 │ │ response.request = request │ │ │ │ ╭─────────────────────────────────────────────────── locals ───────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ transport = │ │ │ │ timer = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py:3 │ │ 52 in handle_async_request │ │ │ │ 349 │ │ │ content=request.stream, │ │ 350 │ │ │ extensions=request.extensions, │ │ 351 │ │ ) │ │ ❱ 352 │ │ with map_httpcore_exceptions(): │ │ 353 │ │ │ resp = await self._pool.handle_async_request(req) │ │ 354 │ │ │ │ 355 │ │ assert isinstance(resp.stream, typing.AsyncIterable) │ │ │ │ ╭────────────────────────────────────────────────── locals ──────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ request = │ │ │ │ req = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /usr/lib/python3.10/contextlib.py:153 in __exit__ │ │ │ │ 150 │ │ │ │ # tell if we get the same exception back │ │ 151 │ │ │ │ value = typ() │ │ 152 │ │ │ try: │ │ ❱ 153 │ │ │ │ self.gen.throw(typ, value, traceback) │ │ 154 │ │ │ except StopIteration as exc: │ │ 155 │ │ │ │ # Suppress StopIteration *unless* it's the same exception that │ │ 156 │ │ │ │ # was passed to throw(). This prevents a StopIteration │ │ │ │ ╭────────────────────────────────── locals ──────────────────────────────────╮ │ │ │ self = │ │ │ │ typ = │ │ │ │ value = ReadTimeout(TimeoutError()) │ │ │ │ traceback = │ │ │ ╰────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py:7 │ │ 7 in map_httpcore_exceptions │ │ │ │ 74 │ │ │ raise │ │ 75 │ │ │ │ 76 │ │ message = str(exc) │ │ ❱ 77 │ │ raise mapped_exc(message) from exc │ │ 78 │ │ 79 │ │ 80 HTTPCORE_EXC_MAP = { │ │ │ │ ╭────────────────────── locals ───────────────────────╮ │ │ │ mapped_exc = │ │ │ │ from_exc = │ │ │ │ to_exc = │ │ │ │ message = '' │ │ │ ╰─────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ReadTimeout [2022-10-21 11:54:03] INFO 正在尝试启动 Playwright core.base.aiobrowser 17 [2022-10-21 11:54:04] SUCCESS Playwright 启动成功 core.base.aiobrowser 19 INFO 正在尝试启动 Browser core.base.aiobrowser 21 SUCCESS Browser 启动成功 core.base.aiobrowser 24 SUCCESS 服务 "AioBrowser" 初始化成功 core.bot 168 SUCCESS 服务 "SignServices" 初始化成功 core.service 27 SUCCESS 服务 "WikiService" 初始化成功 core.service 27 SUCCESS 服务 "TemplateService" 初始化成功 core.service 27 SUCCESS 服务 "BotAdminService" 初始化成功 core.service 27 SUCCESS 服务 "UserService" 初始化成功 core.service 27 SUCCESS 服务 "CookiesService" 初始化成功 core.service 27 SUCCESS 服务 "PublicCookiesService" 初始化成功 core.service 27 SUCCESS 服务 "QuizService" 初始化成功 core.service 27 SUCCESS 服务 "GameStrategyService" 初始化成功 core.service 27 SUCCESS 服务 "GameMaterialService" 初始化成功 core.service 27 INFO 开始安装插件 core.bot 227 [2022-10-21 11:54:05] SUCCESS 插件 "plugins.genshin.abyss.Abyss" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.sign.Sign" 载入成功 core.bot 122 ERROR 在安装插件 "plugins.genshin.avatar_list.AvatarListPlugin" 的过程中遇到了错误: core.bot 124 TypeError: AvatarListPlugin.__init__() missing 1 required positional argument: 'assets_service' ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:100 in install_plugins │ │ │ │ 97 │ │ for plugin_cls in {*Plugin.__subclasses__(), *Plugin.Conversation.__subclasses__()}: │ │ 98 │ │ │ path = f"{plugin_cls.__module__}.{plugin_cls.__name__}" │ │ 99 │ │ │ try: │ │ ❱ 100 │ │ │ │ plugin: PluginType = self.init_inject(plugin_cls) │ │ 101 │ │ │ │ if hasattr(plugin, "__async_init__"): │ │ 102 │ │ │ │ │ await self.async_inject(plugin.__async_init__) │ │ 103 │ │ │ │ handlers = plugin.handlers │ │ │ │ ╭────────────────────────────────────────────────────── locals ──────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'plugins.genshin.ledger' │ │ │ │ e = TypeError("AvatarListPlugin.__init__() missing 1 required positional argument: 'assets_service'") │ │ │ │ plugin_cls = │ │ │ │ path = 'plugins.genshin.avatar_list.AvatarListPlugin' │ │ │ │ plugin = │ │ │ │ handlers = [ │ │ │ │ │ , │ │ │ │ │ │ │ │ │ ] │ │ │ │ error_handlers = {} │ │ │ │ jobs = [] │ │ │ │ callback_dict = {} │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = None> │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = None> │ │ │ │ target = │ │ │ │ kwargs = { │ │ │ │ │ 'cookies_service': , │ │ │ │ │ 'template_service': │ │ │ │ } │ │ │ │ name = 'template_service' │ │ │ │ parameter = │ │ │ │ value = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TypeError: AvatarListPlugin.__init__() missing 1 required positional argument: 'assets_service' SUCCESS 插件 "plugins.genshin.abyss_team.AbyssTeam" 载入成功 core.bot 122 INFO 群验证模块正在刷新问题列表 plugins.system.auth 46 SUCCESS 群验证模块刷新问题列表成功 plugins.system.auth 48 SUCCESS 插件 "plugins.system.auth.GroupJoiningVerification" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.get_chat.GetChat" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.cookies.SetUserCookies" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.artifact_rate.ArtifactRate" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.uid.SetUserUid" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.quiz.QuizPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.inline.Inline" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.strategy.StrategyPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.hilichurls.HilichurlsPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.new_member.BotJoiningGroupsVerification" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.update.UpdatePlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.sign_all.SignAll" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.errorhandler.ErrorHandler" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.material.Material" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.ledger.Ledger" 载入成功 core.bot 122 SUCCESS 插件 "plugins.jobs.sign.SignJob" 载入成功 core.bot 122 SUCCESS 插件 "plugins.jobs.public_cookies.PublicCookies" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.start.StartPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.refresh_metadata.MetadataPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.weapon.WeaponPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.set_quiz.SetQuizPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.player_cards.PlayerCards" 载入成功 core.bot 122 SUCCESS 插件 "plugins.other.post.Post" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.help.HelpPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.admin.AdminPlugin" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.daily_note.DailyNote" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.gacha.gacha_log.GachaLog" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.map.map.Map" 载入成功 core.bot 122 [2022-10-21 11:54:06] ERROR 在安装插件 "plugins.genshin.daily.material.DailyMaterial" 的过程中遇到了错误: core.bot 124 TypeError: DailyMaterial.__init__() missing 1 required positional argument: 'assets' ╭──────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────╮ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:100 in install_plugins │ │ │ │ 97 │ │ for plugin_cls in {*Plugin.__subclasses__(), *Plugin.Conversation.__subclasses__()}: │ │ 98 │ │ │ path = f"{plugin_cls.__module__}.{plugin_cls.__name__}" │ │ 99 │ │ │ try: │ │ ❱ 100 │ │ │ │ plugin: PluginType = self.init_inject(plugin_cls) │ │ 101 │ │ │ │ if hasattr(plugin, "__async_init__"): │ │ 102 │ │ │ │ │ await self.async_inject(plugin.__async_init__) │ │ 103 │ │ │ │ handlers = plugin.handlers │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ pkg = 'plugins.genshin.ledger' │ │ │ │ e = TypeError("DailyMaterial.__init__() missing 1 required positional argument: 'assets'") │ │ │ │ plugin_cls = │ │ │ │ path = 'plugins.genshin.daily.material.DailyMaterial' │ │ │ │ plugin = │ │ │ │ handlers = [ │ │ │ │ │ , │ │ │ │ │ │ │ │ │ ] │ │ │ │ error_handlers = {} │ │ │ │ jobs = [] │ │ │ │ callback_dict = {2: [...], 1: [...]} │ │ │ │ priority = 1 │ │ │ │ block = False │ │ │ │ callback = > │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:72 in init_inject │ │ │ │ 69 │ │ │ signature = inspect.signature(target.__init__) │ │ 70 │ │ else: │ │ 71 │ │ │ signature = inspect.signature(target) │ │ ❱ 72 │ │ return self._inject(signature, target) │ │ 73 │ │ │ 74 │ async def async_inject(self, target: Callable[..., T]) -> T: │ │ 75 │ │ return await self._inject(inspect.signature(target), target) │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ target = │ │ │ │ signature = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py:64 in _inject │ │ │ │ 61 │ │ │ if name != "self" and parameter.annotation != inspect.Parameter.empty: │ │ 62 │ │ │ │ if value := self._services.get(parameter.annotation): │ │ 63 │ │ │ │ │ kwargs[name] = value │ │ ❱ 64 │ │ return target(**kwargs) │ │ 65 │ │ │ 66 │ def init_inject(self, target: Callable[..., T]) -> T: │ │ 67 │ │ """用于实例化Plugin的方法。用于给插件传入一些必要组件,如 MySQL、Redis等""" │ │ │ │ ╭──────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ signature = │ │ │ │ target = │ │ │ │ kwargs = {'template_service': } │ │ │ │ name = 'template_service' │ │ │ │ parameter = │ │ │ │ value = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TypeError: DailyMaterial.__init__() missing 1 required positional argument: 'assets' SUCCESS 插件 "plugins.system.log.Log" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.wiki.Wiki" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.gacha.gacha.Gacha" 载入成功 core.bot 122 SUCCESS 插件 "plugins.system.sign_status.SignStatus" 载入成功 core.bot 122 SUCCESS 插件 "plugins.genshin.userstats.UserStatsPlugins" 载入成功 core.bot 122 SUCCESS 成功添加了 2 个针对 filters.StatusUpdate.NEW_CHAT_MEMBERS 的 MessageHandler core.bot 139 INFO BOT 初始化成功 core.bot 229 [2022-10-21 12:00:07] INFO 正在关闭服务 core.bot 192 SUCCESS 服务 "WebServer" 关闭成功 core.bot 201 SUCCESS 服务 "MySQL" 关闭成功 core.bot 201 SUCCESS 服务 "RedisDB" 关闭成功 core.bot 201 SUCCESS 服务 "MTProto" 关闭成功 core.bot 201 SUCCESS 服务 "AioBrowser" 关闭成功 core.bot 201 INFO BOT 已经关闭 core.bot 266