roiiiu / nonebot-plugin-csgo-case-simulator

nonebot的CS2/CSGO开箱模拟器
MIT License
31 stars 8 forks source link

开箱有概率不发送开箱结果图片 #26

Closed ab-Royo closed 4 months ago

ab-Royo commented 4 months ago

有概率输入开箱指令后不发送开箱结果图片,控制台报错如下

05-07 14:50:20 [SUCCESS] nonebot | OneBot V11 32***27 | [message.group.normal]: Message 10***38 from 26***36@[群:97***596] 'csgo开箱 20 狂牙大行动'
05-07 14:50:20 [INFO] nonebot | Event will be handled by Matcher(type='message', module=nonebot-plugin-csgo-case-simulator, lineno=36)
05-07 14:50:31 [INFO] nonebot | Matcher(type='message', module=nonebot-plugin-csgo-case-simulator, lineno=36) running complete
05-07 14:50:31 [ERROR] nonebot | Running Matcher(type='message', module=nonebot-plugin-csgo-case-simulator, lineno=36) failed.
Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\anyio\streams\tls.py", line 131, in _call_sslobject_method
    result = func(*args)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\ssl.py", line 888, in read
    v = self._sslobj.read(len)
ssl.SSLWantReadError: The operation did not complete (read) (_ssl.c:2633)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\backends\asyncio.py", line 34, in read
    return await self._stream.receive(max_bytes=max_bytes)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\anyio\streams\tls.py", line 196, in receive
    data = await self._call_sslobject_method(self._ssl_object.read, max_bytes)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\anyio\streams\tls.py", line 138, in _call_sslobject_method
    data = await self.transport_stream.receive()
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\anyio\_backends\_asyncio.py", line 1203, in receive
    await self._protocol.read_event.wait()
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\asyncio\locks.py", line 226, in wait
    await fut
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_exceptions.py", line 10, in map_exceptions
    yield
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\backends\asyncio.py", line 36, in read
    return b""
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\anyio\_core\_tasks.py", line 119, in __exit__
    raise TimeoutError
TimeoutError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_transports\default.py", line 60, in map_httpcore_exceptions
    yield
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_transports\default.py", line 353, in handle_async_request
    resp = await self._pool.handle_async_request(req)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_async\connection_pool.py", line 253, in handle_async_request
    raise exc
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_async\connection_pool.py", line 237, in handle_async_request
    response = await connection.handle_async_request(request)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_async\connection.py", line 90, in handle_async_request
    return await self._connection.handle_async_request(request)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_async\http11.py", line 112, in handle_async_request
    raise exc
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_async\http11.py", line 91, in handle_async_request
    ) = await self._receive_response_headers(**kwargs)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_async\http11.py", line 155, in _receive_response_headers
    event = await self._receive_event(timeout=timeout)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_async\http11.py", line 191, in _receive_event
    data = await self._network_stream.read(
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\backends\asyncio.py", line 36, in read
    return b""
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\contextlib.py", line 137, in __exit__
    self.gen.throw(typ, value, traceback)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc)
