CMHopeSunshine / nonebot-plugin-follow-withdraw

NoneBot2 插件,当命令消息被撤回时,Bot跟随撤回命令消息结果。
MIT License
8 stars 1 forks source link

bot运行中一直在报错,好像是这个插件导致的? #6

Closed MaboroneSeika closed 1 year ago

MaboroneSeika commented 1 year ago

用的是NJSbot,作者整合了这个插件,报错信息如下:

nonebot | Error when running CalledAPI hook. Running cancelled! Traceback (most recent call last): File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\engine\base.py", line 1964, in _exec_single_context self.dialect.do_execute( File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\engine\default.py", line 748, in do_execute cursor.execute(statement, parameters) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 113, in execute self._adapt_connection._handle_exception(error) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 254, in _handleexception raise error File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 95, in execute self.await(_cursor.execute(operation, parameters)) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\util_concurrency_py3k.py", line 102, in await_only return current.driver.switch(awaitable) # type: ignore[no-any-return] File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\util_concurrency_py3k.py", line 160, in greenlet_spawn value = await result File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\aiosqlite\cursor.py", line 37, in execute await self._execute(self._cursor.execute, sql, parameters) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\aiosqlite\cursor.py", line 31, in _execute return await self._conn._execute(fn, *args, **kwargs) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\aiosqlite\core.py", line 129, in _execute return await future File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\aiosqlite\core.py", line 102, in run result = function() sqlite3.IntegrityError: UNIQUE constraint failed: nonebot_plugin_follow_withdraw_followmessage.message_id

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

