GraiaProject / Ariadne

一个优雅且完备的 Python QQ 自动化框架,基于 Mirai API HTTP v2。 Powered by Graia Project.
https://graia.cn/ariadne
GNU Affero General Public License v3.0
741 stars 45 forks source link

[Bug] 检查更新时版本字符串处理错误 #199

Closed BlueGlassBlock closed 1 year ago

BlueGlassBlock commented 1 year ago

问题

检查更新时版本字符串处理错误

如何复现

使用预览版的 graia 相关依赖库

日志/截图

2022-11-04 17:56:14.848 | ERROR    | launart.manager:_launchable_task_done_callback:34 - [elizabeth.service] raised a exception.
Traceback (most recent call last):

> File "C:\Users\Lenovo\.pyenv\pyenv-win\versions\3.11.0b1\Lib\contextlib.py", line 222, in __aexit__
    await self.gen.athrow(typ, value, traceback)
          │    │   │      │    │      └ <traceback object at 0x000001FFF6F0E580>
          │    │   │      │    └ ValueError("invalid literal for int() with base 10: '0rc5'")
          │    │   │      └ <class 'ValueError'>
          │    │   └ <method 'athrow' of 'async_generator' objects>
          │    └ <async_generator object Launchable.stage at 0x000001FFF612E7A0>
          └ <contextlib._AsyncGeneratorContextManager object at 0x000001FFF6920950>
  File "f:\PythonProjects\Graiax\NeNeRobo\.venv\Lib\site-packages\launart\component.py", line 164, in stage
    yield
  File "f:\PythonProjects\Graiax\NeNeRobo\.venv\Lib\site-packages\graia\ariadne\service.py", line 217, in launch
    await self.check_update()
          │    └ <staticmethod(<function ElizabethService.check_update at 0x000001FFF15D56C0>)>
          └ <graia.ariadne.service.ElizabethService object at 0x000001FFF6131750>
  File "f:\PythonProjects\Graiax\NeNeRobo\.venv\Lib\site-packages\graia\ariadne\service.py", line 115, in check_update
    await asyncio.gather(
          │       └ <function gather at 0x000001FFF011CFE0>
          └ <module 'asyncio' from 'C:\\Users\\Lenovo\\.pyenv\\pyenv-win\\versions\\3.11.0b1\\Lib\\asyncio\\__init__.py'>
  File "f:\PythonProjects\Graiax\NeNeRobo\.venv\Lib\site-packages\graia\ariadne\service.py", line 42, in check_update
    if tuple(map(int, str.split(result, "."))) > tuple(map(int, str.split(current, "."))):
                                │                                         └ '0.5.0rc5'
                                └ '0.2.1'

ValueError: invalid literal for int() with base 10: '0rc5'