httpcore.ReadTimeout

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\nonebot\message.py", line 476, in check_and_run_matcher
    await _run_matcher(
> File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\nonebot\message.py", line 428, in _run_matcher
    await matcher.run(bot, event, state, stack, dependency_cache)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\nonebot\internal\matcher\matcher.py", line 842, in run
    await self.simple_run(bot, event, state, stack, dependency_cache)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\nonebot\internal\matcher\matcher.py", line 817, in simple_run
    await handler(
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\nonebot\dependencies\__init__.py", line 106, in __call__
    return await cast(Callable[..., Awaitable[R]], self.call)(**values)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\nonebot-plugin-csgo-case-simulator\__init__.py", line 110, in handle_open_crate
    image = await utils.merge_images(
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\nonebot-plugin-csgo-case-simulator\utils.py", line 59, in merge_images
    image_list: List[Image.Image] = await asyncio.gather(*image_tasks)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\nonebot-plugin-csgo-case-simulator\utils.py", line 162, in download_image
    response = await client.get(url, timeout=10)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_client.py", line 1757, in get
    return await self.request(
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_client.py", line 1533, in request
    return await self.send(request, auth=auth, follow_redirects=follow_redirects)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_client.py", line 1620, in send
    response = await self._send_handling_auth(
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_client.py", line 1648, in _send_handling_auth
    response = await self._send_handling_redirects(
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_client.py", line 1685, in _send_handling_redirects
    response = await self._send_single_request(request)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_client.py", line 1722, in _send_single_request
    response = await transport.handle_async_request(request)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_transports\default.py", line 353, in handle_async_request
    resp = await self._pool.handle_async_request(req)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\contextlib.py", line 137, in __exit__
    self.gen.throw(typ, value, traceback)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_transports\default.py", line 77, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ReadTimeout
roiiiu commented 4 months ago

有概率输入开箱指令后不发送开箱结果图片,控制台报错如下

05-07 14:50:20 [SUCCESS] nonebot | OneBot V11 32***27 | [message.group.normal]: Message 10***38 from 26***36@[群:97***596] 'csgo开箱 20 狂牙大行动'
05-07 14:50:20 [INFO] nonebot | Event will be handled by Matcher(type='message', module=nonebot-plugin-csgo-case-simulator, lineno=36)
05-07 14:50:31 [INFO] nonebot | Matcher(type='message', module=nonebot-plugin-csgo-case-simulator, lineno=36) running complete
05-07 14:50:31 [ERROR] nonebot | Running Matcher(type='message', module=nonebot-plugin-csgo-case-simulator, lineno=36) failed.
Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\anyio\streams\tls.py", line 131, in _call_sslobject_method
    result = func(*args)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\ssl.py", line 888, in read
    v = self._sslobj.read(len)
ssl.SSLWantReadError: The operation did not complete (read) (_ssl.c:2633)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\backends\asyncio.py", line 34, in read
    return await self._stream.receive(max_bytes=max_bytes)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\anyio\streams\tls.py", line 196, in receive
    data = await self._call_sslobject_method(self._ssl_object.read, max_bytes)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\anyio\streams\tls.py", line 138, in _call_sslobject_method
    data = await self.transport_stream.receive()
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\anyio\_backends\_asyncio.py", line 1203, in receive
    await self._protocol.read_event.wait()
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\asyncio\locks.py", line 226, in wait
    await fut
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_exceptions.py", line 10, in map_exceptions
    yield
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\backends\asyncio.py", line 36, in read
    return b""
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\anyio\_core\_tasks.py", line 119, in __exit__
    raise TimeoutError
TimeoutError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_transports\default.py", line 60, in map_httpcore_exceptions
    yield
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_transports\default.py", line 353, in handle_async_request
    resp = await self._pool.handle_async_request(req)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_async\connection_pool.py", line 253, in handle_async_request
    raise exc
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_async\connection_pool.py", line 237, in handle_async_request
    response = await connection.handle_async_request(request)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_async\connection.py", line 90, in handle_async_request
    return await self._connection.handle_async_request(request)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_async\http11.py", line 112, in handle_async_request
    raise exc
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_async\http11.py", line 91, in handle_async_request
    ) = await self._receive_response_headers(**kwargs)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_async\http11.py", line 155, in _receive_response_headers
    event = await self._receive_event(timeout=timeout)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_async\http11.py", line 191, in _receive_event
    data = await self._network_stream.read(
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\backends\asyncio.py", line 36, in read
    return b""
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\contextlib.py", line 137, in __exit__
    self.gen.throw(typ, value, traceback)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpcore\_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc)
httpcore.ReadTimeout

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\nonebot\message.py", line 476, in check_and_run_matcher
    await _run_matcher(
> File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\nonebot\message.py", line 428, in _run_matcher
    await matcher.run(bot, event, state, stack, dependency_cache)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\nonebot\internal\matcher\matcher.py", line 842, in run
    await self.simple_run(bot, event, state, stack, dependency_cache)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\nonebot\internal\matcher\matcher.py", line 817, in simple_run
    await handler(
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\nonebot\dependencies\__init__.py", line 106, in __call__
    return await cast(Callable[..., Awaitable[R]], self.call)(**values)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\nonebot-plugin-csgo-case-simulator\__init__.py", line 110, in handle_open_crate
    image = await utils.merge_images(
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\nonebot-plugin-csgo-case-simulator\utils.py", line 59, in merge_images
    image_list: List[Image.Image] = await asyncio.gather(*image_tasks)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\nonebot-plugin-csgo-case-simulator\utils.py", line 162, in download_image
    response = await client.get(url, timeout=10)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_client.py", line 1757, in get
    return await self.request(
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_client.py", line 1533, in request
    return await self.send(request, auth=auth, follow_redirects=follow_redirects)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_client.py", line 1620, in send
    response = await self._send_handling_auth(
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_client.py", line 1648, in _send_handling_auth
    response = await self._send_handling_redirects(
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_client.py", line 1685, in _send_handling_redirects
    response = await self._send_single_request(request)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_client.py", line 1722, in _send_single_request
    response = await transport.handle_async_request(request)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_transports\default.py", line 353, in handle_async_request
    resp = await self._pool.handle_async_request(req)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\contextlib.py", line 137, in __exit__
    self.gen.throw(typ, value, traceback)
  File "C:\Users\Administrator\Desktop\QBot\main06\.venv\lib\site-packages\httpx\_transports\default.py", line 77, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ReadTimeout

网络问题,图片源全来自steam官方,有条件可以使用代理

ab-Royo commented 4 months ago

已经使用代理了,还是概率有问题😭 可否让加载失败的图片使用占位符替代跳过错误,而不是直接终止加载

roiiiu commented 4 months ago

已经使用代理了,还是概率有问题😭 可否让加载失败的图片使用占位符替代跳过错误,而不是直接终止加载

会加入这个功能