Traceback (most recent call last): File "G:\NJS-Bot\bot.py", line 41, in nonebot.run(app="mp_main__:app", access_log=False) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\nonebot__init__.py", line 309, in run get_driver().run(*args, *kwargs) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\nonebot\drivers\fastapi.py", line 198, in run uvicorn.run( File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\uvicorn\main.py", line 578, in run server.run() File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\uvicorn\server.py", line 61, in run return asyncio.run(self.serve(sockets=sockets)) File "C:\software\Python310\lib\asyncio\runners.py", line 44, in run return loop.run_until_complete(main) File "C:\software\Python310\lib\asyncio\base_events.py", line 636, in run_until_complete self.run_forever() File "C:\software\Python310\lib\asyncio\windows_events.py", line 321, in run_forever super().run_forever() File "C:\software\Python310\lib\asyncio\base_events.py", line 603, in run_forever self._run_once() File "C:\software\Python310\lib\asyncio\base_events.py", line 1909, in _run_once handle._run() File "C:\software\Python310\lib\asyncio\events.py", line 80, in _run self._context.run(self._callback, self._args) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\nonebot\message.py", line 467, in check_and_run_matcher await _run_matcher( File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\nonebot\message.py", line 419, in _run_matcher await matcher.run(bot, event, state, stack, dependency_cache) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\nonebot\internal\matcher\matcher.py", line 753, in run await self.simple_run(bot, event, state, stack, dependency_cache) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\nonebot\internal\matcher\matcher.py", line 728, in simple_run await handler( File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\nonebot\dependencies\init.py", line 108, in call return await cast(Callable[..., Awaitable[R]], self.call)(**values) File "G:\NJS-Bot\src\plugins\nonebot_plugin_gpt3\init.py", line 328, in _ await matcher.send(resp, at_sender=True) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\nonebot\internal\matcher\matcher.py", line 466, in send return await bot.send(event=event, message=_message, **kwargs) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\nonebot_plugin_guild_patch\init.py", line 30, in patched_send return await original_send(self, event, message, **kwargs) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\nonebot\adapters\onebot\v11\bot.py", line 220, in send return await self.class__.send_handler(self, event, message, kwargs) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\nonebot\adapters\onebot\v11\bot.py", line 174, in send return await bot.send_msg(params)

File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\nonebot\internal\adapter\bot.py", line 107, in call_api await asyncio.gather(coros) File "G:\NJS-Bot\src\plugins\nonebot_plugin_follow_withdraw__init__.py", line 87, in handle_save_message await save_message(adapter_name, origin_message, message) File "G:\NJS-Bot\src\plugins\nonebot_plugin_follow_withdraw\model.py", line 81, in save_message await session.commit() File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\ext\asyncio\session.py", line 810, in commit await greenlet_spawn(self.sync_session.commit) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\util_concurrency_py3k.py", line 167, in greenlet_spawn result = context.switch(value) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\orm\session.py", line 1903, in commit trans.commit(_to_root=True) File "", line 2, in commit File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\orm\state_changes.py", line 137, in _go ret_value = fn(self, arg, kw) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\orm\session.py", line 1218, in commit self._prepare_impl() File "", line 2, in _prepare_impl File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\orm\state_changes.py", line 137, in _go ret_value = fn(self, *arg, *kw) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\orm\session.py", line 1193, in _prepare_impl self.session.flush() File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\orm\session.py", line 4155, in flush self._flush(objects) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\orm\session.py", line 4291, in _flush with util.safe_reraise(): File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\util\langhelpers.py", line 147, in exit raise exc_value.with_traceback(exc_tb) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\orm\session.py", line 4252, in _flush flush_context.execute() File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\orm\unitofwork.py", line 467, in execute rec.execute(self) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\orm\unitofwork.py", line 644, in execute util.preloaded.orm_persistence.save_obj( File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\orm\persistence.py", line 93, in save_obj _emit_insert_statements( File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\orm\persistence.py", line 1020, in _emit_insert_statements result = connection.execute( File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\engine\base.py", line 1414, in execute return meth( File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\sql\elements.py", line 486, in _execute_on_connection return connection._execute_clauseelement( File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\engine\base.py", line 1638, in _execute_clauseelement ret = self._execute_context( File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\engine\base.py", line 1842, in _execute_context return self._exec_single_context( File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\engine\base.py", line 1983, in _exec_single_context self._handle_dbapi_exception( File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\engine\base.py", line 2326, in _handle_dbapi_exception raise sqlalchemy_exception.with_traceback(exc_info[2]) from e File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\engine\base.py", line 1964, in _exec_single_context self.dialect.do_execute( File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\engine\default.py", line 748, in do_execute cursor.execute(statement, parameters) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 113, in execute self._adapt_connection._handle_exception(error) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 254, in _handleexception raise error File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 95, in execute self.await(_cursor.execute(operation, parameters)) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\util_concurrency_py3k.py", line 102, in await_only return current.driver.switch(awaitable) # type: ignore[no-any-return] File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\sqlalchemy\util_concurrency_py3k.py", line 160, in greenlet_spawn value = await result File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\aiosqlite\cursor.py", line 37, in execute await self._execute(self._cursor.execute, sql, parameters) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\aiosqlite\cursor.py", line 31, in _execute return await self._conn._execute(fn, args, kwargs) File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\aiosqlite\core.py", line 129, in _execute return await future File "C:\Users\shubi\AppData\Local\pypoetry\Cache\virtualenvs\njs-06ksLelh-py3.10\lib\site-packages\aiosqlite\core.py", line 102, in run result = function() sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: nonebot_plugin_follow_withdraw_followmessage.message_id [SQL: INSERT INTO nonebot_plugin_follow_withdraw_followmessage (message_id, adapter_name, channel_id, origin_message_id) VALUES (?, ?, ?, ?)] [parameters: ('2048089962', 'OneBot V11', None, '1345869578')] (Background on this error at: https://sqlalche.me/e/20/gkpj)

CMHopeSunshine commented 1 year ago

报错说message_id重复了,但是按道理来说gocq的message_id是不可能重复的。

用指令清除消息记录清除一下记录吧

MaboroneSeika commented 1 year ago

报错说message_id重复了,但是按道理来说gocq的message_id是不可能重复的。

用指令清除消息记录清除一下记录吧

好使,谢谢~