Closed yuuki-nya closed 1 year ago
你可以修改gsuid core里的config.json,配置host和port
经过配置core和gsuid后,ws连接成功了,但是提示成功后就卡住了,然后报错重启
[2023-03-26 12:56:24,569 genshinuidv4] INFO: Bot_ID: HoshinoBot连接至[gsuid-core]: ws://gsuid-core:8765/ws/HoshinoBot...
[2023-03-26 12:56:24,579 genshinuidv4] INFO: 与[gsuid-core]成功连接! Bot_ID: HoshinoBot
Traceback (most recent call last):
File "/root/.cache/pypoetry/virtualenvs/hoshinobot-fEnou5AH-py3.8/lib/python3.8/site-packages/hypercorn/asyncio/lifespan.py", line 76, in wait_for_startup
await asyncio.wait_for(self.startup.wait(), timeout=self.config.startup_timeout)
File "/usr/local/lib/python3.8/asyncio/tasks.py", line 501, in wait_for
raise exceptions.TimeoutError()
asyncio.exceptions.TimeoutError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "run.py", line 8, in <module>
bot.run(use_reloader=False, loop=asyncio.get_event_loop())
File "/root/.cache/pypoetry/virtualenvs/hoshinobot-fEnou5AH-py3.8/lib/python3.8/site-packages/nonebot/__init__.py", line 63, in run
super().run(host=host, port=port, *args, **kwargs)
File "/root/.cache/pypoetry/virtualenvs/hoshinobot-fEnou5AH-py3.8/lib/python3.8/site-packages/aiocqhttp/__init__.py", line 222, in run
self._server_app.run(host=host, port=port, *args, **kwargs)
File "/root/.cache/pypoetry/virtualenvs/hoshinobot-fEnou5AH-py3.8/lib/python3.8/site-packages/quart/app.py", line 1423, in run
loop.run_until_complete(asyncio.gather(*tasks))
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
return future.result()
File "/root/.cache/pypoetry/virtualenvs/hoshinobot-fEnou5AH-py3.8/lib/python3.8/site-packages/hypercorn/asyncio/__init__.py", line 49, in serve
await worker_serve(
File "/root/.cache/pypoetry/virtualenvs/hoshinobot-fEnou5AH-py3.8/lib/python3.8/site-packages/hypercorn/asyncio/run.py", line 77, in worker_serve
await lifespan.wait_for_startup()
File "/root/.cache/pypoetry/virtualenvs/hoshinobot-fEnou5AH-py3.8/lib/python3.8/site-packages/hypercorn/asyncio/lifespan.py", line 78, in wait_for_startup
raise LifespanTimeoutError("startup") from error
hypercorn.utils.LifespanTimeoutError: Timeout whilst awaiting startup. Your application may not support the ASGI Lifespan protocol correctly, alternatively the startup_timeout configuration is incorrect.
core那边的日志
2023-03-26T05:01:39.526763494Z INFO: ('172.18.0.2', 49928) - "WebSocket /ws/HoshinoBot" [accepted]
2023-03-26T05:01:39.526887353Z INFO:gsuid_core.logger:HoshinoBot已连接!
2023-03-26T05:01:39.527350153Z INFO: connection open
2023-03-26T05:01:39.527490618Z INFO:gsuid_core.logger:检查遗留信息...
2023-03-26T05:01:39.527629405Z INFO:gsuid_core.logger:检查遗留信息...
2023-03-26T05:02:49.143946703Z WARNING:gsuid_core.logger:HoshinoBot已中断!
2023-03-26T05:02:49.144279518Z INFO: connection closed
尝试把__init__.py
里面的111行之后都删了看看
@on_startup
async def start_client():
if gsclient is None:
await connect()
这一段
尝试把
__init__.py
里面的111行之后都删了看看@on_startup async def start_client(): if gsclient is None: await connect()
这一段
这样修改后可以连了,但是HoshinoBot的日志一直在刷屏
可能是因为我的HoshinoBot接入了多个GO-CQHTTP的原因,发送“导入V3数据”日志显示 100 错误,gs帮助也无法发送图片
尝试把
__init__.py
里面的111行之后都删了看看@on_startup async def start_client(): if gsclient is None: await connect()
这一段
这样修改后可以连了,但是HoshinoBot的日志一直在刷屏 [2023-03-26 14:23:38,454 genshinuidv4] INFO: 【发送】[gsuid-core]: onebot
可能是因为我的HoshinoBot接入了多个GO-CQHTTP的原因,发送“导入V3数据”日志显示 100 错误,gs帮助也无法发送图片
【发送】[gsuid-core]: onebot
是正常的
无法发送图片 看看core端日志
我也遇到hoshino跟core连接后就没反应然后过段时间报错的问题。这过程中hoshino自己的定时任务什么的在正常运行但一直连不上go-cq,报错内容跟上面一样。不过删了init.py里的后就都正常了。
尝试把
__init__.py
里面的111行之后都删了看看@on_startup async def start_client(): if gsclient is None: await connect()
这一段
这样修改后可以连了,但是HoshinoBot的日志一直在刷屏 [2023-03-26 14:23:38,454 genshinuidv4] INFO: 【发送】[gsuid-core]: onebot 可能是因为我的HoshinoBot接入了多个GO-CQHTTP的原因,发送“导入V3数据”日志显示 100 错误,gs帮助也无法发送图片
【发送】[gsuid-core]: onebot
是正常的 无法发送图片 看看core端日志
core并没有发现报错
INFO:gsuid_core.logger:[收到消息] MessageReceive(bot_id='onebot', msg_id='', user_type='group', group_id='群号', user_id='Q号', user_pm=1, content=[Message(type='text', data='gs帮助')])
INFO:gsuid_core.logger:↪ 消息 「gs帮助」 触发 「fullmatch」 类型触发器, 关键词: 「gs帮助」
INFO:gsuid_core.logger:[发送消息to] onebot - group - 群号
hoshinobot端呢
hoshinobot端呢
for sid in hoshino.get_self_ids():
try:
await bot.send_group_msg(
self_id = sid,
group_id = int(info['gid']),
message = "内容"
)
hoshinobot端呢
- 我现在的情况很诡异,core不能接受群的消息了,刚刚还都是正常的,我重启core和hoshino也无解,情况就是core接收了两三天条信息就停了
- 如果我没记错,刚刚还算正常的时候,发送 gs 帮助,hoshinobot那边是没有报错的,只是提示接受了这个命令
- 可否考虑给hoshino的gsuid改为适配多cq接入,由于多cq接入,我之前的推送功能也是坏的,可以参考这段代码
for sid in hoshino.get_self_ids(): try: await bot.send_group_msg( self_id = sid, group_id = int(info['gid']), message = "内容" )
试试使用连接core
命令看看能不能连上去
有关多cq的问题,确实是疏忽了,等晚点我需要整体添加一个参数
hoshinobot端呢
- 我现在的情况很诡异,core不能接受群的消息了,刚刚还都是正常的,我重启core和hoshino也无解,情况就是core接收了两三天条信息就停了
- 如果我没记错,刚刚还算正常的时候,发送 gs 帮助,hoshinobot那边是没有报错的,只是提示接受了这个命令
- 可否考虑给hoshino的gsuid改为适配多cq接入,由于多cq接入,我之前的推送功能也是坏的,可以参考这段代码
for sid in hoshino.get_self_ids(): try: await bot.send_group_msg( self_id = sid, group_id = int(info['gid']), message = "内容" )
试试使用
连接core
命令看看能不能连上去 有关多cq的问题,确实是疏忽了,等晚点我需要整体添加一个参数
好了,我之前的说法有误,实际上hoshinobot还是报错了,原因应该还是和多cq有关系
[2023-03-26 18:04:55,532 genshinuidv4] INFO: 【接收】[gsuid-core]: HoshinoBot - None - None
[2023-03-26 18:04:55,532 genshinuidv4] INFO: 获得gs帮助图片成功!
[2023-03-26 18:04:55,690 genshinuidv4] INFO: 【接收】[gsuid-core]: onebot - group - *群号*
[2023-03-26 18:04:55,795 genshinuidv4] ERROR: <ActionFailed data=None, echo={'seq': 5}, message='群聊不存在', msg='GROUP_NOT_FOUND', retcode=100, status='failed', wording='群聊不存在'>
另外之前的不正常,是因为我没有把core容易的 /gsuid-core 映射到 hoshinobot容器内的 /gsuid-core,为此,我想提两点建议:
hoshinobot端呢
- 我现在的情况很诡异,core不能接受群的消息了,刚刚还都是正常的,我重启core和hoshino也无解,情况就是core接收了两三天条信息就停了
- 如果我没记错,刚刚还算正常的时候,发送 gs 帮助,hoshinobot那边是没有报错的,只是提示接受了这个命令
- 可否考虑给hoshino的gsuid改为适配多cq接入,由于多cq接入,我之前的推送功能也是坏的,可以参考这段代码
for sid in hoshino.get_self_ids(): try: await bot.send_group_msg( self_id = sid, group_id = int(info['gid']), message = "内容" )
试试使用
连接core
命令看看能不能连上去 有关多cq的问题,确实是疏忽了,等晚点我需要整体添加一个参数好了,我之前的说法有误,实际上hoshinobot还是报错了,原因应该还是和多cq有关系
[2023-03-26 18:04:55,532 genshinuidv4] INFO: 【接收】[gsuid-core]: HoshinoBot - None - None [2023-03-26 18:04:55,532 genshinuidv4] INFO: 获得gs帮助图片成功! [2023-03-26 18:04:55,690 genshinuidv4] INFO: 【接收】[gsuid-core]: onebot - group - *群号* [2023-03-26 18:04:55,795 genshinuidv4] ERROR: <ActionFailed data=None, echo={'seq': 5}, message='群聊不存在', msg='GROUP_NOT_FOUND', retcode=100, status='failed', wording='群聊不存在'>
另外之前的不正常,是因为我没有把core容易的 /gsuid-core 映射到 hoshinobot容器内的 /gsuid-core,为此,我想提两点建议:
- core和bot的插件能否独立运行,不依赖文件间的关系,只靠ws连接
- 文件发送可否改为http模式,因为core都已经内建了web server,实现起来应该不难,这样的好处就是日后可以nb2 hoshinobot都接入这个core,而且不用额外映射路径,做到相对独立。
1.core目前和hoshinobot的插件 确实是独立运行的,使用poetry run python core.py
启动core
2.文件收发目前用的b64,core本来就是独立运行的,确实都可以接入吧
另外有关多CQ接入,我测试了一下,找到了原因,稍后修复
hoshinobot端呢
- 我现在的情况很诡异,core不能接受群的消息了,刚刚还都是正常的,我重启core和hoshino也无解,情况就是core接收了两三天条信息就停了
- 如果我没记错,刚刚还算正常的时候,发送 gs 帮助,hoshinobot那边是没有报错的,只是提示接受了这个命令
- 可否考虑给hoshino的gsuid改为适配多cq接入,由于多cq接入,我之前的推送功能也是坏的,可以参考这段代码
for sid in hoshino.get_self_ids(): try: await bot.send_group_msg( self_id = sid, group_id = int(info['gid']), message = "内容" )
试试使用
连接core
命令看看能不能连上去 有关多cq的问题,确实是疏忽了,等晚点我需要整体添加一个参数好了,我之前的说法有误,实际上hoshinobot还是报错了,原因应该还是和多cq有关系
[2023-03-26 18:04:55,532 genshinuidv4] INFO: 【接收】[gsuid-core]: HoshinoBot - None - None [2023-03-26 18:04:55,532 genshinuidv4] INFO: 获得gs帮助图片成功! [2023-03-26 18:04:55,690 genshinuidv4] INFO: 【接收】[gsuid-core]: onebot - group - *群号* [2023-03-26 18:04:55,795 genshinuidv4] ERROR: <ActionFailed data=None, echo={'seq': 5}, message='群聊不存在', msg='GROUP_NOT_FOUND', retcode=100, status='failed', wording='群聊不存在'>
另外之前的不正常,是因为我没有把core容易的 /gsuid-core 映射到 hoshinobot容器内的 /gsuid-core,为此,我想提两点建议:
- core和bot的插件能否独立运行,不依赖文件间的关系,只靠ws连接
- 文件发送可否改为http模式,因为core都已经内建了web server,实现起来应该不难,这样的好处就是日后可以nb2 hoshinobot都接入这个core,而且不用额外映射路径,做到相对独立。
看了一下HoshinoBot的源码,似乎没有get_bots
方法能拿到连接的实例,虽然可以通过bot.send_group_msg
之类的方法传入self_id控制收发消息,但是如果要用到call_action
传送文件,则会把action都发往两个连接的gocq,没办法单独控制一个的样子
call_action
是的,这都nonebot1的限制,所以近期我想转去nb2,顺便问下nb2版本的gsuid有没有对多cq接入优化过?
call_action
是的,这都nonebot1的限制,所以近期我想转去nb2,顺便问下nb2版本的gsuid有没有对多cq接入优化过?
就在刚刚都优化了、hoshino现在应该也可以正常连接多cq、不过涉及call_action
可能会有问题
更新一下,运行了一天,core那边遇到需要主动推送的事件就会出错,应该是前面提到的call_action
WARNING:rollbar:Got unexpected status code from Rollbar api: 401
:
b'{\n "err": 1,\n "message": "invalid access token"\n}'
ERROR:rollbar.lib._async:Exception while posting item ApiError('invalid access token')
Traceback (most recent call last):
File "/root/.cache/pypoetry/virtualenvs/gsuid-core-9TtSrW0h-py3.8/lib/python3.8/site-packages/rollbar/lib/_async.py", line 147, in _post_api_httpx
return rollbar._parse_response(path, access_token, payload_str, resp)
File "/root/.cache/pypoetry/virtualenvs/gsuid-core-9TtSrW0h-py3.8/lib/python3.8/site-packages/rollbar/__init__.py", line 1733, in _parse_response
raise ApiError(json_data.get('message') or 'Unknown error')
rollbar.ApiError: invalid access token
ERROR:gsuid_core.logger:[推送提醒]获取*群号*的数据失败!
这个本来可以接受,因为之前就没办法用推送,但是不知道什么原因,今天下午HoshinoBot就无法使用gsuid了,core那边的日志也没了群消息log,发送 启动core提示成功但无效。
更新一下,运行了一天,core那边遇到需要主动推送的事件就会出错,应该是前面提到的call_action
WARNING:rollbar:Got unexpected status code from Rollbar api: 401 � : b'{\n "err": 1,\n "message": "invalid access token"\n}' ERROR:rollbar.lib._async:Exception while posting item ApiError('invalid access token') Traceback (most recent call last): File "/root/.cache/pypoetry/virtualenvs/gsuid-core-9TtSrW0h-py3.8/lib/python3.8/site-packages/rollbar/lib/_async.py", line 147, in _post_api_httpx return rollbar._parse_response(path, access_token, payload_str, resp) File "/root/.cache/pypoetry/virtualenvs/gsuid-core-9TtSrW0h-py3.8/lib/python3.8/site-packages/rollbar/__init__.py", line 1733, in _parse_response raise ApiError(json_data.get('message') or 'Unknown error') rollbar.ApiError: invalid access token ERROR:gsuid_core.logger:[推送提醒]获取*群号*的数据失败!
这个本来可以接受,因为之前就没办法用推送,但是不知道什么原因,今天下午HoshinoBot就无法使用gsuid了,core那边的日志也没了群消息log,发送 启动core提示成功但无效。
主动推送错误的话,报错应该不止这一点,上面应该还有?
启动core
是在bot子进程内启动、很可能遇上链接复用,没有启动成功,因为之前的没关
你是在docker里分开部署的吧,用连接core
的情况如何呢
更新一下,运行了一天,core那边遇到需要主动推送的事件就会出错,应该是前面提到的call_action
WARNING:rollbar:Got unexpected status code from Rollbar api: 401 � : b'{\n "err": 1,\n "message": "invalid access token"\n}' ERROR:rollbar.lib._async:Exception while posting item ApiError('invalid access token') Traceback (most recent call last): File "/root/.cache/pypoetry/virtualenvs/gsuid-core-9TtSrW0h-py3.8/lib/python3.8/site-packages/rollbar/lib/_async.py", line 147, in _post_api_httpx return rollbar._parse_response(path, access_token, payload_str, resp) File "/root/.cache/pypoetry/virtualenvs/gsuid-core-9TtSrW0h-py3.8/lib/python3.8/site-packages/rollbar/__init__.py", line 1733, in _parse_response raise ApiError(json_data.get('message') or 'Unknown error') rollbar.ApiError: invalid access token ERROR:gsuid_core.logger:[推送提醒]获取*群号*的数据失败!
这个本来可以接受,因为之前就没办法用推送,但是不知道什么原因,今天下午HoshinoBot就无法使用gsuid了,core那边的日志也没了群消息log,发送 启动core提示成功但无效。
主动推送错误的话,报错应该不止这一点,上面应该还有?
启动core
是在bot子进程内启动、很可能遇上链接复用,没有启动成功,因为之前的没关 你是在docker里分开部署的吧,用连接core
的情况如何呢
忘记是 连接core 了,我刚刚整个HoshinoBot重启好了,下次卡了试试这个命令。
更新一下,运行了一天,core那边遇到需要主动推送的事件就会出错,应该是前面提到的call_action
WARNING:rollbar:Got unexpected status code from Rollbar api: 401 � : b'{\n "err": 1,\n "message": "invalid access token"\n}' ERROR:rollbar.lib._async:Exception while posting item ApiError('invalid access token') Traceback (most recent call last): File "/root/.cache/pypoetry/virtualenvs/gsuid-core-9TtSrW0h-py3.8/lib/python3.8/site-packages/rollbar/lib/_async.py", line 147, in _post_api_httpx return rollbar._parse_response(path, access_token, payload_str, resp) File "/root/.cache/pypoetry/virtualenvs/gsuid-core-9TtSrW0h-py3.8/lib/python3.8/site-packages/rollbar/__init__.py", line 1733, in _parse_response raise ApiError(json_data.get('message') or 'Unknown error') rollbar.ApiError: invalid access token ERROR:gsuid_core.logger:[推送提醒]获取*群号*的数据失败!
这个本来可以接受,因为之前就没办法用推送,但是不知道什么原因,今天下午HoshinoBot就无法使用gsuid了,core那边的日志也没了群消息log,发送 启动core提示成功但无效。
主动推送错误的话,报错应该不止这一点,上面应该还有?
启动core
是在bot子进程内启动、很可能遇上链接复用,没有启动成功,因为之前的没关 你是在docker里分开部署的吧,用连接core
的情况如何呢忘记是 连接core 了,我刚刚整个HoshinoBot重启好了,下次卡了试试这个命令。
如果有遇到主动推送报错的情况,把log贴上来,虽然hoshino callaction有问题,但实测会触发成功,不会报错,只是说,只会call第一个go-cq的action
今天尝试更新后的 扫码登录,私聊bot后core日志
INFO:gsuid_core.logger: 消息 「扫码登录」 触发 「fullmatch」 类型触发器, 关键词: 「扫码登录」
INFO:gsuid_core.logger:[发送消息to] onebot - direct - 我的qq
hoshino日志
[2023-03-28 08:41:23,387 genshinuidv4] ERROR: <ActionFailed data=None, echo={'seq': 155}, message='请参考 go-cqhttp 端输出', msg='SEND_MSG_API_ERROR', retcode=100, status='failed', wording='请参考 go-cqhttp 端输出'>
一看就是多cq造成的问题了
game_token获取失败:二维码已过期
core的日志也显示
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'data': None, 'message': 'ExpiredCode', 'retcode': -106}
{'retcode': 0, 'message': 'OK', 'data': {'url': 'https://user.mihoyo.com/qr_code_in_game.html?app_id=8&app_name=%E5%B4%A9%E5%9D%8F%3A%E6%98%9F%E7%A9%B9%E9%93%81%E9%81%93&bbs=true&biz_key=hkrpg_cn&expire=1680395697&ticket=642236315c78720635820517'}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}}
WARNING:gsuid_core.logger:二维码已过期
WARNING:gsuid_core.logger:game_token获取失败
INFO:gsuid_core.logger:[发送消息to] onebot - direct - 我的qq
今天尝试更新后的 扫码登录,私聊bot后core日志
INFO:gsuid_core.logger: 消息 「扫码登录」 触发 「fullmatch」 类型触发器, 关键词: 「扫码登录」 INFO:gsuid_core.logger:[发送消息to] onebot - direct - 我的qq
hoshino日志
[2023-03-28 08:41:23,387 genshinuidv4] ERROR: <ActionFailed data=None, echo={'seq': 155}, message='请参考 go-cqhttp 端输出', msg='SEND_MSG_API_ERROR', retcode=100, status='failed', wording='请参考 go-cqhttp 端输出'>
一看就是多cq造成的问题了
game_token获取失败:二维码已过期
core的日志也显示
{'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'data': None, 'message': 'ExpiredCode', 'retcode': -106} {'retcode': 0, 'message': 'OK', 'data': {'url': 'https://user.mihoyo.com/qr_code_in_game.html?app_id=8&app_name=%E5%B4%A9%E5%9D%8F%3A%E6%98%9F%E7%A9%B9%E9%93%81%E9%81%93&bbs=true&biz_key=hkrpg_cn&expire=1680395697&ticket=642236315c78720635820517'}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} {'retcode': 0, 'message': 'OK', 'data': {'stat': 'Init', 'payload': {'proto': 'Raw', 'raw': '', 'ext': ''}}} WARNING:gsuid_core.logger:二维码已过期 WARNING:gsuid_core.logger:game_token获取失败 INFO:gsuid_core.logger:[发送消息to] onebot - direct - 我的qq
这个没什么好办法...扫码登陆会调用call_api,而hoshino那边call_api的话会调用第一个连接go-cq的,你可能给第二个连接的发的,然后第一个连接的qq号尝试发送,但失败
这个没什么好办法...扫码登陆会调用call_api,而hoshino那边call_api的话会调用第一个连接go-cq的,你可能给第二个连接的发的,然后第一个连接的qq号尝试发送,但失败
能不能来个蠢办法,在hoshini这边遍历所有bot,然后for循环+try给每个bot发这个命令
这个没什么好办法...扫码登陆会调用call_api,而hoshino那边call_api的话会调用第一个连接go-cq的,你可能给第二个连接的发的,然后第一个连接的qq号尝试发送,但失败
能不能来个蠢办法,在hoshini这边遍历所有bot,然后for循环+try给每个bot发这个命令
hoshino拿不到单独bot的实例、只能拿到一个bot
试试这个
for sid in hoshino.get_self_ids():
try:
await bot.send_group_msg(
self_id = sid,
group_id = int(info['gid']),
message = "内容"
)
私聊也一样,改下就行,我试过多cq这种遍历方式是可行的
试试这个
for sid in hoshino.get_self_ids(): try: await bot.send_group_msg( self_id = sid, group_id = int(info['gid']), message = "内容" )
私聊也一样,改下就行,我试过多cq这种遍历方式是可行的
发消息没问题,但是不能用call_api
因为扫码登陆
发送的是合并转发,合并转发需要用到call_api
而不是单纯的send_group_msg
,其他发消息是没问题的
试试这个
for sid in hoshino.get_self_ids(): try: await bot.send_group_msg( self_id = sid, group_id = int(info['gid']), message = "内容" )
私聊也一样,改下就行,我试过多cq这种遍历方式是可行的
发消息没问题,但是不能用call_api 因为
扫码登陆
发送的是合并转发,合并转发需要用到call_api
而不是单纯的send_group_msg
,其他发消息是没问题的
明白了,该考虑nb2了😂
老哥,你打包好的docker镜像core方便提供一下吗?
老哥,你打包好的docker镜像core方便提供一下吗?
core已新增docker部署脚本
谢谢
折腾了下,发现core需要独立服务运行
我把core作为一个独立的docker容器运行(HoshinoBot的容器我自己用poetry打包的,不好同时运行两个poetry项目),提示找不到运行的gsuid二无限重启;
而另一边的HoshinoBot容器提示无法连接到core也在无限重启(我已经修改了gsuid插件client的ws地址),估计是core无法无限重启连不上,导致这边连不上core自己也在重启;
意思是gsuid和core必须在同一个ip内同时运行?如果考虑core和gsuid分离的话,可否也考虑两者在不同的网段进行ws连接,那样还会更灵活部署。