Giter Site home page Giter Site logo

mnixry / nonebot-plugin-gocqhttp Goto Github PK

View Code? Open in Web Editor NEW
327.0 1.0 24.0 2.69 MB

一款在NoneBot2中直接运行go-cqhttp的插件, 无需额外下载安装 / A plugin to run go-cqhttp directly in NoneBot2, without additional download and installation.

Home Page: https://pypi.org/project/nonebot-plugin-gocqhttp/

License: GNU Affero General Public License v3.0

Python 25.18% JavaScript 6.18% Vue 23.80% TypeScript 43.18% Shell 0.85% SCSS 0.36% HTML 0.46%
nonebot2 python3 go-cqhttp multiprocessing asyncio webui quasar vue typescript openapi

nonebot-plugin-gocqhttp's Introduction

nonebot-plugin-gocqhttp

A plugin to run go-cqhttp directly in NoneBot2, without additional download and installation.

一款在 NoneBot2 中直接运行 go-cqhttp 的插件, 无需额外下载安装.

PyPI

GitHub issues GitHub forks GitHub stars GitHub license


本插件停止维护

请移步:Mrs4s/go-cqhttp#2471

愿我们能在更加开放的平行世界再次相遇。

优势

对标koishijs/koishi-plugin-gocqhttp

便于部署: 部署时只需启动一个 Bot 进程即可, 无需其他附加工具

易于使用: 本插件提供一个简单的 WebUI, 可以直接在图形界面中添加账户:

添加帐号 控制进程
查看状态 还有更多...
如果你觉得这个插件很赞, 欢迎返图!

跨平台支持: 根据反馈, 本插件已可以在MacOS/Linux/Windows上运行, 且不受异步子进程调用带来的限制

使用

安装

推荐使用nb-cli进行安装

要求最低 Python 版本为 3.8

配置

本项目提供以下可选配置项, 请在.env中自行进行配置

如果想要获取更多配置文件相关信息, 请阅读源代码

账号配置

GOCQ_ACCOUNTS: 要登录的 QQ 账号列表, 为一个 json 数组

  • 支持的字段:

    • uin: QQ 账号 (必填)
    • password: QQ 密码, 不填将使用扫码登录
    • protocol: 数字, 是登录使用的客户端协议
  • 示例:

    [
      {
        "uin": "QQ帐号",
        "password": "密码"
      }
    ]

下载地址配置

GOCQ_URL: 下载 URL, 默认为空, 设置该项目后以下几个与下载有关的配置项目将失效

GOCQ_DOWNLOAD_DOMAINS: 下载域名列表, 会从中选取延迟最低的进行下载

GOCQ_REPO: 要下载的仓库, 默认为Mrs4s/gocqhttp

GOCQ_VERSION: 要下载的版本, 默认为空, 即下载最新版本

GOCQ_FORCE_DOWNLOAD: 强制在启动时下载, 默认为 false

其他配置

GOCQ_PROCESS_KWARGS: 创建进程时的可选参数, 请参照代码进行修改

GOCQ_WEBUI_USERNAME/GOCQ_WEBUI_PASSWORD: WebUI 的登录凭证, 不设置即不进行验证

GOCQ_CONFIG_TEMPLATE_PATH: 自定义默认模板配置文件路径

GOCQ_TUNNEL_PORT: 可以用此项配置指定端口创建一个 HTTP 代理服务器, 以便于使用服务器的网络环境进行连接, 在使用二维码登录的时候可能有用. 默认为空, 即不创建

  • 此功能为可选功能 请在使用前在运行环境中pip install nonebot-plugin-gocqhttp[proxy]安装以补全依赖
  • 请务必在不使用时关闭以防止被滥用
  • 如果您在**境内请不要尝试通过此功能连接国外服务器, 有极大可能导致服务器 IP 被屏蔽
  • 关于如何在您的设备上使用该功能提供的代理, 请搜索如何在<设备系统>上使用HTTP代理

开始使用

配置好了以后启动你的 Bot 即可

  • 需要注意以下几点:

    • 本插件会在 Bot 工作目录下创建accounts文件夹用于存储go-cqhttp的二进制和账户数据文件, 如果你使用版本管理工具(如git), 请自行将该文件夹加入忽略列表

    • 本插件通过子进程调用实现, 如果你在外部通过手段强行终止了 Bot 进程, 请检查开启的子进程是否也同样已终止

    • 如果你的 Bot 监听来自所有主机的连接(比如监听了0.0.0.0), 或者它向公网开放, 强烈建议设置 WebUI 登录凭证以防止被未授权访问

  • 本插件提供了一个SUPERUSERS能使用的命令: gocq, 可以用来查看当前运行的go-cqhttp进程状态

鸣谢

贡献者们

All Contributors

感谢这些大佬对本项目作出的贡献:

Well404
Well404

🐛
pthmz
pthmz

📖
SK
SK

🐛
MistEO
MistEO

🐛 💡
scdhh
scdhh

💻
nicognaw
nicognaw

📖

本段符合 all-contributors 规范

开源许可证

由于go-cqhttp使用了AGPL-3.0许可证, 本项目也同样使用该许可

注意! 如果在您的项目中依赖了该插件, 您的项目必须以该许可开源!

A plugin to run go-cqhttp directly in NoneBot2, without additional download and installation.
Copyright (C) 2022 Mix

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

nonebot-plugin-gocqhttp's People

Contributors

allcontributors[bot] avatar dependabot[bot] avatar misteo avatar mnixry avatar nicognaw avatar shoucandanghehe avatar sk-415 avatar thelzy avatar well2333 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

nonebot-plugin-gocqhttp's Issues

运行nonebot时导入该模块报错

错误内容:

09-30 16:27:43 [ERROR] nonebot | Failed to import "nonebot_plugin_gocqhttp"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/www/server/panel/pyenv/lib/python3.7/multiprocessing/spawn.py", line 105, in spawn_main
    exitcode = _main(fd)
  File "/www/server/panel/pyenv/lib/python3.7/multiprocessing/spawn.py", line 118, in _main
    return self._bootstrap()
  File "/www/server/panel/pyenv/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
    self.run()
  File "/www/server/panel/pyenv/lib/python3.7/multiprocessing/process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "/root/qqbot/lib/python3.7/site-packages/uvicorn/_subprocess.py", line 76, in subprocess_started
    target(sockets=sockets)
  File "/root/qqbot/lib/python3.7/site-packages/uvicorn/server.py", line 60, in run
    return asyncio.run(self.serve(sockets=sockets))
  File "/www/server/panel/pyenv/lib/python3.7/asyncio/runners.py", line 43, in run
    return loop.run_until_complete(main)
  File "/root/qqbot/lib/python3.7/site-packages/uvicorn/server.py", line 67, in serve
    config.load()
  File "/root/qqbot/lib/python3.7/site-packages/uvicorn/config.py", line 479, in load
    self.loaded_app = import_from_string(self.app)
  File "/root/qqbot/lib/python3.7/site-packages/uvicorn/importer.py", line 21, in import_from_string
    module = importlib.import_module(module_str)
  File "/www/server/panel/pyenv/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "./bot.py", line 24, in <module>
    nonebot.load_plugin("nonebot_plugin_gocqhttp")
  File "/root/qqbot/lib/python3.7/site-packages/nonebot/plugin/load.py", line 28, in load_plugin
    return manager.load_plugin(module_path)
