he0119 / coolqbot Goto Github PK
View Code? Open in Web Editor NEW基于 NoneBot2 的聊天机器人
License: MIT License
基于 NoneBot2 的聊天机器人
License: MIT License
容器内时区为 UTC+0
根据 he0119/nonebot-plugin-datastore#15 提到的问题。
现在 Docker 镜像并没有将 .env 文件打包进去,后面需要把所需配置填入 .env 文件并放入镜像中。
不同群想要不同的推送内容
Lean的Openwrt恰好有Docker插件,是不是能抛弃服务器直接使用?配置过程能更简单点就好了不太好搞
通过 PublishDate 来判断是否需要推送新闻。
这样当维护结束,直接在同 ID 修改新闻后,也能正常推送新消息。
https://timor.tech/api/holiday/tts 这个 API 有时候返回的数据是前一天的。
所以还是自己实现一个 API 比较好。
添加一个帮助命令,介绍每个插件的功能,并完善每个插件的初始化引导。
我已经在配置文件设置了nickname,安装了依赖,但启动报错:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/nonebot/config.py", line 70, in _build_environ
env_val = self.config.json_loads(env_val)
File "/usr/lib/python3.8/json/init.py", line 357, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.8/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/bin/nb", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 829, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/nb_cli/init.py", line 46, in run
run_bot(file, app)
File "/usr/local/lib/python3.8/dist-packages/nb_cli/handlers.py", line 44, in run_bot
module = importlib.import_module(module_name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 783, in exec_module
File "", line 219, in _call_with_frames_removed
File "./bot.py", line 6, in
nonebot.init()
File "/usr/local/lib/python3.8/dist-packages/nonebot/init.py", line 177, in init
config = Config(**kwargs,
File "pydantic/env_settings.py", line 35, in pydantic.env_settings.BaseSettings.init
File "pydantic/env_settings.py", line 48, in pydantic.env_settings.BaseSettings._build_values
File "/usr/local/lib/python3.8/dist-packages/nonebot/config.py", line 72, in _build_environ
raise SettingsError(
pydantic.env_settings.SettingsError: error parsing JSON for "nickname"
可通过根据 QQ_BOTS 的配置来进行设置。
网址:https://example.com/100000.json
内容:{"bot_appid":100000}
添加一个脚本,方便生成每个版本的副本数据。
Traceback (most recent call last):
File "/usr/local/bin/gunicorn", line 8, in <module>
sys.exit(run())
File "/usr/local/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 67, in run
WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
File "/usr/local/lib/python3.9/site-packages/gunicorn/app/base.py", line 231, in run
super().run()
File "/usr/local/lib/python3.9/site-packages/gunicorn/app/base.py", line 72, in run
Arbiter(self).run()
File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 202, in run
self.manage_workers()
File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 551, in manage_workers
self.spawn_workers()
File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 622, in spawn_workers
self.spawn_worker()
File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.9/site-packages/uvicorn/workers.py", line 66, in init_process
super(UvicornWorker, self).init_process()
File "/usr/local/lib/python3.9/site-packages/gunicorn/workers/base.py", line 142, in init_process
self.run()
File "/usr/local/lib/python3.9/site-packages/uvicorn/workers.py", line 84, in run
return asyncio.run(self._serve())
File "/usr/local/lib/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.9/site-packages/nonebot/message.py", line 158, in _check_matcher
await _run_matcher(Matcher, bot, event, state, stack, dependency_cache)
> File "/usr/local/lib/python3.9/site-packages/nonebot/message.py", line 207, in _run_matcher
await matcher.run(bot, event, state, stack, dependency_cache)
File "/usr/local/lib/python3.9/site-packages/nonebot/matcher.py", line 742, in run
await self.simple_run(bot, event, state, stack, dependency_cache)
File "/usr/local/lib/python3.9/site-packages/nonebot/matcher.py", line 709, in simple_run
await handler(
File "/usr/local/lib/python3.9/site-packages/nonebot/dependencies/__init__.py", line 76, in __call__
return await self.call(**values)
File "/app/src/plugins/repeat/__init__.py", line 186, in rank_handle_group_message
res = await get_rank(
File "/app/src/plugins/repeat/rank.py", line 19, in get_rank
repeat_list = recorder_obj.repeat_list(group_id)
File "/app/src/plugins/repeat/recorder.py", line 113, in repeat_list
return self._merge_list(self._repeat_list[group_id])
KeyError: 123456789
/点歌 歌曲名
支持从 QQ 或者 网易获取音乐并发出来。
nonebot-plugin-petpet 依赖的 nonebot_plugin_imageutils 还是找不到所需字体。
06-13 16:35:06 [INFO] nonebot_plugin_imageutils | Failed to find font Arial:style=normal:variant=normal:weight=bold:stretch=normal:size=10.0, and fallback to the default font was disabled
06-13 16:35:06 [INFO] nonebot_plugin_imageutils | Failed to find font Tahoma:style=normal:variant=normal:weight=bold:stretch=normal:size=10.0, and fallback to the default font was disabled
06-13 16:35:06 [INFO] nonebot_plugin_imageutils | Failed to find font Helvetica Neue:style=normal:variant=normal:weight=bold:stretch=normal:size=10.0, and fallback to the default font was disabled
06-13 16:35:06 [INFO] nonebot_plugin_imageutils | Failed to find font Segoe UI:style=normal:variant=normal:weight=bold:stretch=normal:size=10.0, and fallback to the default font was disabled
06-13 16:35:06 [INFO] nonebot_plugin_imageutils | Failed to find font PingFang SC:style=normal:variant=normal:weight=bold:stretch=normal:size=10.0, and fallback to the default font was disabled
06-13 16:35:06 [INFO] nonebot_plugin_imageutils | Failed to find font Hiragino Sans GB:style=normal:variant=normal:weight=bold:stretch=normal:size=10.0, and fallback to the default font was disabled
06-13 16:35:06 [INFO] nonebot_plugin_imageutils | Failed to find font Microsoft YaHei:style=normal:variant=normal:weight=bold:stretch=normal:size=10.0, and fallback to the default font was disabled
06-13 16:35:06 [INFO] nonebot_plugin_imageutils | Failed to find font Source Han Sans SC:style=normal:variant=normal:weight=bold:stretch=normal:size=10.0, and fallback to the default font was disabled
06-13 16:35:06 [INFO] nonebot_plugin_imageutils | Failed to find font Noto Sans SC:style=normal:variant=normal:weight=bold:stretch=normal:size=10.0, and fallback to the default font was disabled
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
nonebot-plugin-alconna
, uvicorn
)docker-compose.yml
Dockerfile
.github/workflows/main.yml
actions/checkout v4
eifinger/setup-rye v4
codecov/codecov-action v4
actions/checkout v4
docker/setup-qemu-action v3
docker/setup-buildx-action v3
docker/login-action v3
docker/metadata-action v5
docker/build-push-action v6
docker/build-push-action v6
tailscale/github-action v2
tailscale/github-action v2
actions/checkout v4
getsentry/action-release v1
.github/workflows/release-draft.yml
release-drafter/release-drafter v6
pyproject.toml
pydantic >=2.8.2
matplotlib >=3.9.2
uvicorn >=0.30.5
uvicorn-worker >=0.2.0
gunicorn >=23.0.0
nonebot2 >=2.3.2
nb-cli >=1.4.1
nonebot-adapter-discord >=0.1.8
nonebot-adapter-dodo >=0.2.1
nonebot-adapter-kaiheila >=0.3.4
nonebot-adapter-onebot >=2.4.4
nonebot-adapter-qq >=1.5.0
nonebot-adapter-red >=0.9.0
nonebot-adapter-satori >=0.12.3
nonebot-adapter-telegram >=0.1.0b17
nonebot-plugin-wordcloud >=0.8.0
nonebot-plugin-treehelp >=0.5.0
nonebot-plugin-user >=0.4.1
nonebot-plugin-orm >=0.7.6
nonebot-plugin-apscheduler >=0.5.0
nonebot-plugin-send-anything-anywhere >=0.6.1
nonebot-plugin-alconna >=0.51.3
nonebot-plugin-datastore >=1.3.0
nonebot-plugin-sentry >=2.0.0
nonebot-plugin-memes ==0.7.7
nonebot-plugin-status ==0.8.1
nonebot-plugin-bawiki ==0.11.3
.python-version
给插件添加权限管理,不同权限的人能使用插件的不同功能(比如普通用户可以查看某些状态,而管理员可以修改一些设置)。
看到您在 #261 中已经将 Bot 同时支持 V11 和 V12 的 OneBot 适配器了,是一个 NoneBot2 + 一个 QQ 就可以了?
我想将自己的 Bot 也升级一下,部分简单的插件升级到 V12,剩余的仍然维持在 V11。但是我不太懂用一个 QQ 只运行一个 NoneBot2 是否可以(如何)同时支持 V11 和 V12。
我进行了以下尝试([BOTQQ]
为我的 Bot QQ 号码,[MYQQ]
为我的 QQ 号码):
在 NoneBot2(v2.0.0rc2) .env 中配置了 HOST
PORT
,同时在 bot.py 注册 V11 和 V12 两个适配器
HOST=0.0.0.0
PORT=7707
ONEBOT_API_ROOTS={"[BOTQQ]": "http://0.0.0.0:5711/"}
ONEBOT_V12_API_ROOTS={"[BOTQQ]": "http://0.0.0.0:5712/"}
使用 go-cqhttp(v1.0.0-rc4) 以 MacOS 协议登录用来对接 V11 适配器
servers:
- http:
address: 0.0.0.0:5711
- ws-reverse:
universal: ws://0.0.0.0:7707/onebot/v11/ws
使用 walle-q(v0.2.5-fix2) 以 iPad 协议登录用来对接 V12 适配器
[onebot]
http_webhook = []
websocket = []
[[onebot.http]]
host = "0.0.0.0"
port = 5712
[[onebot.websocket_rev]]
url = "ws://0.0.0.0:7707/onebot/v12/ws"
这样配置之后,依次启动 go-cqhttp、walle-q、NoneBot2,查看 NoneBot2 日志发现 OneBot V11 连接后会报错一次 RuntimeError: Duplicate bot connection with id [BOTQQ],之后又正常建立了 OneBot V12 连接。再之后似乎就开始正常工作了,但我不知道这样是否正确。
go-cqhttp
[2023-01-09 08:33:12] [WARNING]: 连接到反向WebSocket Universal服务器 ws://0.0.0.0:7707/onebot/v11/ws 时出现错误: dial tcp 0.0.0.0:7707: connect: connection refused
[2023-01-09 08:33:15] [INFO]: 开始尝试连接到反向WebSocket Universal服务器: ws://0.0.0.0:7707/onebot/v11/ws
[2023-01-09 08:33:15] [INFO]: 已连接到反向WebSocket Universal服务器 ws://0.0.0.0:7707/onebot/v11/ws
[2023-01-09 08:34:06] [INFO]: 收到好友 Monstx([MYQQ]) 的消息: 2 (186369373)
walle-q
23-01-09 08:33:12 WARN Walle-OBC: connect to ws://0.0.0.0:7707/onebot/v12/ws failed: Connection refused (os error 111)
23-01-09 08:33:12 INFO Walle-OBC: Retry in 4 seconds
23-01-09 08:33:16 INFO Walle-OBC: Success connect to ws://0.0.0.0:7707/onebot/v12/ws
23-01-09 08:33:16 WARN Walle-OBC: Disconnected from ws://0.0.0.0:7707/onebot/v12/ws
23-01-09 08:33:16 INFO Walle-OBC: Success connect to ws://0.0.0.0:7707/onebot/v12/ws
23-01-09 08:34:06 INFO walle-q: [message.private] user_name: "", message: "2", user_id: "[MYQQ]", self: platform: "qq", user_id: "[BOTQQ]", message_id: "[MYQQ] 27114 -1248751046 1673253246"
NoneBot2
01-09 08:33:12 [INFO] uvicorn | Application startup complete.
01-09 08:33:12 [INFO] uvicorn | Uvicorn running on http://0.0.0.0:7707 (Press CTRL+C to quit)
01-09 08:33:15 [INFO] uvicorn | ('127.0.0.1', 44688) - "WebSocket /onebot/v11/ws" [accepted]
01-09 08:33:15 [INFO] nonebot | OneBot V11 | Bot [BOTQQ] connected
01-09 08:33:15 [INFO] websockets | connection open
01-09 08:33:16 [INFO] uvicorn | ('127.0.0.1', 44694) - "WebSocket /onebot/v12/ws" [accepted]
01-09 08:33:16 [INFO] websockets | connection open
01-09 08:33:16 [ERROR] nonebot | OneBot V12 | Error while process data from websocket for bot [BOTQQ].
Traceback (most recent call last):
File "/home/msx/Service/qqbot/nonebot/.venv/bin/nb", line 8, in <module>
sys.exit(main())
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/nb_cli/commands/main.py", line 30, in run
run_bot(file, app)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/nb_cli/handlers/deploy.py", line 25, in run_bot
nonebot.run(app=f"{module_name}:{app}")
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/nonebot/__init__.py", line 273, in run
get_driver().run(*args, **kwargs)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/nonebot/drivers/fastapi.py", line 172, in run
uvicorn.run(
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/uvicorn/main.py", line 569, in run
server.run()
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/uvicorn/server.py", line 60, in run
return asyncio.run(self.serve(sockets=sockets))
File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/uvicorn/protocols/websockets/websockets_impl.py", line 238, in run_asgi
result = await self.app(self.scope, self.asgi_receive, self.asgi_send)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 78, in __call__
return await self.app(scope, receive, send)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/fastapi/applications.py", line 270, in __call__
await super().__call__(scope, receive, send)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/starlette/applications.py", line 124, in __call__
await self.middleware_stack(scope, receive, send)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/starlette/middleware/errors.py", line 149, in __call__
await self.app(scope, receive, send)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 68, in __call__
await self.app(scope, receive, sender)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
await self.app(scope, receive, send)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/starlette/routing.py", line 706, in __call__
await route.handle(scope, receive, send)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/starlette/routing.py", line 341, in handle
await self.app(scope, receive, send)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/starlette/routing.py", line 82, in app
await func(session)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/fastapi/routing.py", line 287, in app
await dependant.call(**values)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/nonebot/drivers/fastapi.py", line 127, in _handle
await self._handle_ws(websocket, setup)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/nonebot/drivers/fastapi.py", line 238, in _handle_ws
await setup.handle_func(ws)
> File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/nonebot/adapters/onebot/v12/adapter.py", line 301, in _handle_ws
self._handle_status_update(event, bots, websocket)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/nonebot/adapters/onebot/v12/adapter.py", line 497, in _handle_status_update
self.bot_connect(bot)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/nonebot/internal/adapter/adapter.py", line 58, in bot_connect
self.driver._bot_connect(bot)
File "/home/msx/Service/qqbot/nonebot/.venv/lib/python3.10/site-packages/nonebot/internal/driver/driver.py", line 134, in _bot_connect
raise RuntimeError(f"Duplicate bot connection with id {bot.self_id}")
RuntimeError: Duplicate bot connection with id [BOTQQ]
01-09 08:33:16 [INFO] uvicorn | ('127.0.0.1', 44706) - "WebSocket /onebot/v12/ws" [accepted]
01-09 08:33:16 [INFO] websockets | connection open
01-09 08:33:16 [INFO] websockets | connection closed
01-09 08:33:16 [INFO] nonebot | OneBot V12 | Bot [BOTQQ] connected
01-09 08:34:06 [SUCCESS] nonebot | OneBot V11 [BOTQQ] | [message.private.friend]: Message 186369373 from [MYQQ] "2"
01-09 08:34:06 [SUCCESS] nonebot | OneBot V12 [BOTQQ] | [message.private]: Message [MYQQ] 27114 -1248751046 1673253246 from [MYQQ] "2"
除了正确同时使用 V11 和 V12 适配器的问题,我还在想一个问题,两个适配器都显示接收到了同一条消息,那样同一条消息应该会被处理两次?💦💦
ujson module not found, using json
[2019-12-06 17:36:46,601 nonebot] INFO: Succeeded to import "plugins.ban"
[2019-12-06 17:36:46,602 nonebot] INFO: Succeeded to import "plugins.basic"
[2019-12-06 17:36:46,631 nonebot] INFO: Succeeded to import "plugins.bilibili"
[2019-12-06 17:36:46,682 nonebot] INFO: Succeeded to import "plugins.fflogs"
[2019-12-06 17:36:46,683 nonebot] INFO: Succeeded to import "plugins.gate"
[2019-12-06 17:36:46,685 nonebot] ERROR: recorder.pkl does not exist!
[2019-12-06 17:36:46,686 nonebot] INFO: Succeeded to import "plugins.history"
[2019-12-06 17:36:46,687 nonebot] INFO: Succeeded to import "plugins.morning"
[2019-12-06 17:36:46,688 nonebot] INFO: Succeeded to import "plugins.music"
[2019-12-06 17:36:46,688 nonebot] INFO: Succeeded to import "plugins.rand"
[2019-12-06 17:36:46,688 nonebot] INFO: Succeeded to import "plugins.rank"
[2019-12-06 17:36:46,689 nonebot] INFO: Succeeded to import "plugins.recorder"
[2019-12-06 17:36:46,690 nonebot] INFO: Succeeded to import "plugins.repeat"
[2019-12-06 17:36:46,691 nonebot] INFO: Succeeded to import "plugins.robot"
[2019-12-06 17:36:46,692 nonebot] INFO: Succeeded to import "plugins.roll"
[2019-12-06 17:36:46,692 nonebot] INFO: Succeeded to import "plugins.status"
Building prefix dict from the default dictionary ...
Loading model from cache /tmp/jieba.cache
Loading model cost 0.856 seconds.
Prefix dict has been built succesfully.
[2019-12-06 17:36:47,558 nonebot] INFO: Succeeded to import "plugins.weather"
[2019-12-06 17:36:47,558 nonebot] INFO: Running on 0.0.0.0:8080
Running on https://0.0.0.0:8080 (CTRL + C to quit)
[2019-12-06 17:36:47,559] ASGI Framework Lifespan error, continuing without Lifespan support
[2019-12-06 17:36:47,561 nonebot] INFO: Scheduler started
[2019-12-06 17:36:51,698 nonebot] DEBUG: 当前无法获取酷Q状态
[2019-12-06 17:36:56,699 nonebot] DEBUG: 当前无法获取酷Q状态
升级至 Nonebot 2。
Sentry Issue: COOLQBOT-G9
2023-12-04 10:01:58.120 | INFO | nonebot:log:270 - Kaiheila | Bot xxxxx connected
RuntimeError: nonebot-plugin-orm 未初始化
(4 additional frame(s) were not displayed)
...
File "nonebot/dependencies/__init__.py", line 209, in _solve_field
value = await param._solve(**params)
File "nonebot/internal/params.py", line 221, in _solve
return await task
File "contextlib.py", line 638, in enter_async_context
result = await _enter(cm)
File "contextlib.py", line 204, in __aenter__
return await anext(self.gen)
File "__init__.py", line 128, in get_scoped_session
raise RuntimeError("nonebot-plugin-orm 未初始化") from None
2023-12-04 10:01:58.139 | ERROR | nonebot:_run_hook:158 - Error when running WebSocketConnection hook. Running cancelled!
Traceback (most recent call last):
File "/usr/local/bin/gunicorn", line 8, in <module>
sys.exit(run())
| | -> <function run at 0x7f43ef0ed580>
| -> <built-in function exit>
-> <module 'sys' (built-in)>
File "/usr/local/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py", line 67, in run
WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
-> <class 'gunicorn.app.wsgiapp.WSGIApplication'>
File "/usr/local/lib/python3.11/site-packages/gunicorn/app/base.py", line 231, in run
super().run()
File "/usr/local/lib/python3.11/site-packages/gunicorn/app/base.py", line 72, in run
Arbiter(self).run()
| -> <gunicorn.app.wsgiapp.WSGIApplication object at 0x7f43ef0fc3d0>
-> <class 'gunicorn.arbiter.Arbiter'>
File "/usr/local/lib/python3.11/site-packages/gunicorn/arbiter.py", line 202, in run
self.manage_workers()
| -> ...
将机器人框架切换成 NoneBot 以支持自然语言处理,和权限管理。
/dps @blabla
无法使用。
现在 Azure Pipelines 的设置,只要我更新文档,都会导致机器人重启。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.