add docs back

This commit is contained in:
felinae98 2021-12-07 21:58:00 +08:00
parent acef916f5a
commit ec4849fe5b
No known key found for this signature in database
GPG Key ID: 00C8B010587FF610
6 changed files with 8211 additions and 0 deletions

12
docs/.vuepress/config.js Normal file
View File

@ -0,0 +1,12 @@
module.exports = {
title: 'Nonebot HK Reporter',
description: 'Docs for Nonebot HK Reporter',
themeConfig: {
nav: [
{ text: '主页', link: '/' },
{ text: '部署与使用', link: '/usage/' },
{ text: '开发', link: '/dev/' },
{ text: 'Github', link: 'https://github.com/felinae98/nonebot-hk-reporter' }
]
}
}

15
docs/README.md Normal file
View File

@ -0,0 +1,15 @@
---
home: true
heroText: Nonebot Bison
tagline: 本bot励志做全泰拉骑车最快的信使
actionText: 快速部署
actionLink: /usage/
features:
- title: 拓展性强
details: 没有自己想要的网站?只要简单的爬虫知识就可以给它适配一个新的网站
- title: 通用,强大
details: 社交媒体?网站更新?游戏开服?只要能爬就都能推,还支持自定义过滤
- title: 后台管理
details: 提供后台管理页面,简单快捷修改配置
footer: MIT Licensed
---

53
docs/dev/README.md Normal file
View File

@ -0,0 +1,53 @@
---
sidebar: auto
---
# 开发指南
本插件需要你的帮助!只需要会写简单的爬虫,就能给本插件适配新的网站。
## 基本概念
* `nonebot_bison.post.Post`: 可以理解为推送内容,其中包含需要发送的文字,图片,链接,平台信息等
* `nonebot_bison.types.RawPost`: 从站点/平台中爬到的单条信息
* `nonebot_bison.types.Target`: 目标账号Bilibili微博等社交媒体中的账号
* `nonebot_bison.types.Category`: 信息分类,例如视频,动态,图文,文章等
* `nonebot_bison.types.Tag`: 信息标签例如微博中的超话或者hashtag
## 快速上手
上车!我们走
先明确需要适配的站点类型,先明确两个问题:
#### 我要发送什么样的推送
* `nonebot_bison.platform.platform.NewMessage` 最常见的类型,每次爬虫向特定接口爬取一个消息列表,
与之前爬取的信息对比,过滤出新的消息,再根据用户自定义的分类和标签进行过滤,最后处理消息,把
处理过后的消息发送给用户
例如微博Bilibili
* `nonebot_bison.platform.platform.StatusChange` 每次爬虫获取一个状态,在状态改变时发布推送
例如:游戏开服提醒,主播上播提醒
* `nonebot_bison.platform.platform.SimplePost``NewMessage`相似,但是不过滤新的消息
,每次发送全部消息
例如:每日榜单定时发送
#### 这个平台是否有账号的概念
* `nonebot_bison.platform.platform.TargetMixin` 有账号的概念
例如Bilibili用户微博用户
* `nonebot_bison.platform.platform.NoTargetMixin` 没有账号的概念
例如:游戏公告,教务处公告
现在你已经选择了两个类,现在你需要在`src/plugins/nonebot_bison/platform`下新建一个py文件
在里面新建一个类,继承你刚刚选择的两个类,重载一些关键的函数,然后……就完成了,不需要修改别的东西了。
例如要适配微博微博有账号并且我希望bot搬运新的消息所以微博的类应该这样定义
```python
class Weibo(NewMessage, TargetMixin):
...
```
当然我们非常希望你对自己适配的平台写一些单元测试,你可以模仿`tests/platforms/test_*.py`中的内容写
一些单元测试。为保证多次运行测试的一致性可以mock http的响应测试的内容包括获取RawPost处理成Post
测试分类以及提取tag等当然最好和rsshub做一个交叉验证。
::: danger
Nonebot项目使用了全异步的处理方式所以你需要对异步Python asyncio的机制有一定了解当然
依葫芦画瓢也是足够的
:::
## 类的方法与成员变量
## 方法与变量的定义

106
docs/usage/README.md Normal file
View File