> File "/root/qqbot/lib/python3.7/site-packages/nonebot/plugin/manager.py", line 144, in load_plugin
    module = importlib.import_module(name)
  File "/www/server/panel/pyenv/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "/root/qqbot/lib/python3.7/site-packages/nonebot/plugin/manager.py", line 237, in exec_module
    super().exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/root/qqbot/lib/python3.7/site-packages/nonebot_plugin_gocqhttp/__init__.py", line 7, in <module>
    from . import plugin  # noqa: F401
  File "/root/qqbot/lib/python3.7/site-packages/nonebot_plugin_gocqhttp/plugin.py", line 8, in <module>
    from .process import ProcessesManager, RunningProcessDetail
  File "/root/qqbot/lib/python3.7/site-packages/nonebot_plugin_gocqhttp/process/__init__.py", line 3, in <module>
    from .manager import ProcessesManager
  File "/root/qqbot/lib/python3.7/site-packages/nonebot_plugin_gocqhttp/process/manager.py", line 14, in <module>
    from .process import GoCQProcess
  File "/root/qqbot/lib/python3.7/site-packages/nonebot_plugin_gocqhttp/process/process.py", line 17, in <module>
    from .config import generate_config, generate_device
  File "/root/qqbot/lib/python3.7/site-packages/nonebot_plugin_gocqhttp/process/config.py", line 9, in <module>
    from .device import random_device
  File "/root/qqbot/lib/python3.7/site-packages/nonebot_plugin_gocqhttp/process/device/__init__.py", line 2, in <module>
    from .generator import RandomDeviceInfoGenerator
  File "/root/qqbot/lib/python3.7/site-packages/nonebot_plugin_gocqhttp/process/device/generator.py", line 7, in <module>
    from .data_source import load_builds_list, load_devices_list
  File "/root/qqbot/lib/python3.7/site-packages/nonebot_plugin_gocqhttp/process/device/data_source.py", line 24, in <module>
    def load_devices_list(path: Path = DEVICES_DIR):
  File "/www/server/panel/pyenv/lib/python3.7/functools.py", line 490, in lru_cache
    raise TypeError('Expected maxsize to be an integer or None')
TypeError: Expected maxsize to be an integer or None

使用命令gocqhttp时报错

python版本:3.9.5
nonebot版本:2.0.0b4

