ziru-w / nonebot_plugin_addFriend

一个基于NoneBot2的插件,用于处理被请求加QQ好友和QQ群的请求A plugin based on NoneBot2 to process QQ friends and QQ group join requests
MIT License
22 stars 1 forks source link

【Bug?】群聊不存在 #11

Closed Todysheep closed 2 months ago

Todysheep commented 2 months ago

新建群聊后,尝试邀请机器人,报错:

08-19 15:44:55 [SUCCESS] nonebot | OneBot V11 9*****7 | [message.private.friend]: Message -2146311502 from 1****8 '[json:data={"app":"com.tencent.qun.invite","config":{"autosize":0,"ctime":1724...]'
08-19 15:44:56 [SUCCESS] nonebot | OneBot V11 9****7 | [request.group.invite]: {'time': 1724053496, 'self_id': 9****7, 'post_type': 'request', 'request_type': 'group', 'sub_type': 'invite', 'group_id': 9****5, 'user_id': 1****8, 'flag': '1724053495307359', 'comment': None}
08-19 15:44:56 [INFO] nonebot | Event will be handled by Matcher(type='request', module=nonebot_plugin_addFriend, lineno=33)
1
invite
08-19 15:44:57 [INFO] nonebot | Matcher(type='request', module=nonebot_plugin_addFriend, lineno=33) running complete
08-19 15:44:57 [ERROR] nonebot | Running Matcher(type='request', module=nonebot_plugin_addFriend, lineno=33) failed.
Traceback (most recent call last):
  File "<string>", line 17, in <module>
  File "C:\Pyhton\Lib\site-packages\nonebot\__init__.py", line 335, in run
    get_driver().run(*args, **kwargs)
  File "C:\Pyhton\Lib\site-packages\nonebot\drivers\fastapi.py", line 186, in run
    uvicorn.run(
  File "C:\Pyhton\Lib\site-packages\uvicorn\main.py", line 577, in run
    server.run()
  File "C:\Pyhton\Lib\site-packages\uvicorn\server.py", line 65, in run
    return asyncio.run(self.serve(sockets=sockets))
  File "C:\Pyhton\Lib\asyncio\runners.py", line 194, in run
    return runner.run(main)
  File "C:\Pyhton\Lib\asyncio\runners.py", line 118, in run
    return self._loop.run_until_complete(task)
  File "C:\Pyhton\Lib\asyncio\base_events.py", line 674, in run_until_complete
    self.run_forever()
  File "C:\Pyhton\Lib\asyncio\windows_events.py", line 322, in run_forever
    super().run_forever()
  File "C:\Pyhton\Lib\asyncio\base_events.py", line 641, in run_forever
    self._run_once()
  File "C:\Pyhton\Lib\asyncio\base_events.py", line 1987, in _run_once
    handle._run()
  File "C:\Pyhton\Lib\asyncio\events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
  File "C:\Pyhton\Lib\site-packages\nonebot\message.py", line 476, in check_and_run_matcher
    await _run_matcher(
> File "C:\Pyhton\Lib\site-packages\nonebot\message.py", line 428, in _run_matcher
    await matcher.run(bot, event, state, stack, dependency_cache)
  File "C:\Pyhton\Lib\site-packages\nonebot\internal\matcher\matcher.py", line 850, in run
    await self.simple_run(bot, event, state, stack, dependency_cache)
  File "C:\Pyhton\Lib\site-packages\nonebot\internal\matcher\matcher.py", line 825, in simple_run
    await handler(
  File "C:\Pyhton\Lib\site-packages\nonebot\dependencies\__init__.py", line 94, in __call__
    return await cast(Callable[..., Awaitable[R]], self.call)(**values)
  File "C:\Pyhton\Lib\site-packages\nonebot_plugin_addFriend\__init__.py", line 59, in _
    addInfo=await bot.get_group_info(group_id=int(id),no_cache=True)
  File "C:\Pyhton\Lib\site-packages\nonebot\internal\adapter\bot.py", line 122, in call_api
    raise exception
  File "C:\Pyhton\Lib\site-packages\nonebot\internal\adapter\bot.py", line 97, in call_api
    result = await self.adapter._call_api(self, api, **data)
  File "C:\Pyhton\Lib\site-packages\nonebot\adapters\onebot\v11\adapter.py", line 147, in _call_api
    return handle_api_result(await self._result_store.fetch(seq, timeout))
  File "C:\Pyhton\Lib\site-packages\nonebot\adapters\onebot\v11\utils.py", line 58, in handle_api_result
    raise ActionFailed(**result)
nonebot.adapters.onebot.v11.exception.ActionFailed: ActionFailed(status='failed', retcode=1200, data=None, message='群9****5不存在', wording='群9****5不存在', echo='8')
ziru-w commented 2 months ago

哈哈,好久不玩bot了,竟然还有人用我这插件,泪目

ziru-w commented 2 months ago

群9**5不存在这个***是你自己添加的吗

ziru-w commented 2 months ago

如果是的话,或者说不管是不是,这个原因都是api变化所致,如果群聊不在却获取群信息的话,api会报错,那么可以加个try捕获异常。当初为什么要用这个判断群聊加没加唉。将addInfo=await bot.get_group_info(group_id=int(id),no_cache=True)改为 try: addInfo=await bot.get_group_info(group_id=int(id),no_cache=True) except Exception as res: print("nonebot_plugin_addFriend/init.py61行\n",res) addInfo={"member_count":0,"max_member_count":0,"group_name":"略过","group_id":event.group_id}

Todysheep commented 2 months ago

确实是这的问题,豪使!