Skip to content

LambdaYH/MigangBot

Repository files navigation

图片来自:暖暖与美梦神

MigangBot
基于Nonebot2的米缸Bot

Codacy Badgelicensepython

关于

自用Bot,开发中。没学过Python所以是乱写的

基于nonebot2,插件和素材来自缝合自各地的米缸Bot

思路和素材很大程度上来自HibiKier/zhenxun_bot

部署

Docker Compose(推荐)
  1. 新建文件夹,例如bot,bot目录下新建gocqhttpmigangbot文件夹。

  2. 下载docker/docker-compose.ymlbotdocker/.env.prodbot/migangbot

  3. 修改.env.prod

  4. docker compose up -d,若未修改docker-compose.yml,bot将开放在本地1206端口

Debian/Ubuntu下的部署 ⚠️ 仅在Debian11 + Python3.10 + Postgres 下测试过
  1. 安装系统依赖
sudo apt install libopencv-dev fonts-noto
  1. 安装Postgres并创建数据库(如果不用Postgres就默认使用sqlite,db文件在data/database/migangbot.db
sudo apt install postgresql postgresql-contrib
sudo su - postgres
psql
CREATE USER migangbot_user WITH PASSWORD 'migangbot_password';
CREATE DATABASE migangbot_db OWNER migangbot_user;
  1. 安装Python3.10(编译安装或者用包管理器)
编译安装
  1. 安装依赖
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev
  1. 下载源码并解压
wget https://www.python.org/ftp/python/3.10.10/Python-3.10.10.tgz
tar -zxvf Python-3.10.10.tgz
  1. 编译
cd Python-3.10.10/
./configure --enable-optimizations
make -j 2
  1. 安装
sudo make altinstall
包管理器 不知道哪个发行版的默认python3是python3.10
  1. 安装pdm
pip3.10 install pdm
  1. 下载MigangBot并安装依赖
git clone https://github.com/LambdaYH/MigangBot.git
cd MigangBot
pdm install
  1. 配置数据库(若跳过这步则使用sqlite)
cp db_config.yaml.example db_config.yaml

并完成db_config.yaml的编辑

  1. 启动一次Bot生成各项配置文件
# 先编辑 .env.prod
nb run
  1. 编辑所需文件(参考运行时各文件/路径说明
  2. 持久化运行(二选一)
  • 使用supervisor
sudo apt install supervisor
cd scripts
python generate_supervisor_conf.py
cp migangbot.conf /etc/supervisor/conf.d/
sudo supervisorctl update
  • 使用screen
sudo apt install screen
python scripts/generate_run_script.py
screen -S migangbot
pdm run all

可用功能(部分)

帮助图片 从 zhenxun_bot 那改的样式

群被动 微博推送是自己配置的

运行时各文件/路径说明

路径/文件名 说明
configs/ 存储着yaml格式的各插件配置项,请按需修改
resources/ 一些资源,主要是字体
data/ 各插件运行时数据
data/core/ 存储着Bot核心运行数据,可按需修改
data/core/count_manager.json 记录各插件的使用次数,方便进行使用次数限制,一般无需修改
data/core/help/ 存储各项帮助图片缓存,一般无需修改
data/core/plugin_manager/ 存储插件的配置项,可按需修改,尤其是可对来自插件商店的插件进行修改
data/core/task_manager/ 存储群被动配置项,一般无需修改
data/core/custom_usage.yaml 自定义插件的使用说明,格式为插件名: 使用说明
data/core/default_value_cache.json 记录默认值缓存,不要改
data/core/permission_manager.json 当存在定时设置的权限时,该定时项会持久化到这个文件

data/core/plugin_manager/*.json 各键值说明

文件名是插件名

键值 说明 类型
name 插件显示出来的名字 str
aliases 别名 List[str]
group_permission >=此群权限的群才可触发该插件 int(1 - 5)
user_permission >=此用户权限的用户才可触发该插件 int(1 - 5)
global_status 全局启用状态 bool
default_status 默认启用状态 bool
enabled_group 启用的群,仅默认启用状态为false时生效 List[int]
disabled_group 禁用的群,仅默认启用状态为true时生效 List[int]
category 插件类别,用于帮助图片中的分类显示 str
hidden 是否在帮助界面中隐藏 bool
author 插件作者,虽然放着这么一个项,但是完全没用 str
version 插件版本,虽然放着这么一个项,但是完全没用 any

data/core/custom_usage.yaml 说明

  • text: 直接写就行
  • markdown: 说明的开头加上[md],可选择性添加[width=xxx]来指定生成的图片宽度
  • html: 说明的开头加上[html],可选择性添加[width=xxx,height=xxx]来指定宽度与高度

致谢