@ -0,0 +1,106 @@
---
sidebar: auto
---
# 部署和使用
本节将教你快速部署和使用一个nonebot-bison如果你不知道要选择哪种部署方式推荐使用[docker-compose](#docker-compose部署-推荐)
## 部署
本项目可以作为单独的Bot使用可以作为nonebot2的插件使用
### 作为Bot使用
额外提供自动同意超级用户的好友申请和同意超级用户的加群邀请的功能
#### docker-compose部署推荐
1. 在一个新的目录中下载[docker-compose.yml](https://raw.githubusercontent.com/felinae98/nonebot-bison/main/docker-compose.yml)
将其中的`<your QQ>`改成自己的QQ号
```bash
wget https://raw.githubusercontent.com/felinae98/nonebot-bison/main/docker-compose.yml
```
2. 运行配置go-cqhttp
```bash
docker-compose run go-cqhttp
```
通信方式选择:`3: 反向 Websocket 通信`
编辑`bot-data/config.yml`,更改下面字段:
```
account: # 账号相关
uin: <QQ号> # QQ账号
password: "<QQ密码>" # 密码为空时使用扫码登录
message:
post-format: array
............
servers:
- ws-reverse:
universal: ws://nonebot:8080/cqhttp/ws # 将这个字段写为这个值
```
3. 登录go-cqhttp
再次
```bash
docker-compose run go-cqhttp
```
参考[go-cqhttp文档](https://docs.go-cqhttp.org/faq/slider.html#%E6%96%B9%E6%A1%88a-%E8%87%AA%E8%A1%8C%E6%8A%93%E5%8C%85)
完成登录
4. 确定完成登录后启动bot
```bash
docker-compose up -d
```
#### docker部署
本项目的docker镜像为`felinae98/nonebot-bison`可以直接pull后run进行使用
相关配置参数可以使用`-e`作为环境变量传入
#### 直接运行(不推荐)
可以参考[nonebot的运行方法](https://v2.nonebot.dev/guide/getting-started.html)
::: danger
直接克隆源代码需要自行编译前端,否则会出现无法使用管理后台等情况。
:::
::: danger
本项目中使用了Python 3.9的语法如果出现问题请检查Python版本
:::
1. 首先安装poetry[安装方法](https://python-poetry.org/docs/#installation)
2. clone本项目在项目中`poetry install`安装依赖
2. 安装yarn配置yarn源推荐
3. 在`admin-fronted`中运行`yarn && yarn build`编译前端
3. 编辑`.env.prod`配置各种环境变量,见[Nonebot2配置](https://v2.nonebot.dev/guide/basic-configuration.html)
4. 运行`poetry run python bot.py`启动机器人
### 作为插件使用
本部分假设大家会部署nonebot2
#### 手动安装
1. 安装pip包`nonebot-bison`
2. 在`bot.py`中导入插件`nonebot_bison`
### 自动安装
使用`nb-cli`执行:`nb plugin install nonebot_bison`
## 配置
可参考[源文件](https://github.com/felinae98/nonebot-bison/blob/main/src/plugins/nonebot_bison/plugin_config.py)
* `BISON_CONFIG_PATH`: 插件存放配置文件的位置,如果不设定默认为项目目录下的`data`目录
* `BISON_USE_PIC`: 将文字渲染成图片后进行发送,多用于规避风控
* `BISON_BROWSER`: 本插件使用Chrome来渲染图片
* 使用browserless提供的Chrome管理服务设置为`ws://xxxxxxxx`值为Chrome Endpoint推荐
* 使用本地安装的Chrome设置为`local:<chrome path>`,例如`local:/usr/bin/google-chrome-stable`
* 如果不进行配置,那么会在启动时候自动进行安装(不推荐)
* `BISON_OUTER_URL`: 从外部访问服务器的地址,默认为`http://localhost:8080/bison`,如果你的插件部署
在服务器上,建议配置为`http://<你的服务器ip>:8080/bison`
## 使用
::: warning
本节假设`COMMAND_START`设置中包含`''`如果出现bot不响应的问题请先
排查这个设置
:::
### 命令
#### 在本群中进行配置
所有命令都需要@bot触发
* 添加订阅仅管理员和群主和SUPERUSER`添加订阅`
* 查询订阅:`查询订阅`
* 删除订阅仅管理员和群主和SUPERUSER`删除订阅`
#### 私聊机器人获取后台地址
`后台管理`
#### 私聊机器人进行配置需要SUPERUER权限
* 添加订阅:`管理-添加订阅`
* 查询订阅:`管理-查询订阅`
* 删除订阅:`管理-删除订阅`
### 所支持平台的uid
#### Weibo
* 对于一般用户主页`https://weibo.com/u/6441489862?xxxxxxxxxxxxxxx``/u/`后面的数字即为uid
* 对于有个性域名的用户如:`https://weibo.com/arknights`,需要点击左侧信息标签下“更多”,链接为`https://weibo.com/6279793937/about`其中中间数字即为uid
#### Bilibili
主页链接一般为`https://space.bilibili.com/161775300?xxxxxxxxxx`数字即为uid
#### RSS
RSS链接即为uid

17
package.json Normal file
View File

@ -0,0 +1,17 @@
{
"name": "nonebot-bison-docs",
"version": "1.0.0",
"description": "Docs for nonebot-bison",
"main": "index.js",
"repository": "git@github.com:felinae98/nonebot-bison-docs.git",
"author": "felinae98 <731499577@qq.com>",
"license": "MIT",
"private": false,
"devDependencies": {
"vuepress": "^1.8.2"
},
"scripts": {
"docs:dev": "vuepress dev docs",
"docs:build": "vuepress build docs"
}
}

8008
yarn.lock Normal file

File diff suppressed because it is too large Load Diff