Kook 基础功能扩展机器人,同时包含大量为「斯普拉遁-加鱿站」定制的功能
感谢 Jetbrains 提供的免费开源证书支持!写 C#,就选 Rider,纵享丝滑
- 指令权限管理
- 通俗易懂的全局帮助
- 多阶段指令(可回退)
- 临时文本频道
- 游戏组队功能(点击自动创建临时语音/临时文本频道)
- 频道组(根据条件创建和管理一组频道)
- 每日打卡
- 活跃度系统
- 自定义投票
- 信息收集表
- 分页卡片
- 倒计时频道名
- 计分板
- 根据最后消息时间自动排序频道
- 与其他相关 Bot 联动
- 配装搜索
- 私房规则选择器
- 安装 dotnet 8 环境
- 执行
Infrastructure
文件夹下的 Postgres.compose.yml 文件创建数据库 - 重命名
Jellyfish/appsettings.json
到Jellyfish/appsettings.Development.json
,并更新配置 - 在
Jellyfish
目录下执行dotnet tool install --global dotnet-ef && dotnet ef database update
- 主函数运行
Jellyfish/src/Jellyfish.cs
├── Infrastructure // 基础设施脚本
│ └── Postgres.compose.yml // 数据库部署脚本
├── Jellyfish // 项目应用源码
│ ├── Migrations // 数据库迁移脚本
│ ├── Properties // IDE 配置脚本
│ │ └── launchSettings.json // IDE 启动配置
│ ├── Resources // 应用资源文件
│ │ └── NLog.config // 应用 Log 格式配置文件
│ ├── src // 应用源码根目录
│ │ ├── Client // 外接 API 客户端
│ │ ├── Core // 核心组件
│ │ ├── Custom // 自定义模块(用于对特定的游戏/话题进行扩展,不通用)
│ │ ├── Module // 功能模块(通用于所有的 Kook 服务器)
│ │ ├── Util // 工具类
│ │ └── Jellyfish.cs // 程序入口
│ ├── Dockerfile // 应用打包部署脚本
│ ├── Jellyfish.csproj // 项目文件
│ ├── appsettings.Development.json // 开发配置文件
│ ├── appsettings.Production.json // 生产配置文件
│ └── appsettings.json // 应用配置文件模板
├── CHANGELOG.md // 更新记录(手动更新)
├── appsettings.json // 程序配置文件模板
├── Jellyfish.sln // 解决方案文件
├── LICENSE // 证书文件
├── README.md // 项目说明文件
└── justfile // 常用指令合集
{
// 日志开关配置
"Logging": {
// 日志等级配置
"LogLevel": {
// 默认输出 Info 级别日志
"Default": "Information",
// 关闭 .Net Core 服务器链接日志,只保留 Warning 级别日志
"Microsoft.AspNetCore": "Warning"
},
// 使用 NLog 替代自带日志系统
"NLog": {
"IncludeScopes": true,
"RemoveLoggerFactoryFilter": true
}
},
// .Net Core 服务器开放访问地址范围
"AllowedHosts": "*",
// Postgres 数据库连接字符串,请在连接前指定时区参数,如:TimeZone=Asia/Shanghai 以使用正确的时区
"DatabaseConnection": "",
// Kook 相关配置
"Kook": {
// Bot websocket token
"Token": "",
// 是否启用调试日志(为避免日志溢出不要在生产环境打开)
"EnableDebug": false,
// 连接 Kook 服务器超时
"ConnectTimeout": 6000
},
// Puppeteer 配置,用于调用 Chromium 实现爬虫和渲染等功能
"Puppeteer": {
// 浏览器路径(下面为 Docker 内的浏览器路径)
"ChromiumPath": "/usr/bin/chromium",
// 额外启动参数
"ExtraArgs": [
"--no-sandbox",
"--accept-lang=zh-CN",
"--proxy-server=127.0.0.1:7890",
"--ignore-certificate-errors"
]
},
// NLog 详细配置
"NLog": {
}
}
国内部分地区 DNS 被污染,若启动后始终无法受到消息,请添加以下地址解析内容:
203.107.54.174 kaiheila.cn
101.201.199.174 ws.kaiheila.cn
39.102.47.15 www.kookapp.cn
203.107.54.174 kookapp.cn
- Kook.Net
- NLog
- EntityFrameworkCore
- Newtonsoft.Json
- Z.ExtensionMethods
- FluentScheduler
- Polly
- Autofac
- PuppeteerSharp
- SkiaSharp
- 执行
Infrastructure
文件夹下的 Postgres.compose.yml 文件创建数据库 - 重命名
Jellyfish/appsettings.json
到Jellyfish/appsettings.Production.json
,并更新配置 - 在根目录下执行
just migrate && just deploy
进行部署