mirror of
https://github.com/nonebot/nonebot2.git
synced 2024-09-21 05:12:34 +00:00
Add docs
This commit is contained in:
parent
4091a43121
commit
675ebfce6b
34
README.md
34
README.md
@ -1,16 +1,18 @@
|
|||||||
# QQBot
|
# XiaoKai Bot 小开机器人
|
||||||
|
|
||||||
此 QQBot 非彼 QQBot,不是对 SmartQQ 的封装,而是基于开源的 [sjdy521/Mojo-Webqq](https://github.com/sjdy521/Mojo-Webqq) 实现的对消息的自动处理程序,支持自定义插件。
|
基于 [sjdy521/Mojo-Webqq](https://github.com/sjdy521/Mojo-Webqq) 实现的对 QQ 消息的自动处理机器人,支持自定义插件。
|
||||||
|
|
||||||
## 如何部署
|
## 快速开始
|
||||||
|
|
||||||
|
### 部署
|
||||||
|
|
||||||
推荐使用 Docker 部署,因为基本可以一键开启,如果你想手动运行,也可以参考第二个小标题「手动部署」。
|
推荐使用 Docker 部署,因为基本可以一键开启,如果你想手动运行,也可以参考第二个小标题「手动部署」。
|
||||||
|
|
||||||
### 使用 Docker
|
#### 使用 Docker
|
||||||
|
|
||||||
本仓库根目录下的 `docker-compose.yml` 即为 Docker Compose 的配置文件,直接跑就行。如果你想对镜像进行修改,可以自行更改 Dockerfile 来构建或者继承已经构建好的镜像。
|
本仓库根目录下的 `docker-compose.yml` 即为 Docker Compose 的配置文件,直接跑就行。如果你想对镜像进行修改,可以自行更改 Dockerfile 来构建或者继承已经构建好的镜像。
|
||||||
|
|
||||||
### 手动运行
|
#### 手动运行
|
||||||
|
|
||||||
首先需要运行 sjdy521/Mojo-Webqq,具体见它的 GitHub 仓库的使用教程。然后运行:
|
首先需要运行 sjdy521/Mojo-Webqq,具体见它的 GitHub 仓库的使用教程。然后运行:
|
||||||
|
|
||||||
@ -21,15 +23,25 @@ python app.py
|
|||||||
|
|
||||||
注意要求 Python 3.x。
|
注意要求 Python 3.x。
|
||||||
|
|
||||||
|
## 使用
|
||||||
|
|
||||||
|
![](https://raw.githubusercontent.com/CCZU-DEV/xiaokai-bot/master/docs/assets/Screenshot.png)
|
||||||
|
|
||||||
|
## 局限性
|
||||||
|
|
||||||
|
由于 QQ 的限制,现有下列问题:
|
||||||
|
|
||||||
|
- 可能无法连续在线较长时间,因此需要频繁重启服务(大约一到两天一次)
|
||||||
|
- 无法处理临时消息和讨论组消息
|
||||||
|
- 单条消息无法发送很长的内容
|
||||||
|
- 有时候群消息会被屏蔽,私聊消息则正常
|
||||||
|
|
||||||
## 插件
|
## 插件
|
||||||
|
|
||||||
程序支持两种插件形式,一种是过滤器/Filter,一种是命令/Command。
|
程序支持两种插件形式,一种是过滤器/Filter,一种是命令/Command。
|
||||||
|
|
||||||
本质上程序主体是一个 web app,接受 sjdy521/Mojo-Webqq 的 POST 请求,从而收到消息。收到消息后,首先运行过滤器,按照优先级从大到小顺序运行 `filters` 目录中的 `.py` 文件中指定的过滤器函数,函数返回非 False 即表示不拦截消息,从而消息继续传给下一个过滤器,如果返回了 False,则消息不再进行后续处理,而直接抛弃。过滤器运行完之后,会开始按照命令执行,首先根据命令的开始标志判断有没有消息中有没有指定命令,如果指定了,则执行指定的命令,如果没指定,则看当前用户有没有开启交互式会话,如果开启了会话,则执行会话指定的命令,否则,使用默认的 fallback 命令。
|
收到消息后,依次运行所有过滤器,即按照优先级从大到小顺序运行 `filters` 目录中的 `.py` 文件中指定的过滤器函数,函数返回非 False 即表示不拦截消息,从而消息继续传给下一个过滤器,如果返回了 False,则消息不再进行后续处理,而直接抛弃。
|
||||||
|
|
||||||
过滤器和命令的使用场景区别:
|
命令分发器(`filters/command_dispatcher.py`)是一个预设的优先级为 0 的过滤器,它根据命令的开始标志判断消息中有没有指定命令,如果指定了,则执行指定的命令,如果没指定,则看当前用户有没有开启交互式会话,如果开启了会话,则执行会话指定的命令,否则,使用默认的 fallback 命令。
|
||||||
|
|
||||||
- 过滤器:可用于消息的后台日志、频率控制、关键词分析,一般在使用者无意识的情况下进行;
|
用户可以自行编写插件来扩展功能,具体请看 [文档](https://cczu-dev.github.io/xiaokai-bot/)。
|
||||||
- 命令:使用者有意识地想要使用某个给定的命令的功能。
|
|
||||||
|
|
||||||
关于过滤器和命令的细节,请参考 [编写过滤器](Write_Filter.md) 和 [编写命令](Write_Command.md)。
|
|
||||||
|
2
app.py
2
app.py
@ -3,7 +3,7 @@ import importlib
|
|||||||
|
|
||||||
from flask import Flask, request
|
from flask import Flask, request
|
||||||
|
|
||||||
from little_shit import *
|
from little_shit import SkipException, get_filters_dir
|
||||||
from filter import apply_filters
|
from filter import apply_filters
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
BIN
docs/assets/Screenshot.png
Normal file
BIN
docs/assets/Screenshot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 186 KiB |
26
docs/config.js
Normal file
26
docs/config.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
self.$config = {
|
||||||
|
title: 'XiaoKai Bot 文档',
|
||||||
|
home: 'https://raw.githubusercontent.com/CCZU-DEV/xiaokai-bot/master/README.md',
|
||||||
|
repo: 'CCZU-DEV/xiaokai-bot',
|
||||||
|
url: 'https://cczu-dev.github.io/xiaokai-bot',
|
||||||
|
'edit-link': 'https://github.com/CCZU-DEV/xiaokai-bot/blob/master/docs',
|
||||||
|
nav: {
|
||||||
|
default: [
|
||||||
|
{
|
||||||
|
title: '首页', path: '/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '编写插件', type: 'dropdown',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: '过滤器', path: '/Write_Filter'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '命令', path: '/Write_Command'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
plugins: []
|
||||||
|
}
|
20
docs/index.html
Normal file
20
docs/index.html
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta http-equiv="cleartype" content="on">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" />
|
||||||
|
<title>XiaoKai Bot 文档</title>
|
||||||
|
<link rel="stylesheet" href="https://unpkg.com/docute@latest/dist/docute.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- don't remove this part -->
|
||||||
|
<div id="app"></div>
|
||||||
|
<script src="./config.js"></script>
|
||||||
|
<script src="https://unpkg.com/docute@latest/dist/docute.js"></script>
|
||||||
|
<!-- don't remove this part -->
|
||||||
|
<script src="https://unpkg.com/highlight-languages/python.js"></script>
|
||||||
|
<script src="https://unpkg.com/highlight-languages/bash.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user