[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 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] 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( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+51, │ │ │ │ │ │ lineno=382, │ │ │ │ │ │ function='wrap_api_call', │ │ │ │ │ │ code_context=[' st: List[inspect.FrameInfo] = getattr(task, "__pw_stack__", inspect.stac'+5], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+51, │ │ │ │ │ │ lineno=43, │ │ │ │ │ │ function='send', │ │ │ │ │ │ code_context=[' return await self._connection.wrap_api_call(\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+53, │ │ │ │ │ │ lineno=93, │ │ │ │ │ │ function='launch', │ │ │ │ │ │ code_context=[' Browser, from_channel(await self._channel.send("launch", params))\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+54, │ │ │ │ │ │ lineno=11636, │ │ │ │ │ │ function='launch', │ │ │ │ │ │ code_context=[' await self._impl_obj.launch(\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/aiobrowser.py', │ │ │ │ │ │ lineno=23, │ │ │ │ │ │ function='start', │ │ │ │ │ │ code_context=[' self.browser = await self._playwright.chromium.launch(timeout=50'+4], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ lineno=167, │ │ │ │ │ │ function='_start_base_services', │ │ │ │ │ │ code_context=[' await instance.start()\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ lineno=176, │ │ │ │ │ │ function='start_services', │ │ │ │ │ │ code_context=[' await self._start_base_services()\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ lineno=226, │ │ │ │ │ │ function='_post_init', │ │ │ │ │ │ code_context=[' await self.start_services()\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/usr/lib/python3.10/asyncio/events.py', │ │ │ │ │ │ lineno=80, │ │ │ │ │ │ function='_run', │ │ │ │ │ │ code_context=[' self._context.run(self._callback, *self._args)\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/usr/lib/python3.10/asyncio/base_events.py', │ │ │ │ │ │ lineno=1896, │ │ │ │ │ │ function='_run_once', │ │ │ │ │ │ code_context=[' handle._run()\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ ... +7 │ │ │ │ ] │ │ │ │ metadata = { │ │ │ │ │ 'apiName': 'BrowserType.launch', │ │ │ │ │ 'stack': [ │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/aiobrowser.py', │ │ │ │ │ │ │ 'line': 23, │ │ │ │ │ │ │ 'function': 'AioBrowser.start' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ │ 'line': 167, │ │ │ │ │ │ │ 'function': 'Bot._start_base_services' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ │ 'line': 176, │ │ │ │ │ │ │ 'function': 'Bot.start_services' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ │ 'line': 226, │ │ │ │ │ │ │ 'function': 'Bot._post_init' │ │ │ │ │ │ }, │ │ │ │ │ │ {'file': '/usr/lib/python3.10/asyncio/events.py', 'line': 80, 'function': 'Handle._run'}, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/usr/lib/python3.10/asyncio/base_events.py', │ │ │ │ │ │ │ 'line': 1896, │ │ │ │ │ │ │ 'function': '_UnixSelectorEventLoop._run_once' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/usr/lib/python3.10/asyncio/base_events.py', │ │ │ │ │ │ │ 'line': 600, │ │ │ │ │ │ │ 'function': '_UnixSelectorEventLoop.run_forever' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/usr/lib/python3.10/asyncio/base_events.py', │ │ │ │ │ │ │ 'line': 633, │ │ │ │ │ │ │ 'function': '_UnixSelectorEventLoop.run_until_complete' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+48, │ │ │ │ │ │ │ 'line': 815, │ │ │ │ │ │ │ 'function': 'Application.__run' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+48, │ │ │ │ │ │ │ 'line': 648, │ │ │ │ │ │ │ 'function': 'Application.run_polling' │ │ │ │ │ │ }, │ │ │ │ │ │ ... +3 │ │ │ │ │ ] │ │ │ │ } │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /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] 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' [2022-10-21 11:15:38] 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] 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' 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 [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 = [(b'Host', b'api.telegram.org:443'), (b'Accept', b'*/*')] │ │ │ │ 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', {'chat_id': 592208461, 'text': '前面的区域,以后再来探索吧!'}) │ │ │ │ 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', {'chat_id': 592208461, 'text': '前面的区域,以后再来探索吧!'}) │ │ │ │ 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:16] ERROR An error was raised and an uncaught error was raised while handling the error with an error_handler. telegram.ext._application 918 ╭──────────────────────────────────────── 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 0x7f58b40fbcd0>, │ │ │ │ │ _write_bio=<_ssl.MemoryBIO object at 0x7f58b40face0> │ │ │ │ ) │ │ │ │ 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/back │ │ ends/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/streams │ │ /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 0x7f58b40fbcd0> │ │ │ │ bio_out = <_ssl.MemoryBIO object at 0x7f58b40face0> │ │ │ │ ssl_object = │ │ │ │ wrapper = TLSStream( │ │ │ │ │ transport_stream=, │ │ │ │ │ standard_compatible=False, │ │ │ │ │ _ssl_object=, │ │ │ │ │ _read_bio=<_ssl.MemoryBIO object at 0x7f58b40fbcd0>, │ │ │ │ │ _write_bio=<_ssl.MemoryBIO object at 0x7f58b40face0> │ │ │ │ ) │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /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 0x7f58b40fbcd0>, │ │ │ │ │ _write_bio=<_ssl.MemoryBIO object at 0x7f58b40face0> │ │ │ │ ) │ │ │ │ func = > │ │ │ │ args = () │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/anyio/_backen │ │ ds/_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/_exc │ │ eptions.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/back │ │ ends/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/back │ │ ends/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/_transp │ │ orts/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/_transp │ │ orts/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/_asy │ │ nc/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': 20, 'pool': 1.0} │ │ │ │ timeout = 1.0 │ │ │ │ connection = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_asy │ │ nc/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': 20, 'pool': 1.0} │ │ │ │ timeout = 1.0 │ │ │ │ connection = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpcore/_asy │ │ nc/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': 20, '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 = [(b'Host', b'api.telegram.org:443'), (b'Accept', b'*/*')] │ │ │ │ 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/back │ │ ends/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/_exc │ │ eptions.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/requ │ │ est/_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/sendD'+7 │ │ │ │ method = 'POST' │ │ │ │ request_data = │ │ │ │ read_timeout = 5.0 │ │ │ │ write_timeout = 20 │ │ │ │ connect_timeout = 5.0 │ │ │ │ pool_timeout = 1.0 │ │ │ │ timeout = Timeout(connect=5.0, read=5.0, write=20, pool=1.0) │ │ │ │ files = { │ │ │ │ │ 'document': ( │ │ │ │ │ │ 'error_455288074.txt', │ │ │ │ │ │ b'-----Exception while handling an update-----\nupdate = {\n "update_id": │ │ │ │ 455288074'+11173, │ │ │ │ │ │ 'text/plain' │ │ │ │ │ ) │ │ │ │ } │ │ │ │ data = {'chat_id': '', 'caption': 'Error: "TimedOut"'} │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /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 = 'POST' │ │ │ │ url = 'https://api.telegram.org/bot1086676537:AAEEDHfpfKFnLxdJ7C5PaAdIsXPOSEbiQq0/sendD'+7 │ │ │ │ content = None │ │ │ │ data = {'chat_id': '', 'caption': 'Error: "TimedOut"'} │ │ │ │ files = { │ │ │ │ │ 'document': ( │ │ │ │ │ │ 'error_455288074.txt', │ │ │ │ │ │ b'-----Exception while handling an update-----\nupdate = {\n "update_id": │ │ │ │ 455288074'+11173, │ │ │ │ │ │ 'text/plain' │ │ │ │ │ ) │ │ │ │ } │ │ │ │ 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=20, pool=1.0) │ │ │ │ extensions = None │ │ │ │ request = │ │ │ │ request = │ │ │ │ kwargs = { │ │ │ │ │ 'auth': , │ │ │ │ │ 'follow_redirects': │ │ │ │ } │ │ │ │ hub = │ │ │ │ span = │ │ │ │ key = 'sentry-trace' │ │ │ │ value = '673cbc57124b4b5c8015530021131b3c-8234042f727a3159-' │ │ │ │ real_send = │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /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 = │ │ │ │ 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 = │ │ │ │ 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 = │ │ │ │ request = │ │ │ │ transport = │ │ │ │ timer = │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/httpx/_transp │ │ orts/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/_transp │ │ orts/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/ext/ │ │ _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 = True │ │ │ │ exception = TimedOut('Timed out') │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/Documents/genshin/TGPaimonBot/plugins/system/errorhandler.py:70 in error_handler │ │ │ │ 67 │ │ │ if "Message is not modified" in tb_string: │ │ 68 │ │ │ │ logger.error("消息未修改") │ │ 69 │ │ │ │ return │ │ ❱ 70 │ │ │ await context.bot.send_document( │ │ 71 │ │ │ │ chat_id=notice_chat_id, │ │ 72 │ │ │ │ document=open(log_file, "rb"), │ │ 73 │ │ │ │ caption=f'Error: "{context.error.__class__.__name__}"', │ │ │ │ ╭─────────────────────────────────────────────────── locals ────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ update = │ │ │ │ context = │ │ │ │ tb_list = [ │ │ │ │ │ 'Traceback (most recent call last):\n', │ │ │ │ │ ' File "/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/l'+112, │ │ │ │ │ ' File "/usr/lib/python3.10/ssl.py", line 974, in do_handshake\n self._sslobj.'+15, │ │ │ │ │ 'ssl.SSLWantReadError: The operation did not complete (read) (_ssl.c:997)\n', │ │ │ │ │ '\nDuring handling of the above exception, another exception occurred:\n\n', │ │ │ │ │ 'Traceback (most recent call last):\n', │ │ │ │ │ ' File "/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/l'+138, │ │ │ │ │ ' File "/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/l'+135, │ │ │ │ │ ' File "/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/l'+136, │ │ │ │ │ ' File "/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/l'+123, │ │ │ │ │ ... +56 │ │ │ │ ] │ │ │ │ tb_string = 'Traceback (most recent call last):\n File "/home/wenjinyu/.cache/pypoetry/virtua'+10116 │ │ │ │ update_str = { │ │ │ │ │ 'update_id': 455288074, │ │ │ │ │ 'message': { │ │ │ │ │ │ 'chat': { │ │ │ │ │ │ │ 'id': 592208461, │ │ │ │ │ │ │ 'type': , │ │ │ │ │ │ │ 'last_name': 'Vane', │ │ │ │ │ │ │ 'first_name': 'Jade', │ │ │ │ │ │ │ 'username': 'jadevane' │ │ │ │ │ │ }, │ │ │ │ │ │ 'text': '/gh', │ │ │ │ │ │ 'group_chat_created': False, │ │ │ │ │ │ 'entities': [{'length': 3, 'type': , 'offset': 0}], │ │ │ │ │ │ 'new_chat_members': [], │ │ │ │ │ │ 'new_chat_photo': [], │ │ │ │ │ │ 'message_id': 1470, │ │ │ │ │ │ 'delete_chat_photo': False, │ │ │ │ │ │ 'caption_entities': [], │ │ │ │ │ │ 'date': 1666322220, │ │ │ │ │ │ ... +4 │ │ │ │ │ } │ │ │ │ } │ │ │ │ error_text = '-----Exception while handling an update-----\nupdate = {\n "update_id": 455288074'+11145 │ │ │ │ file_name = 'error_455288074.txt' │ │ │ │ log_file = '/home/wenjinyu/Documents/genshin/TGPaimonBot/report/error_455288074.txt' │ │ │ │ f = wrapping │ │ │ │ <_io.TextIOWrapper │ │ │ │ name='/home/wenjinyu/Documents/genshin/TGPaimonBot/report/error_455288074.txt' mode='w+' │ │ │ │ encoding='utf-8'> │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/ext/ │ │ _extbot.py:2042 in send_document │ │ │ │ 2039 │ │ api_kwargs: JSONDict = None, │ │ 2040 │ │ rate_limit_args: RLARGS = None, │ │ 2041 │ ) -> Message: │ │ ❱ 2042 │ │ return await super().send_document( │ │ 2043 │ │ │ chat_id=chat_id, │ │ 2044 │ │ │ document=document, │ │ 2045 │ │ │ caption=caption, │ │ │ │ ╭─────────────────────────────────────────────────── locals ────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ chat_id = '' │ │ │ │ document = <_io.BufferedReader │ │ │ │ name='/home/wenjinyu/Documents/genshin/TGPaimonBot/report/error_455288074.t… │ │ │ │ caption = 'Error: "TimedOut"' │ │ │ │ disable_notification = None │ │ │ │ reply_to_message_id = None │ │ │ │ reply_markup = None │ │ │ │ parse_mode = None │ │ │ │ thumb = None │ │ │ │ disable_content_type_detection = None │ │ │ │ allow_sending_without_reply = None │ │ │ │ caption_entities = None │ │ │ │ protect_content = None │ │ │ │ filename = None │ │ │ │ read_timeout = None │ │ │ │ write_timeout = 20 │ │ │ │ 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/_bot │ │ .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': '', │ │ │ │ │ 'document': <_io.BufferedReader │ │ │ │ name='/home/wenjinyu/Documents/genshin/TGPaimonBot/report/error_455288074.txt'>, │ │ │ │ │ 'caption': 'Error: "TimedOut"', │ │ │ │ │ 'disable_notification': None, │ │ │ │ │ 'reply_to_message_id': None, │ │ │ │ │ 'reply_markup': None, │ │ │ │ │ 'parse_mode': None, │ │ │ │ │ 'thumb': None, │ │ │ │ │ 'disable_content_type_detection': None, │ │ │ │ │ 'allow_sending_without_reply': None, │ │ │ │ │ ... +8 │ │ │ │ } │ │ │ │ func = │ │ │ │ logger = │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/_bot │ │ .py:1233 in send_document │ │ │ │ 1230 │ │ if thumb: │ │ 1231 │ │ │ data["thumb"] = parse_file_input(thumb, attach=True) │ │ 1232 │ │ │ │ ❱ 1233 │ │ return await self._send_message( # type: ignore[return-value] │ │ 1234 │ │ │ "sendDocument", │ │ 1235 │ │ │ data, │ │ 1236 │ │ │ reply_to_message_id=reply_to_message_id, │ │ │ │ ╭─────────────────────────────────────────────────── locals ────────────────────────────────────────────────────╮ │ │ │ self = │ │ │ │ chat_id = '' │ │ │ │ document = <_io.BufferedReader │ │ │ │ name='/home/wenjinyu/Documents/genshin/TGPaimonBot/report/error_455288074.t… │ │ │ │ caption = 'Error: "TimedOut"' │ │ │ │ disable_notification = None │ │ │ │ reply_to_message_id = None │ │ │ │ reply_markup = None │ │ │ │ parse_mode = None │ │ │ │ thumb = None │ │ │ │ disable_content_type_detection = None │ │ │ │ allow_sending_without_reply = None │ │ │ │ caption_entities = None │ │ │ │ protect_content = None │ │ │ │ filename = None │ │ │ │ read_timeout = None │ │ │ │ write_timeout = 20 │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ │ api_kwargs = None │ │ │ │ data = { │ │ │ │ │ 'chat_id': '', │ │ │ │ │ 'document': , │ │ │ │ │ 'parse_mode': None, │ │ │ │ │ 'caption': 'Error: "TimedOut"', │ │ │ │ │ '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/ext/ │ │ _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 = 'sendDocument' │ │ │ │ data = { │ │ │ │ │ 'chat_id': '', │ │ │ │ │ 'document': , │ │ │ │ │ 'parse_mode': None, │ │ │ │ │ 'caption': 'Error: "TimedOut"', │ │ │ │ │ '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 = 20 │ │ │ │ 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/_bot │ │ .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 = 'sendDocument' │ │ │ │ data = { │ │ │ │ │ 'chat_id': '', │ │ │ │ │ 'document': , │ │ │ │ │ 'parse_mode': None, │ │ │ │ │ 'caption': 'Error: "TimedOut"', │ │ │ │ │ '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 = 20 │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ │ api_kwargs = None │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/_bot │ │ .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 = 'sendDocument' │ │ │ │ data = { │ │ │ │ │ 'chat_id': '', │ │ │ │ │ 'document': , │ │ │ │ │ 'caption': 'Error: "TimedOut"' │ │ │ │ } │ │ │ │ read_timeout = None │ │ │ │ write_timeout = 20 │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ │ api_kwargs = None │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/ext/ │ │ _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 = 'sendDocument' │ │ │ │ data = { │ │ │ │ │ 'chat_id': '', │ │ │ │ │ 'document': , │ │ │ │ │ 'caption': 'Error: "TimedOut"' │ │ │ │ } │ │ │ │ read_timeout = None │ │ │ │ write_timeout = 20 │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ │ rate_limit_args = None │ │ │ │ kwargs = {'read_timeout': None, 'write_timeout': 20, 'connect_timeout': None, 'pool_timeout': None} │ │ │ │ __class__ = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/ext/ │ │ _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 = ( │ │ │ │ │ 'sendDocument', │ │ │ │ │ { │ │ │ │ │ │ 'chat_id': '', │ │ │ │ │ │ 'document': , │ │ │ │ │ │ 'caption': 'Error: "TimedOut"' │ │ │ │ │ } │ │ │ │ ) │ │ │ │ kwargs = {'read_timeout': None, 'write_timeout': 20, 'connect_timeout': None, 'pool_timeout': None} │ │ │ │ endpoint = 'sendDocument' │ │ │ │ data = { │ │ │ │ │ 'chat_id': '', │ │ │ │ │ 'document': , │ │ │ │ │ 'caption': 'Error: "TimedOut"' │ │ │ │ } │ │ │ │ rate_limit_args = None │ │ │ │ max_retries = 0 │ │ │ │ group = '' │ │ │ │ chat = True │ │ │ │ chat_id = '' │ │ │ │ i = 0 │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/ext/ │ │ _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 = '' │ │ │ │ callback = > │ │ │ │ args = ( │ │ │ │ │ 'sendDocument', │ │ │ │ │ { │ │ │ │ │ │ 'chat_id': '', │ │ │ │ │ │ 'document': , │ │ │ │ │ │ 'caption': 'Error: "TimedOut"' │ │ │ │ │ } │ │ │ │ ) │ │ │ │ kwargs = {'read_timeout': None, 'write_timeout': 20, '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/_bot │ │ .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 = 'sendDocument' │ │ │ │ data = { │ │ │ │ │ 'chat_id': '', │ │ │ │ │ 'document': , │ │ │ │ │ 'caption': 'Error: "TimedOut"' │ │ │ │ } │ │ │ │ read_timeout = None │ │ │ │ write_timeout = 20 │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ │ request_data = │ │ │ │ request = │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/requ │ │ est/_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/sendD'+7 │ │ │ │ request_data = │ │ │ │ read_timeout = None │ │ │ │ write_timeout = 20 │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/requ │ │ est/_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/sendD'+7 │ │ │ │ method = 'POST' │ │ │ │ request_data = │ │ │ │ read_timeout = None │ │ │ │ write_timeout = 20 │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/requ │ │ est/_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/sendD'+7 │ │ │ │ method = 'POST' │ │ │ │ request_data = │ │ │ │ read_timeout = None │ │ │ │ write_timeout = 20 │ │ │ │ connect_timeout = None │ │ │ │ pool_timeout = None │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/python3.10/site-packages/telegram/requ │ │ est/_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/sendD'+7 │ │ │ │ method = 'POST' │ │ │ │ request_data = │ │ │ │ read_timeout = 5.0 │ │ │ │ write_timeout = 20 │ │ │ │ connect_timeout = 5.0 │ │ │ │ pool_timeout = 1.0 │ │ │ │ timeout = Timeout(connect=5.0, read=5.0, write=20, pool=1.0) │ │ │ │ files = { │ │ │ │ │ 'document': ( │ │ │ │ │ │ 'error_455288074.txt', │ │ │ │ │ │ b'-----Exception while handling an update-----\nupdate = {\n "update_id": │ │ │ │ 455288074'+11173, │ │ │ │ │ │ 'text/plain' │ │ │ │ │ ) │ │ │ │ } │ │ │ │ data = {'chat_id': '', 'caption': 'Error: "TimedOut"'} │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ TimedOut: Timed out [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] 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( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+51, │ │ │ │ │ │ lineno=382, │ │ │ │ │ │ function='wrap_api_call', │ │ │ │ │ │ code_context=[' st: List[inspect.FrameInfo] = getattr(task, "__pw_stack__", inspect.stac'+5], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+51, │ │ │ │ │ │ lineno=43, │ │ │ │ │ │ function='send', │ │ │ │ │ │ code_context=[' return await self._connection.wrap_api_call(\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+53, │ │ │ │ │ │ lineno=93, │ │ │ │ │ │ function='launch', │ │ │ │ │ │ code_context=[' Browser, from_channel(await self._channel.send("launch", params))\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+54, │ │ │ │ │ │ lineno=11636, │ │ │ │ │ │ function='launch', │ │ │ │ │ │ code_context=[' await self._impl_obj.launch(\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/aiobrowser.py', │ │ │ │ │ │ lineno=23, │ │ │ │ │ │ function='start', │ │ │ │ │ │ code_context=[' self.browser = await self._playwright.chromium.launch(timeout=50'+4], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ lineno=167, │ │ │ │ │ │ function='_start_base_services', │ │ │ │ │ │ code_context=[' await instance.start()\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ lineno=176, │ │ │ │ │ │ function='start_services', │ │ │ │ │ │ code_context=[' await self._start_base_services()\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ lineno=226, │ │ │ │ │ │ function='_post_init', │ │ │ │ │ │ code_context=[' await self.start_services()\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/usr/lib/python3.10/asyncio/events.py', │ │ │ │ │ │ lineno=80, │ │ │ │ │ │ function='_run', │ │ │ │ │ │ code_context=[' self._context.run(self._callback, *self._args)\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/usr/lib/python3.10/asyncio/base_events.py', │ │ │ │ │ │ lineno=1896, │ │ │ │ │ │ function='_run_once', │ │ │ │ │ │ code_context=[' handle._run()\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ ... +7 │ │ │ │ ] │ │ │ │ metadata = { │ │ │ │ │ 'apiName': 'BrowserType.launch', │ │ │ │ │ 'stack': [ │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/aiobrowser.py', │ │ │ │ │ │ │ 'line': 23, │ │ │ │ │ │ │ 'function': 'AioBrowser.start' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ │ 'line': 167, │ │ │ │ │ │ │ 'function': 'Bot._start_base_services' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ │ 'line': 176, │ │ │ │ │ │ │ 'function': 'Bot.start_services' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ │ 'line': 226, │ │ │ │ │ │ │ 'function': 'Bot._post_init' │ │ │ │ │ │ }, │ │ │ │ │ │ {'file': '/usr/lib/python3.10/asyncio/events.py', 'line': 80, 'function': 'Handle._run'}, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/usr/lib/python3.10/asyncio/base_events.py', │ │ │ │ │ │ │ 'line': 1896, │ │ │ │ │ │ │ 'function': '_UnixSelectorEventLoop._run_once' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/usr/lib/python3.10/asyncio/base_events.py', │ │ │ │ │ │ │ 'line': 600, │ │ │ │ │ │ │ 'function': '_UnixSelectorEventLoop.run_forever' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/usr/lib/python3.10/asyncio/base_events.py', │ │ │ │ │ │ │ 'line': 633, │ │ │ │ │ │ │ 'function': '_UnixSelectorEventLoop.run_until_complete' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+48, │ │ │ │ │ │ │ 'line': 815, │ │ │ │ │ │ │ 'function': 'Application.__run' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+48, │ │ │ │ │ │ │ 'line': 648, │ │ │ │ │ │ │ 'function': 'Application.run_polling' │ │ │ │ │ │ }, │ │ │ │ │ │ ... +3 │ │ │ │ │ ] │ │ │ │ } │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /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] 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' [2022-10-21 11:18:20] 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 [2022-10-21 11:18:21] 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' 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' [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: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] 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( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+51, │ │ │ │ │ │ lineno=382, │ │ │ │ │ │ function='wrap_api_call', │ │ │ │ │ │ code_context=[' st: List[inspect.FrameInfo] = getattr(task, "__pw_stack__", inspect.stac'+5], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+51, │ │ │ │ │ │ lineno=43, │ │ │ │ │ │ function='send', │ │ │ │ │ │ code_context=[' return await self._connection.wrap_api_call(\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+53, │ │ │ │ │ │ lineno=93, │ │ │ │ │ │ function='launch', │ │ │ │ │ │ code_context=[' Browser, from_channel(await self._channel.send("launch", params))\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+54, │ │ │ │ │ │ lineno=11636, │ │ │ │ │ │ function='launch', │ │ │ │ │ │ code_context=[' await self._impl_obj.launch(\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/aiobrowser.py', │ │ │ │ │ │ lineno=23, │ │ │ │ │ │ function='start', │ │ │ │ │ │ code_context=[' self.browser = await self._playwright.chromium.launch(timeout=50'+4], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ lineno=167, │ │ │ │ │ │ function='_start_base_services', │ │ │ │ │ │ code_context=[' await instance.start()\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ lineno=176, │ │ │ │ │ │ function='start_services', │ │ │ │ │ │ code_context=[' await self._start_base_services()\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ lineno=226, │ │ │ │ │ │ function='_post_init', │ │ │ │ │ │ code_context=[' await self.start_services()\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/usr/lib/python3.10/asyncio/events.py', │ │ │ │ │ │ lineno=80, │ │ │ │ │ │ function='_run', │ │ │ │ │ │ code_context=[' self._context.run(self._callback, *self._args)\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/usr/lib/python3.10/asyncio/base_events.py', │ │ │ │ │ │ lineno=1896, │ │ │ │ │ │ function='_run_once', │ │ │ │ │ │ code_context=[' handle._run()\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ ... +7 │ │ │ │ ] │ │ │ │ metadata = { │ │ │ │ │ 'apiName': 'BrowserType.launch', │ │ │ │ │ 'stack': [ │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/aiobrowser.py', │ │ │ │ │ │ │ 'line': 23, │ │ │ │ │ │ │ 'function': 'AioBrowser.start' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ │ 'line': 167, │ │ │ │ │ │ │ 'function': 'Bot._start_base_services' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ │ 'line': 176, │ │ │ │ │ │ │ 'function': 'Bot.start_services' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ │ 'line': 226, │ │ │ │ │ │ │ 'function': 'Bot._post_init' │ │ │ │ │ │ }, │ │ │ │ │ │ {'file': '/usr/lib/python3.10/asyncio/events.py', 'line': 80, 'function': 'Handle._run'}, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/usr/lib/python3.10/asyncio/base_events.py', │ │ │ │ │ │ │ 'line': 1896, │ │ │ │ │ │ │ 'function': '_UnixSelectorEventLoop._run_once' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/usr/lib/python3.10/asyncio/base_events.py', │ │ │ │ │ │ │ 'line': 600, │ │ │ │ │ │ │ 'function': '_UnixSelectorEventLoop.run_forever' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/usr/lib/python3.10/asyncio/base_events.py', │ │ │ │ │ │ │ 'line': 633, │ │ │ │ │ │ │ 'function': '_UnixSelectorEventLoop.run_until_complete' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+48, │ │ │ │ │ │ │ 'line': 815, │ │ │ │ │ │ │ 'function': 'Application.__run' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+48, │ │ │ │ │ │ │ 'line': 648, │ │ │ │ │ │ │ 'function': 'Application.run_polling' │ │ │ │ │ │ }, │ │ │ │ │ │ ... +3 │ │ │ │ │ ] │ │ │ │ } │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /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] 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' [2022-10-21 11:25:30] 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' [2022-10-21 11:25:31] 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 [2022-10-21 11:25:32] 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' [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] 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( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+51, │ │ │ │ │ │ lineno=382, │ │ │ │ │ │ function='wrap_api_call', │ │ │ │ │ │ code_context=[' st: List[inspect.FrameInfo] = getattr(task, "__pw_stack__", inspect.stac'+5], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+51, │ │ │ │ │ │ lineno=43, │ │ │ │ │ │ function='send', │ │ │ │ │ │ code_context=[' return await self._connection.wrap_api_call(\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+53, │ │ │ │ │ │ lineno=93, │ │ │ │ │ │ function='launch', │ │ │ │ │ │ code_context=[' Browser, from_channel(await self._channel.send("launch", params))\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+54, │ │ │ │ │ │ lineno=11636, │ │ │ │ │ │ function='launch', │ │ │ │ │ │ code_context=[' await self._impl_obj.launch(\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/aiobrowser.py', │ │ │ │ │ │ lineno=23, │ │ │ │ │ │ function='start', │ │ │ │ │ │ code_context=[' self.browser = await self._playwright.chromium.launch(timeout=50'+4], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ lineno=167, │ │ │ │ │ │ function='_start_base_services', │ │ │ │ │ │ code_context=[' await instance.start()\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ lineno=176, │ │ │ │ │ │ function='start_services', │ │ │ │ │ │ code_context=[' await self._start_base_services()\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ lineno=226, │ │ │ │ │ │ function='_post_init', │ │ │ │ │ │ code_context=[' await self.start_services()\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/usr/lib/python3.10/asyncio/events.py', │ │ │ │ │ │ lineno=80, │ │ │ │ │ │ function='_run', │ │ │ │ │ │ code_context=[' self._context.run(self._callback, *self._args)\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ FrameInfo( │ │ │ │ │ │ frame=, │ │ │ │ │ │ filename='/usr/lib/python3.10/asyncio/base_events.py', │ │ │ │ │ │ lineno=1896, │ │ │ │ │ │ function='_run_once', │ │ │ │ │ │ code_context=[' handle._run()\n'], │ │ │ │ │ │ index=0 │ │ │ │ │ ), │ │ │ │ │ ... +7 │ │ │ │ ] │ │ │ │ metadata = { │ │ │ │ │ 'apiName': 'BrowserType.launch', │ │ │ │ │ 'stack': [ │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/Documents/genshin/TGPaimonBot/core/base/aiobrowser.py', │ │ │ │ │ │ │ 'line': 23, │ │ │ │ │ │ │ 'function': 'AioBrowser.start' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ │ 'line': 167, │ │ │ │ │ │ │ 'function': 'Bot._start_base_services' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ │ 'line': 176, │ │ │ │ │ │ │ 'function': 'Bot.start_services' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/Documents/genshin/TGPaimonBot/core/bot.py', │ │ │ │ │ │ │ 'line': 226, │ │ │ │ │ │ │ 'function': 'Bot._post_init' │ │ │ │ │ │ }, │ │ │ │ │ │ {'file': '/usr/lib/python3.10/asyncio/events.py', 'line': 80, 'function': 'Handle._run'}, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/usr/lib/python3.10/asyncio/base_events.py', │ │ │ │ │ │ │ 'line': 1896, │ │ │ │ │ │ │ 'function': '_UnixSelectorEventLoop._run_once' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/usr/lib/python3.10/asyncio/base_events.py', │ │ │ │ │ │ │ 'line': 600, │ │ │ │ │ │ │ 'function': '_UnixSelectorEventLoop.run_forever' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/usr/lib/python3.10/asyncio/base_events.py', │ │ │ │ │ │ │ 'line': 633, │ │ │ │ │ │ │ 'function': '_UnixSelectorEventLoop.run_until_complete' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+48, │ │ │ │ │ │ │ 'line': 815, │ │ │ │ │ │ │ 'function': 'Application.__run' │ │ │ │ │ │ }, │ │ │ │ │ │ { │ │ │ │ │ │ │ 'file': '/home/wenjinyu/.cache/pypoetry/virtualenvs/tgpaimonbot-hPjyH2GD-py3.10/lib/pytho'+48, │ │ │ │ │ │ │ 'line': 648, │ │ │ │ │ │ │ 'function': 'Application.run_polling' │ │ │ │ │ │ }, │ │ │ │ │ │ ... +3 │ │ │ │ │ ] │ │ │ │ } │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /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] 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' [2022-10-21 11:28:07] 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' 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] 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 [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 = [(b'Host', b'raw.fastgit.org:443'), (b'Accept', b'*/*')] │ │ │ │ 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:05] 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' [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'