08-11 12:25:34 [ERROR] nonebot | Running matcher <Matcher from nonebot_plugin_gocqhttp.plugin, type=message, priority=1, temp=False> failed.
Traceback (most recent call last):

  File "/home/ubuntu/nonebot/StarHina/./bot.py", line 36, in <module>
    nonebot.run(app="__mp_main__:app")
    │       └ <function run at 0x7f021e52a280>
    └ <module 'nonebot' from '/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot/__init__.py'>

  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot/__init__.py", line 261, in run
    get_driver().run(*args, **kwargs)
    │                 │       └ {'app': '__mp_main__:app'}
    │                 └ ()
    └ <function get_driver at 0x7f021fc40d30>
  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot/drivers/fastapi.py", line 170, in run
    uvicorn.run(
    │       └ <function run at 0x7f021dc1c3a0>
    └ <module 'uvicorn' from '/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/uvicorn/__init__.py'>
  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/uvicorn/main.py", line 463, in run
    server.run()
    │      └ <function Server.run at 0x7f021dc14e50>
    └ <uvicorn.server.Server object at 0x7f021d8a2580>
  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/uvicorn/server.py", line 60, in run
    return asyncio.run(self.serve(sockets=sockets))
           │       │   │    │             └ None
           │       │   │    └ <function Server.serve at 0x7f021dc14ee0>
           │       │   └ <uvicorn.server.Server object at 0x7f021d8a2580>
           │       └ <function run at 0x7f021f5f5820>
           └ <module 'asyncio' from '/usr/lib/python3.9/asyncio/__init__.py'>
  File "/usr/lib/python3.9/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
           │    │                  └ <coroutine object Server.serve at 0x7f0216972340>
           │    └ <method 'run_until_complete' of 'uvloop.loop.Loop' objects>
           └ <uvloop.Loop running=True closed=False debug=False>
  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot/message.py", line 146, in _check_matcher
    await _run_matcher(Matcher, bot, event, state, stack, dependency_cache)
          │            │        │    │      │      │      └ {<function _command at 0x7f021e4ce430>: <Task finished name='Task-275' coro=<_command() done, defined at /home/ubuntu/.enviro...
          │            │        │    │      │      └ <contextlib.AsyncExitStack object at 0x7f02145c0b20>
          │            │        │    │      └ {'_prefix': {'command': ('gocq',), 'raw_command': '.gocq', 'command_arg': [], 'command_start': '.'}}
          │            │        │    └ PrivateMessageEvent(time=1660191934, self_id=2594737819, post_type='message', sub_type='friend', user_id=1099332511, message_...
          │            │        └ <nonebot.adapters.onebot.v11.bot.Bot object at 0x7f021463ea60>
          │            └ <Matcher from nonebot_plugin_gocqhttp.plugin, type=message, priority=1, temp=False>
          └ <function _run_matcher at 0x7f021e347f70>
> File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot/message.py", line 196, in _run_matcher
    await matcher.run(bot, event, state, stack, dependency_cache)
          │       │   │    │      │      │      └ {<function _command at 0x7f021e4ce430>: <Task finished name='Task-275' coro=<_command() done, defined at /home/ubuntu/.enviro...
          │       │   │    │      │      └ <contextlib.AsyncExitStack object at 0x7f02145c0b20>
          │       │   │    │      └ {'_prefix': {'command': ('gocq',), 'raw_command': '.gocq', 'command_arg': [], 'command_start': '.'}}
          │       │   │    └ PrivateMessageEvent(time=1660191934, self_id=2594737819, post_type='message', sub_type='friend', user_id=1099332511, message_...
          │       │   └ <nonebot.adapters.onebot.v11.bot.Bot object at 0x7f021463ea60>
          │       └ <function Matcher.run at 0x7f021e4c7dc0>
          └ <Matcher from nonebot_plugin_gocqhttp.plugin, type=message, priority=1, temp=False>
  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot/internal/matcher.py", line 668, in run
    await self.simple_run(bot, event, state, stack, dependency_cache)
          │    │          │    │      │      │      └ {<function _command at 0x7f021e4ce430>: <Task finished name='Task-275' coro=<_command() done, defined at /home/ubuntu/.enviro...
          │    │          │    │      │      └ <contextlib.AsyncExitStack object at 0x7f02145c0b20>
          │    │          │    │      └ {'_prefix': {'command': ('gocq',), 'raw_command': '.gocq', 'command_arg': [], 'command_start': '.'}}
          │    │          │    └ PrivateMessageEvent(time=1660191934, self_id=2594737819, post_type='message', sub_type='friend', user_id=1099332511, message_...
          │    │          └ <nonebot.adapters.onebot.v11.bot.Bot object at 0x7f021463ea60>
          │    └ <function Matcher.simple_run at 0x7f021e4c7d30>
          └ <Matcher from nonebot_plugin_gocqhttp.plugin, type=message, priority=1, temp=False>
  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot/internal/matcher.py", line 635, in simple_run
    await handler(
          └ <Dependent call=<function _ at 0x7f021d472a60>, params=[ModelField(name='bot', type=Bot, required=True), ModelField(name='eve...
  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot/dependencies/__init__.py", line 92, in __call__
    return await self.call(**values)
                 │    │      └ {'bot': <nonebot.adapters.onebot.v11.bot.Bot object at 0x7f021463ea60>, 'event': PrivateMessageEvent(time=1660191934, self_id...
                 │    └ <function _ at 0x7f021d472a60>
                 └ <Dependent call=<function _ at 0x7f021d472a60>, params=[ModelField(name='bot', type=Bot, required=True), ModelField(name='eve...
  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot_plugin_gocqhttp/plugin.py", line 38, in _
    messages += STATUS_MESSAGE_TEMPLATE.format(
    │           │                       └ <function MessageTemplate.format at 0x7f021e84a310>
    │           └ <nonebot.internal.adapter.template.MessageTemplate object at 0x7f021d4b7760>
    └ []
  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot/internal/adapter/template.py", line 70, in format
    return self._format(args, kwargs)
           │    │       │     └ {'account': 2594737819, 'total_logs': 22, 'restarts': 0}
           │    │       └ ()
           │    └ <function MessageTemplate._format at 0x7f021e84a430>
           └ <nonebot.internal.adapter.template.MessageTemplate object at 0x7f021d4b7760>
  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot/internal/adapter/template.py", line 81, in _format
    msg, arg_index = self._vformat(
                     │    └ <function MessageTemplate._vformat at 0x7f021e84a550>
                     └ <nonebot.internal.adapter.template.MessageTemplate object at 0x7f021d4b7760>
  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot/internal/adapter/template.py", line 165, in _vformat
    return functools.reduce(self._add, results), auto_arg_index
           │         │      │    │     │         └ 0
           │         │      │    │     └ [[], '帐号', 2594737819, '统计数据:\n日志条数: ', 22, '\n重启次数: ', 0, '\n']
           │         │      │    └ <function MessageTemplate._add at 0x7f021e84a670>
           │         │      └ <nonebot.internal.adapter.template.MessageTemplate object at 0x7f021d4b7760>
           │         └ <built-in function reduce>
           └ <module 'functools' from '/usr/lib/python3.9/functools.py'>
  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot/internal/adapter/template.py", line 182, in _add
    return a + b
           │   └ 2594737819
           └ [MessageSegment(type='text', data={'text': '帐号'})]
  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot/adapters/onebot/v11/message.py", line 276, in __add__
    return super(Message, self).__add__(
                 │        └ [MessageSegment(type='text', data={'text': '帐号'})]
                 └ <class 'nonebot.adapters.onebot.v11.message.Message'>
  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot/internal/adapter/message.py", line 174, in __add__
    result += other
    │         └ 2594737819
    └ [MessageSegment(type='text', data={'text': '帐号'})]
  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot/adapters/onebot/v11/message.py", line 292, in __iadd__
    return super().__iadd__(
  File "/home/ubuntu/.environments/StarHina39/lib/python3.9/site-packages/nonebot/internal/adapter/message.py", line 189, in __iadd__
    raise ValueError(f"Unsupported type: {type(other)}")  # pragma: no cover

ValueError: Unsupported type: <class 'int'>

如何添加正向ws接口?

在config里修改了,但重启bot后配置的信息就会重置,只剩下了反向ws。另一个bot需要使用正向ws,请问该怎么设置呢?

无法检索到消息

在经过一段时间后,机器人无法读取群聊中的消息,需要bot这个账号在群中发送一条消息后恢复
重启bot也会出现这个问题,但也跟时间有关,如果一段时间没有读取消息的话重启bot后也需要发送一条消息才能读取消息

从 nonebot 命令行捕获输入到 go-cqhttp

命令行启动该插件时无法选择登陆验证方式

gocqhttp本体登陆验证有选项的,用插件启动时gocqhttp对命令行输入无反应,导致无法选择更好的验证方式

docker部署如何设置监听地址?

docker部署,网络是直接host模式(为了从公网ipv6访问)
然后测试下来在.env文件中的监听地址为127.0.0.1时候ipv4和ipv6都打不开
换成0.0.0.0,ipv4显示{"detail":"Not Found"} ipv6继续打不开
image
有什么好的办法吗

有关于语音接收问题

貌似始终无法缓存语音消息到go-cqhttp本地

01-16 19:24:36 [WARNING] nonebot_plugin_gocqhttp | [XXXXX] 语音文件 XXXXX.amr 下载失败: Get "http://grouptalk.c2c.qq.com": EOF 01-16 19:24:36 [INFO] nonebot_plugin_gocqhttp | [XXXXX] 收到群 XXXXX(XXXXX) 内 XXXXX(1XXXXX) 的消息: [CQ:record,file=XXXXX.amr,url=http://grouptalk.c2c.qq.com] (1391293363) 01-16 19:24:36 [SUCCESS] nonebot | OneBot V11 XXXXX | [message.group.normal]: Message 1391293363 from XXXXX@[群:XXXXX] "[CQ:record,file=XXXXX.amr,url=http://grouptalk.c2c.qq.com]"

请问这个是什么原因导致的?有解决办法吗

无法通过WebUi向进程传入文字

环境

Python 3.10
nonebot-adapter-onebot 2.2.0
nonebot-plugin-gocqhttp 0.6.3
nonebot2 2.0.0rc2

图片
图片

图片

尝试:

浏览器控制台看见状态码500
图片
用抓包软件看了一下

图片

控制台报错:

12-30 15:00:41 [ERROR] uvicorn | Exception in ASGI application

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\15592\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "C:\Users\15592\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 129, in _main
    return self._bootstrap(parent_sentinel)
  File "C:\Users\15592\AppData\Local\Programs\Python\Python310\lib\multiprocessing\process.py", line 315, in _bootstrap
    self.run()
  File "C:\Users\15592\AppData\Local\Programs\Python\Python310\lib\multiprocessing\process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\uvicorn\_subprocess.py", line 76, in subprocess_started
    target(sockets=sockets)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\uvicorn\server.py", line 60, in run
    return asyncio.run(self.serve(sockets=sockets))
  File "C:\Users\15592\AppData\Local\Programs\Python\Python310\lib\asyncio\runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "C:\Users\15592\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 633, in run_until_complete
    self.run_forever()
  File "C:\Users\15592\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 600, in run_forever
    self._run_once()
  File "C:\Users\15592\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 1896, in _run_once
    handle._run()
  File "C:\Users\15592\AppData\Local\Programs\Python\Python310\lib\asyncio\events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
> File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 419, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\uvicorn\middleware\proxy_headers.py", line 78, in __call__
    return await self.app(scope, receive, send)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\fastapi\applications.py", line 270, in __call__
    await super().__call__(scope, receive, send)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\applications.py", line 124, in __call__
    await self.middleware_stack(scope, receive, send)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\middleware\errors.py", line 184, in __call__
    raise exc
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\middleware\errors.py", line 162, in __call__
    await self.app(scope, receive, _send)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\middleware\exceptions.py", line 79, in __call__
    raise exc
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\middleware\exceptions.py", line 68, in __call__
    await self.app(scope, receive, sender)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 21, in __call__
    raise e
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 18, in __call__
    await self.app(scope, receive, send)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\routing.py", line 706, in __call__
    await route.handle(scope, receive, send)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\routing.py", line 443, in handle
    await self.app(scope, receive, send)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\fastapi\applications.py", line 270, in __call__
    await super().__call__(scope, receive, send)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\applications.py", line 124, in __call__
    await self.middleware_stack(scope, receive, send)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\middleware\errors.py", line 184, in __call__
    raise exc
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\middleware\errors.py", line 162, in __call__
    await self.app(scope, receive, _send)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\middleware\gzip.py", line 24, in __call__
    await responder(scope, receive, send)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\middleware\gzip.py", line 44, in __call__
    await self.app(scope, receive, self.send_with_gzip)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\middleware\exceptions.py", line 79, in __call__
    raise exc
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\middleware\exceptions.py", line 68, in __call__
    await self.app(scope, receive, sender)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 21, in __call__
    raise e
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 18, in __call__
    await self.app(scope, receive, send)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\routing.py", line 706, in __call__
    await route.handle(scope, receive, send)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\routing.py", line 276, in handle
    await self.app(scope, receive, send)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\starlette\routing.py", line 66, in app
    response = await func(request)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\fastapi\routing.py", line 235, in app
    raw_response = await run_endpoint_function(
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\fastapi\routing.py", line 161, in run_endpoint_function
    return await dependant.call(**values)
  File "D:\Codes\Python\CtfdBot\venv\lib\site-packages\nonebot_plugin_gocqhttp\web\api.py", line 211, in process_input_line
    process.process.stdin.write(input_)
TypeError: a bytes-like object is required, not 'str'

根据报错信息,在nonebot_plugin_gocqhttp\web\api.py的第211行尝试修改代码

图片

修改后状态码变为 204
图片

但问题依旧,程序仍无法接收到参数
图片

图片

控制台无任何报错信息

本地连接404

本地连接的时候404,控制台能收到连接请求
12-02 13:03:01 [INFO] uvicorn | 172.17.0.1:40360 - "GET /go-cqhttp HTTP/1.1" 404
不知道怎么回事,端口也是开了的

WebUI无法调整日志等级

请问WebUI是必显示DEBUG日志吗,我nb日志设的INFO模式,终端输出也只是INFO,但是gocq的WebUI会显示DEBUG的日志,太刷屏了
QQ截图20220428205434

网页界面样式加载失败

python版本:3.9.13
nonebot版本:2.0.0b5

08-30 15:32:05 [SUCCESS] nonebot | NoneBot is initializing...
08-30 15:32:05 [INFO] nonebot | Current Env: dev
08-30 15:32:05 [DEBUG] nonebot | Loaded Config: {'driver': '~fastapi', 'host': IPv4Address('127.0.0.1'), 'port': 12208, 'log_level': 'DEBUG', 'api_timeout': 30.0, 'superusers': set(), 'nickname': set(), 'command_start': {'/'}, 'command_sep': {'.'}, 'session_expire_timeout': datetime.timedelta(seconds=120), 'environment': 'dev', 'fastapi_reload': True}
08-30 15:32:05 [DEBUG] nonebot | Succeeded to load adapter "OneBot V11"
08-30 15:32:05 [SUCCESS] nonebot | Succeeded to import "echo"
08-30 15:32:07 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_gocqhttp"
08-30 15:32:07 [WARNING] __main__ | Always use `nb run` to start the bot instead of manually running!
08-30 15:32:07 [SUCCESS] nonebot | Running NoneBot...
08-30 15:32:07 [DEBUG] nonebot | Loaded adapters: OneBot V11
08-30 15:32:07 [INFO] uvicorn | Will watch for changes in these directories: ['D:\\cl\\robot\\nb-robot\\nb-robot-test']
08-30 15:32:07 [INFO] uvicorn | Uvicorn running on http://127.0.0.1:12208 (Press CTRL+C to quit)
08-30 15:32:07 [INFO] uvicorn | Started reloader process [15048] using WatchFiles
08-30 15:32:07 [SUCCESS] nonebot | NoneBot is initializing...
08-30 15:32:07 [INFO] nonebot | Current Env: dev
08-30 15:32:07 [DEBUG] nonebot | Loaded Config: {'driver': '~fastapi', 'host': IPv4Address('127.0.0.1'), 'port': 12208, 'log_level': 'DEBUG', 'api_timeout': 30.0, 'superusers': set(), 'nickname': set(), 'command_start': {'/'}, 'command_sep': {'.'}, 'session_expire_timeout': datetime.timedelta(seconds=120), 'environment': 'dev', 'fastapi_reload': True}
08-30 15:32:07 [DEBUG] nonebot | Succeeded to load adapter "OneBot V11"
08-30 15:32:07 [SUCCESS] nonebot | Succeeded to import "echo"
08-30 15:32:09 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_gocqhttp"
08-30 15:32:09 [INFO] uvicorn | Started server process [12364]
08-30 15:32:09 [INFO] uvicorn | Waiting for application startup.
08-30 15:32:09 [INFO] nonebot_plugin_gocqhttp | Startup complete, Web UI has served to http://127.0.0.1:12208/go-cqhttp/
08-30 15:32:09 [INFO] uvicorn | Application startup complete.

项目无报错

image
css引入失败
我试着清理了chrome的缓存和改用火狐浏览器但都没能解决问题

部分指令在频道中触发会导致gocq重启

在更新gocq rc2版本后出现该情况
打了nonebot_plugin_guild_patch频道补丁,在频道触发该指令导致gocq重启,并在重启后提示API超时,
该指令的功能只是发送一张本地图片,在Q群和私聊是正常的,其他类似指令也无该情况
日志:
QQ截图20220608124303
QQ截图20220608124318
不知道是rc2版本的bug还是nonebot-plugin-gocqhttp未适配rc2导致的

新添加的账号仍然没有 `启动` 按钮

image

image

image

image

仅出现在刚刚添加完成的账号上(在 web 端操作),刷新网页也没用。不知道该提供哪些信息,我这里是必现的,看看要什么我再去截点图

插件运行后加载其他插件失败

nonebot.load_plugins("plugins")
nonebot.load_plugin("nonebot_plugin_gocqhttp")

此时nonebot_plugin_gocqhttp加载,但load_plugins未加载本地插件

--plugins
      |--msg
            |--__init__.py

msg/__init__.py其具体内容:

from nonebot import on_message
from nonebot.adapters.onebot.v11 import  Event

# 注册一个消息响应器
matcher = on_message()
# 注册一个消息处理器
# 并重复收到的消息
@matcher.handle()
async def handler(event: Event) -> None:
    await matcher.send(event.get_message())

迷。

账号在被冻结 - 手动解冻 - 重新登录时,提示密码错误,发现密码多了一个空格

一开始以为是个例,密码搞错了,然后现在出现两三次了

具体现象为:

  1. 原先正常登陆,某一天账号被冻结,手动解冻
  2. 在 webui 上重新登录,提示密码错误
  3. 打开 accounts/<账号>/config.yml 文件,发现 account - password 字段的字符串值最后多了一个空格

例如:(假设我的密码是 1234567,结果变成了 1234567[空格] 了)

image

复现路径不一定准确,只是碰巧冻结重新登录发现的,可能和重新登录压根没关系,也不知道跟什么有关系,也不知道啥时候这个空格多出来的 orz

FileNotFoundError

插件正常加载,在 WebUI 中进入账户信息点击 启动 后报错。

12-14 02:00:41 [ERROR] uvicorn | Exception in ASGI application

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\multiprocessing\spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\multiprocessing\spawn.py", line 129, in _main
    return self._bootstrap(parent_sentinel)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\multiprocessing\process.py", line 315, in _bootstrap
    self.run()
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\multiprocessing\process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\uvicorn\_subprocess.py", line 76, in subprocess_started
    target(sockets=sockets)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\uvicorn\server.py", line 60, in run
    return asyncio.run(self.serve(sockets=sockets))
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\asyncio\runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\asyncio\base_events.py", line 634, in run_until_complete
    self.run_forever()
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\asyncio\base_events.py", line 601, in run_forever
    self._run_once()
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\asyncio\base_events.py", line 1905, in _run_once
    handle._run()
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\asyncio\events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
> File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 404, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\uvicorn\middleware\proxy_headers.py", line 78, in __call__
    return await self.app(scope, receive, send)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\fastapi\applications.py", line 269, in __call__
    await super().__call__(scope, receive, send)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\applications.py", line 124, in __call__
    await self.middleware_stack(scope, receive, send)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\middleware\errors.py", line 184, in __call__
    raise exc
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\middleware\errors.py", line 162, in __call__
    await self.app(scope, receive, _send)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\exceptions.py", line 93, in __call__
    raise exc
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\exceptions.py", line 82, in __call__
    await self.app(scope, receive, sender)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 21, in __call__
    raise e
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 18, in __call__
    await self.app(scope, receive, send)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\routing.py", line 670, in __call__
    await route.handle(scope, receive, send)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\routing.py", line 418, in handle
    await self.app(scope, receive, send)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\fastapi\applications.py", line 269, in __call__
    await super().__call__(scope, receive, send)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\applications.py", line 124, in __call__
    await self.middleware_stack(scope, receive, send)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\middleware\errors.py", line 184, in __call__
    raise exc
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\middleware\errors.py", line 162, in __call__
    await self.app(scope, receive, _send)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\middleware\gzip.py", line 24, in __call__
    await responder(scope, receive, send)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\middleware\gzip.py", line 43, in __call__
    await self.app(scope, receive, self.send_with_gzip)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\exceptions.py", line 93, in __call__
    raise exc
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\exceptions.py", line 82, in __call__
    await self.app(scope, receive, sender)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 21, in __call__
    raise e
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 18, in __call__
    await self.app(scope, receive, send)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\routing.py", line 670, in __call__
    await route.handle(scope, receive, send)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\routing.py", line 266, in handle
    await self.app(scope, receive, send)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\starlette\routing.py", line 65, in app
    response = await func(request)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\fastapi\routing.py", line 227, in app
    raw_response = await run_endpoint_function(
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\fastapi\routing.py", line 160, in run_endpoint_function
    return await dependant.call(**values)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\nonebot_plugin_gocqhttp\web\api.py", line 182, in process_start
    await process.start()
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\nonebot_plugin_gocqhttp\process\process.py", line 187, in start
    if duplicate_pid := await self._find_duplicate_process():
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\site-packages\nonebot_plugin_gocqhttp\process\process.py", line 177, in _find_duplicate_process
    or self.cwd.absolute().samefile(cwd)
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\pathlib.py", line 1151, in samefile
    other_st = other_path.stat()
  File "C:\Users\41245\AppData\Local\Programs\Python\Python39\lib\pathlib.py", line 1232, in stat
    return self._accessor.stat(self)
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'C:\\Program Files (x86)\\Tencent\\WeChat'

添加媒体文件缓存配置项到配置文件

即原版 gocq 配置文件中的这部分内容

  # 媒体文件缓存, 删除此项则使用缓存文件(旧版行为)
  cache:
    image: data/image.db
    video: data/video.db

本插件生成的 config.yml 中似乎没有这部分内容,我手动为多个账号填写进去,指定到同一个份 db 文件,是否可行?
另外如果可行的话能不能增加一个 webui 上的选项直接指定_(:з」∠)_

题外话,这个插件实在太牛了,mix,神!

编辑或重置配置文件时出错

如图
image
image
控制台反馈:
image

05-04 17:37:43 [INFO] uvicorn | 118.81.80.97:64072 - "DELETE /api/打码/config HTTP/1.1" 500
05-04 17:37:43 [ERROR] uvicorn | Exception in ASGI application

Traceback (most recent call last):

  File "/usr/local/bin/nb", line 8, in <module>
    sys.exit(main())
    │   │    └ <ClickAliasedGroup main>
    │   └ <built-in function exit>
    └ <module 'sys' (built-in)>

  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
           │    │     │       └ {}
           │    │     └ ()
           │    └ <function BaseCommand.main at 0x7fe8b4cb2820>
           └ <ClickAliasedGroup main>

  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
         │    │      └ <click.core.Context object at 0x7fe8b4f4c220>
         │    └ <function MultiCommand.invoke at 0x7fe8b4cb8820>
         └ <ClickAliasedGroup main>

  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
           │               │       │       │      └ <click.core.Context object at 0x7fe8b4f14640>
           │               │       │       └ <function Command.invoke at 0x7fe8b4cb8310>
           │               │       └ <ClickAliasedCommand run>
           │               └ <click.core.Context object at 0x7fe8b4f14640>
           └ <function MultiCommand.invoke.<locals>._process_result at 0x7fe8b4edc8b0>

  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           │   │      │    │           │   └ {'file': 'bot.py', 'app': 'app'}
           │   │      │    │           └ <click.core.Context object at 0x7fe8b4f14640>
           │   │      │    └ <function run at 0x7fe8aef7b1f0>
           │   │      └ <ClickAliasedCommand run>
           │   └ <function Context.invoke at 0x7fe8b4cb20d0>
           └ <click.core.Context object at 0x7fe8b4f14640>

  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
                       │       └ {'file': 'bot.py', 'app': 'app'}
                       └ ()

  File "/usr/local/lib/python3.8/dist-packages/nb_cli/commands/main.py", line 30, in run
    run_bot(file, app)
    │       │     └ 'app'
    │       └ 'bot.py'
    └ <function run_bot at 0x7fe8b2482ca0>

  File "/usr/local/lib/python3.8/dist-packages/nb_cli/handlers/deploy.py", line 24, in run_bot
    nonebot.run(app=f"{module_name}:{app}")
    │       └ <function run at 0x7fe8b49d4dc0>
    └ <module 'nonebot' from '/usr/local/lib/python3.8/dist-packages/nonebot/__init__.py'>

  File "/usr/local/lib/python3.8/dist-packages/nonebot/__init__.py", line 258, in run
    get_driver().run(*args, **kwargs)
    │                 │       └ {'app': 'bot:app'}
    │                 └ ()
    └ <function get_driver at 0x7fe8b36c50d0>

  File "/usr/local/lib/python3.8/dist-packages/nonebot/drivers/fastapi.py", line 168, in run
    uvicorn.run(
    │       └ <function run at 0x7fe8aedcd040>
    └ <module 'uvicorn' from '/usr/local/lib/python3.8/dist-packages/uvicorn/__init__.py'>

  File "/usr/local/lib/python3.8/dist-packages/uvicorn/main.py", line 463, in run
    server.run()
    │      └ <function Server.run at 0x7fe8aee34af0>
    └ <uvicorn.server.Server object at 0x7fe8a6a43910>

  File "/usr/local/lib/python3.8/dist-packages/uvicorn/server.py", line 60, in run
    return asyncio.run(self.serve(sockets=sockets))
           │       │   │    │             └ None
           │       │   │    └ <function Server.serve at 0x7fe8aee34b80>
           │       │   └ <uvicorn.server.Server object at 0x7fe8a6a43910>
           │       └ <function run at 0x7fe8b3fc5af0>
           └ <module 'asyncio' from '/usr/lib/python3.8/asyncio/__init__.py'>

  File "/usr/lib/python3.8/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
           │    │                  └ <coroutine object Server.serve at 0x7fe8a6a3bec0>
           │    └ <method 'run_until_complete' of 'uvloop.loop.Loop' objects>
           └ <uvloop.Loop running=True closed=False debug=False>

> File "/usr/local/lib/python3.8/dist-packages/uvicorn/protocols/http/httptools_impl.py", line 372, in run_asgi
    result = await app(self.scope, self.receive, self.send)
                   │   │    │      │    │        │    └ <function RequestResponseCycle.send at 0x7fe8a6684430>
                   │   │    │      │    │        └ <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c00730>
                   │   │    │      │    └ <function RequestResponseCycle.receive at 0x7fe8a66844c0>
                   │   │    │      └ <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c00730>
                   │   │    └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('192.168.0.4', 6789), '...
                   │   └ <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c00730>
                   └ <uvicorn.middleware.proxy_headers.ProxyHeadersMiddleware object at 0x7fe8a6655bb0>

  File "/usr/local/lib/python3.8/dist-packages/uvicorn/middleware/proxy_headers.py", line 75, in __call__
    return await self.app(scope, receive, send)
                 │    │   │      │        └ <bound method RequestResponseCycle.send of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c007...
                 │    │   │      └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c...
                 │    │   └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('192.168.0.4', 6789), '...
                 │    └ <fastapi.applications.FastAPI object at 0x7fe8aef88430>
                 └ <uvicorn.middleware.proxy_headers.ProxyHeadersMiddleware object at 0x7fe8a6655bb0>

  File "/usr/local/lib/python3.8/dist-packages/fastapi/applications.py", line 212, in __call__
    await super().__call__(scope, receive, send)
                           │      │        └ <bound method RequestResponseCycle.send of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c007...
                           │      └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c...
                           └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('192.168.0.4', 6789), '...

  File "/usr/local/lib/python3.8/dist-packages/starlette/applications.py", line 112, in __call__
    await self.middleware_stack(scope, receive, send)
          │    │                │      │        └ <bound method RequestResponseCycle.send of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c007...
          │    │                │      └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c...
          │    │                └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('192.168.0.4', 6789), '...
          │    └ <starlette.middleware.errors.ServerErrorMiddleware object at 0x7fe8aeb38f40>
          └ <fastapi.applications.FastAPI object at 0x7fe8aef88430>

  File "/usr/local/lib/python3.8/dist-packages/starlette/middleware/errors.py", line 181, in __call__
    raise exc

  File "/usr/local/lib/python3.8/dist-packages/starlette/middleware/errors.py", line 159, in __call__
    await self.app(scope, receive, _send)
          │    │   │      │        └ <function ServerErrorMiddleware.__call__.<locals>._send at 0x7fe8a50ed8b0>
          │    │   │      └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c...
          │    │   └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('192.168.0.4', 6789), '...
          │    └ <starlette.exceptions.ExceptionMiddleware object at 0x7fe8aeb38ee0>
          └ <starlette.middleware.errors.ServerErrorMiddleware object at 0x7fe8aeb38f40>

  File "/usr/local/lib/python3.8/dist-packages/starlette/exceptions.py", line 82, in __call__
    raise exc

  File "/usr/local/lib/python3.8/dist-packages/starlette/exceptions.py", line 71, in __call__
    await self.app(scope, receive, sender)
          │    │   │      │        └ <function ExceptionMiddleware.__call__.<locals>.sender at 0x7fe8a50ed940>
          │    │   │      └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c...
          │    │   └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('192.168.0.4', 6789), '...
          │    └ <fastapi.routing.APIRouter object at 0x7fe8aeb38d30>
          └ <starlette.exceptions.ExceptionMiddleware object at 0x7fe8aeb38ee0>

  File "/usr/local/lib/python3.8/dist-packages/starlette/routing.py", line 656, in __call__
    await route.handle(scope, receive, send)
          │     │      │      │        └ <function ExceptionMiddleware.__call__.<locals>.sender at 0x7fe8a50ed940>
          │     │      │      └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c...
          │     │      └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('192.168.0.4', 6789), '...
          │     └ <function Mount.handle at 0x7fe8aeb1b670>
          └ <starlette.routing.Mount object at 0x7fe8a8445580>

  File "/usr/local/lib/python3.8/dist-packages/starlette/routing.py", line 408, in handle
    await self.app(scope, receive, send)
          │    │   │      │        └ <function ExceptionMiddleware.__call__.<locals>.sender at 0x7fe8a50ed940>
          │    │   │      └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c...
          │    │   └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('192.168.0.4', 6789), '...
          │    └ <fastapi.applications.FastAPI object at 0x7fe8a8450280>
          └ <starlette.routing.Mount object at 0x7fe8a8445580>

  File "/usr/local/lib/python3.8/dist-packages/fastapi/applications.py", line 212, in __call__
    await super().__call__(scope, receive, send)
                           │      │        └ <function ExceptionMiddleware.__call__.<locals>.sender at 0x7fe8a50ed940>
                           │      └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c...
                           └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('192.168.0.4', 6789), '...

  File "/usr/local/lib/python3.8/dist-packages/starlette/applications.py", line 112, in __call__
    await self.middleware_stack(scope, receive, send)
          │    │                │      │        └ <function ExceptionMiddleware.__call__.<locals>.sender at 0x7fe8a50ed940>
          │    │                │      └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c...
          │    │                └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('192.168.0.4', 6789), '...
          │    └ <starlette.middleware.errors.ServerErrorMiddleware object at 0x7fe8a8289550>
          └ <fastapi.applications.FastAPI object at 0x7fe8a8450280>

  File "/usr/local/lib/python3.8/dist-packages/starlette/middleware/errors.py", line 181, in __call__
    raise exc

  File "/usr/local/lib/python3.8/dist-packages/starlette/middleware/errors.py", line 159, in __call__
    await self.app(scope, receive, _send)
          │    │   │      │        └ <function ServerErrorMiddleware.__call__.<locals>._send at 0x7fe8a50ed790>
          │    │   │      └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c...
          │    │   └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('192.168.0.4', 6789), '...
          │    └ <starlette.middleware.gzip.GZipMiddleware object at 0x7fe8a8289430>
          └ <starlette.middleware.errors.ServerErrorMiddleware object at 0x7fe8a8289550>

  File "/usr/local/lib/python3.8/dist-packages/starlette/middleware/gzip.py", line 23, in __call__
    await responder(scope, receive, send)
          │         │      │        └ <function ServerErrorMiddleware.__call__.<locals>._send at 0x7fe8a50ed790>
          │         │      └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c...
          │         └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('192.168.0.4', 6789), '...
          └ <starlette.middleware.gzip.GZipResponder object at 0x7fe8a5c00100>

  File "/usr/local/lib/python3.8/dist-packages/starlette/middleware/gzip.py", line 42, in __call__
    await self.app(scope, receive, self.send_with_gzip)
          │    │   │      │        │    └ <function GZipResponder.send_with_gzip at 0x7fe8a82f63a0>
          │    │   │      │        └ <starlette.middleware.gzip.GZipResponder object at 0x7fe8a5c00100>
          │    │   │      └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c...
          │    │   └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('192.168.0.4', 6789), '...
          │    └ <starlette.exceptions.ExceptionMiddleware object at 0x7fe8a82893d0>
          └ <starlette.middleware.gzip.GZipResponder object at 0x7fe8a5c00100>

  File "/usr/local/lib/python3.8/dist-packages/starlette/exceptions.py", line 82, in __call__
    raise exc

  File "/usr/local/lib/python3.8/dist-packages/starlette/exceptions.py", line 71, in __call__
    await self.app(scope, receive, sender)
          │    │   │      │        └ <function ExceptionMiddleware.__call__.<locals>.sender at 0x7fe8a50ed9d0>
          │    │   │      └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c...
          │    │   └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('192.168.0.4', 6789), '...
          │    └ <fastapi.routing.APIRouter object at 0x7fe8a83086d0>
          └ <starlette.exceptions.ExceptionMiddleware object at 0x7fe8a82893d0>

  File "/usr/local/lib/python3.8/dist-packages/starlette/routing.py", line 656, in __call__
    await route.handle(scope, receive, send)
          │     │      │      │        └ <function ExceptionMiddleware.__call__.<locals>.sender at 0x7fe8a50ed9d0>
          │     │      │      └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c...
          │     │      └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('192.168.0.4', 6789), '...
          │     └ <function Route.handle at 0x7fe8aeb1b040>
          └ <fastapi.routing.APIRoute object at 0x7fe8a822a8b0>

  File "/usr/local/lib/python3.8/dist-packages/starlette/routing.py", line 259, in handle
    await self.app(scope, receive, send)
          │    │   │      │        └ <function ExceptionMiddleware.__call__.<locals>.sender at 0x7fe8a50ed9d0>
          │    │   │      └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.httptools_impl.RequestResponseCycle object at 0x7fe8a5c...
          │    │   └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('192.168.0.4', 6789), '...
          │    └ <function request_response.<locals>.app at 0x7fe8a828dd30>
          └ <fastapi.routing.APIRoute object at 0x7fe8a822a8b0>

  File "/usr/local/lib/python3.8/dist-packages/starlette/routing.py", line 61, in app
    response = await func(request)
                     │    └ <starlette.requests.Request object at 0x7fe8a5c00490>
                     └ <function get_request_handler.<locals>.app at 0x7fe8a828dca0>

  File "/usr/local/lib/python3.8/dist-packages/fastapi/routing.py", line 226, in app
    raw_response = await run_endpoint_function(
                         └ <function run_endpoint_function at 0x7fe8b3461ee0>

  File "/usr/local/lib/python3.8/dist-packages/fastapi/routing.py", line 161, in run_endpoint_function
    return await run_in_threadpool(dependant.call, **values)
                 │                 │         │       └ {'process': <GoCQProcess uin=打码 password='打码' protocol=<AccountProtocol.iPad: 5> process=<subprocess.Pop...
                 │                 │         └ <function account_config_delete at 0x7fe8a82b08b0>
                 │                 └ <fastapi.dependencies.models.Dependant object at 0x7fe8a822a8e0>
                 └ <function run_in_threadpool at 0x7fe8b35498b0>

  File "/usr/local/lib/python3.8/dist-packages/starlette/concurrency.py", line 39, in run_in_threadpool
    return await anyio.to_thread.run_sync(func, *args)
                 │     │         │        │      └ (functools.partial(<function account_config_delete at 0x7fe8a82b08b0>, process=<GoCQProcess uin=打码 password='打码...
                 │     │         │        └ <built-in method run of Context object at 0x7fe8a513a3c0>
                 │     │         └ <function run_sync at 0x7fe8b2c11c10>
                 │     └ <module 'anyio.to_thread' from '/usr/local/lib/python3.8/dist-packages/anyio/to_thread.py'>
                 └ <module 'anyio' from '/usr/local/lib/python3.8/dist-packages/anyio/__init__.py'>

  File "/usr/local/lib/python3.8/dist-packages/anyio/to_thread.py", line 28, in run_sync
    return await get_asynclib().run_sync_in_worker_thread(func, *args, cancellable=cancellable,
                 │                                        │      │                 └ False
                 │                                        │      └ (functools.partial(<function account_config_delete at 0x7fe8a82b08b0>, process=<GoCQProcess uin=打码 password='打码...
                 │                                        └ <built-in method run of Context object at 0x7fe8a513a3c0>
                 └ <function get_asynclib at 0x7fe8b2c11550>

  File "/usr/local/lib/python3.8/dist-packages/anyio/_backends/_asyncio.py", line 818, in run_sync_in_worker_thread
    return await future
                 └ <Future finished exception=NotADirectoryError(20, 'Not a directory')>

  File "/usr/local/lib/python3.8/dist-packages/anyio/_backends/_asyncio.py", line 754, in run
    result = context.run(func, *args)
             │       │   │      └ (functools.partial(<function account_config_delete at 0x7fe8a82b08b0>, process=<GoCQProcess uin=打码 password='打码...
             │       │   └ <built-in method run of Context object at 0x7fe8a513a3c0>
             │       └ <method 'run' of 'Context' objects>
             └ <Context object at 0x7fe8a5b53640>

  File "/usr/local/lib/python3.8/dist-packages/nonebot_plugin_gocqhttp/web/api.py", line 134, in account_config_delete
    process.config.delete()
    │       │      └ <function AccountConfigHelper.delete at 0x7fe8a8329820>
    │       └ <nonebot_plugin_gocqhttp.process.config.AccountConfigHelper object at 0x7fe8a59f3ac0>
    └ <GoCQProcess uin=打码 password='打码' protocol=<AccountProtocol.iPad: 5> process=<subprocess.Popen object at...

  File "/usr/local/lib/python3.8/dist-packages/nonebot_plugin_gocqhttp/process/config.py", line 43, in delete
    self.template_path.rmdir()
    │    │             └ <function Path.rmdir at 0x7fe8b4ae7430>
    │    └ PosixPath('accounts/打码/config-template.yml')
    └ <nonebot_plugin_gocqhttp.process.config.AccountConfigHelper object at 0x7fe8a59f3ac0>

  File "/usr/lib/python3.8/pathlib.py", line 1336, in rmdir
    self._accessor.rmdir(self)
    │    │               └ PosixPath('accounts/打码/config-template.yml')
    │    └ <member '_accessor' of 'Path' objects>
    └ PosixPath('accounts/打码/config-template.yml')

NotADirectoryError: [Errno 20] Not a directory: 'accounts/打码/config-template.yml'

这是重设时控制台的报错

`restart_interval` 参数使用不合理

这俩不应该使用同一个参数,我这里账号比较多,想把 restart_interval 设置大一点,但却造成了整个进程启动的时候,几个账号登陆完,再过很久(跑完了 168 行那个)才会去登剩下的账号

bird

在服务器上部署时较难访问到127.0.0.1
可以添加一个可选配置 让用户能自定义后端监听IP

运行nonebot2机器人ATRI后,一直报错 Process for 21234567 exited with code 2, retrying to restart...

运行python main.py启动nonebot2机器人ATRI后,一直报这个错,可能是什么原因?有更详细的日志可以查原因吗?

WARNING gocqhttp >> Process for 21234567 exited with code 2, retrying to restart... (244/-1)
STDOUT gocqhttp >> [21234567] flag provided but not defined: -faststart
STDOUT gocqhttp >> [21234567] Usage of /home/lighthouse/ATRI/accounts/binary/go-cqhttp:
STDOUT gocqhttp >> [21234567] -D      debug mode
STDOUT gocqhttp >> [21234567] -c string
STDOUT gocqhttp >> [21234567] configuration filename (default "/home/lighthouse/ATRI/accounts/21234567/config.yml")
STDOUT gocqhttp >> [21234567] -d      running as a daemon
STDOUT gocqhttp >> [21234567] -h      this Help
STDOUT gocqhttp >> [21234567] -w string
STDOUT gocqhttp >> [21234567] cover the working directory
STDOUT gocqhttp >> [21234567] flag provided but not defined: -faststart

使用`asyncio`提供的异步进程API代替现在的开线程处理

由于uvicorn>=0.17.0(即nonebot2>=2.0.0b2)之后, 它在Windows系统下采用了能兼容异步子进程调用的WindowsSelectorEventLoopPolicy. 因为这样, 我计划将本插件改为基于asyncio提供的异步进程调用, 以减少代码复杂程度

但是可能会带来未知的兼容性问题, 目前开个线程操作子进程虽然可能有未知Bug和性能问题, 但是兼容性应该是最好的

而且我本人使用的操作系统也不是Windows系统, 出现问题之后很难第一时间进行调试.

目前正在观望其他使用异步进程调用的插件在新版NoneBot上的运行情况

账号被冻结后无法在 WebUI 上手动停止重新登录

如日志,从开始登录到登录失败,整个持续过程只有不到一秒,必须在这个过程中点击 刷新 按钮(手速要快,才会出现 停止 按钮。

如果不手动刷新,或手速不够,则一直是截图中的界面,没有 停止 可以点击

image

每当我试图访问webui时gocq就会弹警告,webui页面Bad Request

警告内容:处理websocket请求时出现错误:websocket:the client is not using the websocket protocol:'upgrade'token not found in 'Connection' header
我不理解这是什么意思
我是用公网ip:监听端口/go-cqhttp/访问的
连接服务列表使用的是正向ws和http通信

长时间开启 WebUI 后会变得非常卡

昨天说的一直转圈圈的问题,应该不是多账号导致的(但是多账号可能会导致问题更容易出现?目前未知)

长时间开启 WebUI 后,会变得非常卡,点一些按钮要过很久才有响应,一直转圈圈,还很容易出现网页未响应。

关闭网页标签并重新打开仍然会很卡,但重启浏览器进程并再次打开网页可以 100% 解决,然后过几个小时可能又会变得非常卡。

(可能是哪里有什么资源没有释放?泄露了?我瞎猜的)

确定排除网络问题,使用的是 Chrome 版本 99.0.4844.84(正式版本) (64 位)

在监听`127.0.0.1`和`0.0.0.0`之外的地址时使用出错

我使用了树莓派并安装ubuntu22.04LTS系统
目标是在树莓派上安装nonebot2和gocqhttp插件来管理qq机器人
无公网,树莓派固定ip地址192.168.0.12

一开始我按照一般流程修改了env.dev里的”HOST=“项,一开始我在此填入了127.0.0.1,但这样我就无法在同局域网内的另一台电脑访问http://192.168.0.12:33114/go-cqhttp/,
于是我将其修改为树莓派固定好的ip地址,这样就可以打开http://192.168.0.12:33114/go-cqhttp/了,
但是当我输入机器人账号并尝试登陆时,控制台显示反向ws服务器连接失败并一直尝试连接,
而后我修改了/home/ubuntu/.local/lib/python3.10/site-packages/nonebot_plugin_gocqhttp/process/下的config.py文件中第48行
"server_address": f"ws://127.0.0.1:{driver_config.port}/onebot/v11/ws",
并将其中的127.0.0.1改为192.168.0.12(即树莓派固定好的ip地址)
"server_address": f"ws://192.168.0.12:{driver_config.port}/onebot/v11/ws",
保存,开启nonebot,不再报错,事情解决

建议:不知道/home/ubuntu/.local/lib/python3.10/site-packages/nonebot_plugin_gocqhttp/process/config.py文件能否像
/home/ubuntu/.local/lib/python3.10/site-packages/nonebot_plugin_gocqhttp/init.py文件中的第61行
f"<u><e>http://{driver.config.host}:{driver.config.port}/go-cqhttp/</e></u>"一样,改为
"server_address": f"ws://{driver.config.host}:{driver_config.port}/onebot/v11/ws",
并在文件头调用相应模块来一劳永逸

[bug]已被删除的后台进程导致程序无法正常启动

问题位置

此处对系统中所有进程全遍历一遍,与当前进程进行比较,若出现可执行文件一致或工作路径相同的情况时,便结束当前进程。

但如果出现同根目录一同被删除但进程仍挂载在后台的情况时,此行便会出现 FileNotFoundError: [Errno 2] No such file or directory: xxxxx 的错误。

因此,个人建议应加入异常捕获或对所获取的数据进行校验,以确保不会因为意外情况导致校验失败。

完整的错误日志因包含个人信息与密码,因此不在此处放出,已通过开发者群进行提供。

后台连接网页端一段时间后重复报错

open image cache failed: 文件被其他进程占用
Process for {QQ号} exited with code 1, retrying to restart...

对后台没啥影响,bot正常运行,但导致网页端无法连接后台

[bug] 热重载后cqhttp打开数据库失败

02-19 15:39:17 [WARNING] uvicorn | WatchGodReload detected file change in '['__init__.py']'. Reloading...
02-19 15:39:17 [SUCCESS] nonebot | NoneBot is initializing...
02-19 15:39:17 [INFO] nonebot | Current Env: dev
02-19 15:39:17 [DEBUG] nonebot | Loaded Config: {'driver': '~fastapi', 'host': IPv4Address('0.0.0.0'), 'port': *****, 'log_level': 'DEBUG', 'api_timeout': 30.0, 'superusers': {'********'}, 'nickname': set(), 'command_start': {'', '/'}, 'command_sep': {'.'}, 'session_expire_timeout': datetime.timedelta(seconds=120), 'environment': 'dev', 'gocq_webui_username': '*****', 'gocq_webui_password': '*****', 'fastapi_reload': True}
02-19 15:39:17 [DEBUG] nonebot | Succeeded to load adapter "OneBot V11"
02-19 15:39:17 [SUCCESS] nonebot | Succeeded to import "nonebot.plugins.echo"
02-19 15:39:19 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_gocqhttp"
02-19 15:39:19 [SUCCESS] nonebot | Succeeded to import "nonebot-plugin-tetrio-stats"
02-19 15:39:19 [INFO] uvicorn | Started server process [34380]
02-19 15:39:19 [INFO] uvicorn | Waiting for application startup.
02-19 15:39:19 [DEBUG] nonebot_plugin_gocqhttp | Config file for account ***** generated.
02-19 15:39:19 [DEBUG] nonebot_plugin_gocqhttp | Device file for account ***** generated.
02-19 15:39:19 [FATAL] nonebot_plugin_gocqhttp | [*****] 打开数据库失败: open backend error: open leveldb error: The process cannot access the file because it is being used by another process.
02-19 15:39:19 [WARNING] nonebot_plugin_gocqhttp | Process for ***** exited with code 1, retrying to restart... (0/-1)
02-19 15:39:22 [INFO] nonebot_plugin_gocqhttp | Startup complete, Web UI has served to http://127.0.0.1:*****/go-cqhttp/
02-19 15:39:22 [INFO] uvicorn | Application startup complete.
02-19 15:39:22 [FATAL] nonebot_plugin_gocqhttp | [*****] 打开数据库失败: open backend error: open leveldb error: The process cannot access the file because it is being used by another process.
02-19 15:39:22 [WARNING] nonebot_plugin_gocqhttp | Process for ***** exited with code 1, retrying to restart... (1/-1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.