基于 LeiZ API 开发的多功能 AstrBot 插件,提供 Pixiv 随机图片获取、每日一言、天气查询、男娘图片获取、网易云音乐点歌、JMComic 漫画获取 及 DG-LAB 设备管理 等功能。
本插件是一个集成了多种实用功能的 AstrBot 插件,专为提升聊天机器人交互体验而设计。通过简洁的命令接口,用户可以轻松获取各类内容和服务,并支持对 DG-LAB 设备进行完整的生命周期管理。
同时提供 Qtine / OneBot v11 兼容包,见下方「Qtine 安装」。AstrBot 主入口及原有富媒体行为保持不变。
- 🎨 Pixiv 随机图片:获取随机 Pixiv 图片,支持 R18 内容、标签筛选、关键词搜索、指定作者等
- ✨ 每日一言:获取随机一言(支持动画、漫画、游戏、文学等 12 种分类)
- 🌤️ 天气查询:实时查询城市天气信息及未来 3 天天气预报
- 👗 男娘图片:随机获取男娘主题图片(需配置 API 密钥)
- 📚 JMComic 漫画:搜索漫画、查看详情、获取章节图片、随机推荐
- 🎵 网易云音乐:点歌、搜索歌曲、获取播放链接和歌曲详情
- 🔌 DG-LAB 设备管理:完整的 DG-LAB Socket V2 设备控制,包括绑定/解绑、强度调节、电击启停、波形发送、实时反馈等
- ⚡ 异步高性能:基于 aiohttp 的异步请求,响应迅速
- 🛡️ 完善错误处理:网络异常、API 错误、参数错误等均有友好提示
- ⚙️ 灵活配置:支持在 AstrBot 管理面板中自定义默认参数
- 👥 多用户隔离:DG-LAB 模块支持多用户并发使用,操作完全隔离
所有指令均支持中文别名,用户输入中文命令也能触发对应功能:
| 英文指令 | 中文别名 | 功能 |
|---|---|---|
/pixiv |
/图片 |
Pixiv 随机图片 |
/hitokoto |
/一言 |
每日一言 |
/weather |
/天气 |
天气查询 |
/femboy |
/男娘 |
男娘图片 |
/jm |
/漫画 |
JMComic 漫画 |
/jmcommend |
/漫画推荐 |
漫画随机推荐 |
/music |
/音乐 |
网易云音乐 |
/dglab |
/电击 |
DG-LAB 设备管理 |
子命令中文别名:
| 命令 | 英文子命令 | 中文子命令 |
|---|---|---|
/jm (漫画) |
search / detail / chapter |
搜索 / 详情 / 章节 |
/music (音乐) |
search / id: |
搜索 / 编号: |
/dglab (电击) |
bind / unbind / strength / up / down / shock / stop / clear / pulse / feedback / status / info / permission |
绑定 / 解绑 / 强度 / 增加 / 减少 / 电击 / 停止 / 清空 / 波形 / 反馈 / 状态 / 信息 / 权限 |
在 AstrBot 管理面板的插件市场中搜索 astrbot_plugin_currentcortex 并安装。
cd AstrBot/data/plugins
git clone https://github.com/backrooms-yrc/astrbot_plugin_currentcortex.gitpip install aiohttp>=3.8.0 websockets>=10.0
⚠️ DG-LAB 功能需要websockets库,请确保已安装。
Qtine 使用当前加载器要求的标准外部插件结构。将本仓库中的 qtine/ 目录复制(或软链接)到 Qtine 的外部插件目录,目录内必须保留 main.py、data.json 与 requirements.txt:
cp -a qtine/ /path/to/Qtine/plugins/currentcortex/
# 请按实际安装目录调整;目录名应为 currentcortex,而不是 AstrBot 插件根目录。Qtine 配置项会在插件配置面板中注册,包含 AstrBot _conf_schema.json 的所有默认参数。Qtine 的持久化 JSON 记录和 DG-LAB 二维码保存在 qtine/data/,不会依赖 Qtine 进程的工作目录。
Qtine 富媒体通过 OneBot v11 CQ 码发送:图片为 [CQ:image,...]、语音为 [CQ:record,...]、下载文件为 [CQ:file,...]。Qtine 不负责媒体上传或能力探测,需使用支持本地 file:// 和 CQ 码的 QQ OneBot 实现(例如已正确配置的 NapCat)。图片、音乐、媒体解析和 DG-LAB 二维码均会使用该通道;JMComic 的合并转发会降级为一条文本和顺序图片 CQ 码。请在目标 OneBot 实现中验证展示效果。
音乐语音仍依赖系统
ffmpeg。若适配器不支持 record/file CQ 码,插件会保留文本播放链接或提示,但无法由 Qtine 代替适配器上传媒体。
- AstrBot >= 3.4.0(AstrBot 运行时)
- Qtine(Qtine 兼容包运行时)
- Python >= 3.10
- aiohttp >= 3.8.0
- websockets >= 10.0(DG-LAB 功能必需)
通过 LeiZ API 获取随机 Pixiv 图片,支持丰富的筛选和搜索功能。
| 指令 | 说明 |
|---|---|
/pixiv(或 /图片) |
获取一张随机全年龄图片 |
/pixiv help |
显示帮助信息 |
使用 key:value 格式指定参数,多个参数用空格分隔:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
r18: |
int | 0 | R18 模式:0=全年龄,1=仅R18,2=混合 |
tag: |
string | - | 标签筛选,多个标签用 | 分隔(OR 匹配),多个 tag 参数为 AND 匹配 |
keyword: |
string | - | 标题/作者/标签模糊搜索 |
num: |
int | 1 | 获取数量(1-20) |
size: |
string | regular | 图片尺寸:original/regular/small/thumb/mini |
excludeAI: |
bool | false | 是否排除 AI 生成作品 |
uid: |
int | - | 指定作者 UID |
ratio: |
string | - | 长宽比筛选,如 gt1.2lt1.8 |
| 快捷词 | 等同于 |
|---|---|
r18 |
r18:1 |
mixed |
r18:2 |
safe / sfw |
r18:0 |
# 基础用法
/pixiv # 随机全年龄图片
/pixiv r18:1 # 随机 R18 图片
/pixiv help # 显示帮助
# 高级搜索
/pixiv r18:1 tag:白丝 num:3 # 获取3张白丝R18图
/pixiv keyword:初音ミク num:5 # 搜索初音未来相关图片
/pixiv tag:萝莉 excludeAI:true # 排除AI的萝莉标签图片
/pixiv uid:123456 num:3 # 获取指定作者的作品
# 组合筛选
/pixiv r18:2 tag:白丝 keyword:初音ミク num:3 size:original
# 快捷语法
/pixiv r18 # 等同于 r18:1
/pixiv mixed # 等同于 r18:2
/pixiv safe # 等同于 r18:0
📷 [1/3]
🎨 冬日午后
👤 作者:SampleArtist
🔗 https://www.pixiv.net/artworks/12345678
🏷️ 标签:オリジナル / 女の子 / 冬 / 雪
📐 尺寸:1920×1080
[图片]
获取来自社区贡献的随机一言,支持多分类选择。
| 指令 | 说明 |
|---|---|
/hitokoto(或 /一言) |
获取一条随机一言(默认全部分类) |
/hitokoto <分类代码> |
获取指定分类的一言 |
/hitokoto help |
显示帮助信息 |
| 代码 | 分类 | 代码 | 分类 |
|---|---|---|---|
| a | 动画 | g | 其他 |
| b | 漫画 | h | 影视 |
| c | 游戏 | i | 诗词 |
| d | 文学 | j | 网易云 |
| e | 原创 | k | 哲学 |
| f | 来自网络 | l | 抖机灵 |
/hitokoto # 随机获取一言
/hitokoto a # 获取动画类一言
/hitokoto d # 获取文学类一言
/hitokoto i # 获取诗词类一言
/hitokoto help # 显示帮助
✨ 每日一言
「生活就像一盒巧克力,你永远不知道下一颗是什么味道」
—— 阿甘正传
📂 分类:影视
实时查询指定城市的天气信息及未来 3 天天气预报。
| 指令 | 说明 |
|---|---|
/weather <城市名>(或 /天气 <城市名>) |
查询指定城市的天气 |
/weather help |
显示帮助信息 |
/weather 广州市 # 查询广州市天气
/weather 北京 # 查询北京市天气
/weather 上海 # 查询上海市天气
/weather help # 显示帮助
🌤️ 广州市 天气预报
📍 广东
☀️ 当前天气
🌡️ 温度:28
☁️ 天气:多云
🤒 体感温度:30
💨 风力:东南风 3级
💧 湿度:75%
📅 未来天气预报
📆 第1天:2025-01-15(周三)
☁️ 天气:晴
🌡️ 温度:18~28
💨 风力:东南风 3级
💧 湿度:70%
📆 第2天:2025-01-16(周四)
☁️ 天气:多云
🌡️ 温度:19~29
💨 风力:南风 2级
💧 湿度:68%
通过 LeiZ Femboy API 随机获取男娘主题图片。
⚠️ 使用前必须配置 API 密钥,详见下方配置说明。
| 指令 | 说明 |
|---|---|
/femboy(或 /男娘) |
获取一张随机男娘图片(WebP 格式) |
/femboy help |
显示帮助信息 |
使用此功能前,需要在插件配置面板中填写 leiz_api_key(LeiZ API 统一密钥)。未配置时调用命令会提示错误。
/femboy # 获取随机男娘图片
/femboy help # 显示帮助
👗 随机男娘图片
📸 来源:网络收集
📝 备注:示例备注
[图片]
通过 LeiZ JMComic API 搜索和获取漫画内容,支持搜索、详情查看、章节图片获取及随机推荐。
| 指令 | 说明 |
|---|---|
/jm search <关键词>(或 /漫画 搜索 <关键词>) |
搜索漫画 |
/jm search <关键词> page:<页码> |
搜索漫画(指定页码) |
/jm detail <漫画ID>(或 /漫画 详情 <漫画ID>) |
获取漫画详情(标题、作者、简介、章节列表) |
/jm chapter <章节ID>(或 /漫画 章节 <章节ID>) |
获取章节图片(以合并转发消息发送) |
/jmcommend(或 /漫画推荐) |
随机推荐一部漫画 |
/jm help |
显示帮助信息 |
# 搜索漫画
/jm search 原神 # 搜索「原神」相关漫画
/jm search 萝莉 page:2 # 搜索第2页结果
# 查看详情
/jm detail 413828 # 获取漫画ID为413828的详情
# 获取章节图片
/jm chapter 413828 # 获取章节图片(合并转发发送)
# 随机推荐
/jmcommend # 随机推荐一部漫画
📚 搜索「原神」结果(第1页):
1. 【1438976】被达达利亚用常识改变催眠...
作者: 秋月リア | 分类: 同人
2. 【1435210】原神同人作品集
作者: SampleAuthor | 分类: 同人
💡 使用 /jm detail <漫画ID> 查看详情
📚 随机漫画推荐
📕 标题:示例漫画标题
👤 作者:示例作者
📂 分类:同人
🆔 ID:123456
💡 使用 /jm detail 123456 查看详情
💡 使用 /jm chapter 123456 查看图片
在 QQ 平台使用 /jm chapter 获取章节图片时,插件会以合并转发消息(聊天记录)的形式批量发送图片,避免逐条发送大量图片导致风控或刷屏。
- 内容来源于第三方 API,请遵守相关法律法规
- API 响应可能较慢(尤其是详情和章节接口),请耐心等待
- 章节图片默认展示前 10 张,以合并转发形式发送
- 无需额外配置,开箱即用
通过 LeiZ Netease API 实现点歌、搜索歌曲和获取播放链接功能。
| 指令 | 说明 |
|---|---|
/music <歌曲名>(或 /音乐 <歌曲名>) |
点歌(搜索并返回第一首歌的详细信息) |
/music direct <歌曲名>(或 /音乐 直接 <歌曲名>) |
仅返回转码后的语音条 |
/music file <歌曲名>(或 /音乐 文件 <歌曲名>) |
返回未经转码的原始音乐文件 |
/music id:<歌曲ID>(或 /音乐 编号:<歌曲ID>) |
通过歌曲 ID 获取详细信息 |
/music search <关键词>(或 /音乐 搜索 <关键词>) |
搜索歌曲列表 |
/music help |
显示帮助信息 |
# 点歌(搜索并获取第一首歌的信息)
/music 孤勇者 # 搜索并获取「孤勇者」
/music 周杰伦 晴天 # 搜索「周杰伦 晴天」
# 仅返回语音条
/music direct 孤勇者 # 返回低码率 MP3 语音条
# 返回原始音乐文件(不转码)
/music file 孤勇者 # 返回原始音频附件
# 通过 ID 获取
/music id:1901371647 # 获取指定 ID 的歌曲信息
# 搜索歌曲列表
/music search 陈奕迅 # 搜索陈奕迅相关歌曲列表
/music help # 显示帮助
- 歌曲名称、艺术家、专辑
- 专辑封面图片
- 音质信息(码率、格式、音质等级)
- 文件大小
- 播放链接
🎵 孤勇者
👤 艺术家:陈奕迅
💿 专辑:孤勇者
🎧 音质:无损 / FLAC / 907kbps
📦 大小:27.7MB
🔗 播放链接:http://m701.music.126.net/...
[专辑封面图片]
🔍 搜索「陈奕迅」结果:
1. 孤勇者 - 陈奕迅
ID: 1901371647
2. 富士山下 - 陈奕迅
ID: 5264842
3. 十年 - 陈奕迅
ID: 185809
💡 使用 /music id:<歌曲ID> 获取详细信息和播放链接
在 QQ 平台使用时,插件会自动将播放链接解析为语音条发送,用户可以直接在聊天中播放歌曲,无需手动打开链接。
💡 语音条功能依赖 AstrBot 框架的
Record消息段支持。如果当前环境不支持,插件会自动降级为仅发送文本链接,不影响其他功能。
- 部分 VIP 歌曲可能无法获取播放链接
- 播放链接有时效性,请及时使用
- 原始音乐文件不经过转码,受平台文件大小和格式限制
- 数据来源于网易云音乐,仅供个人试听
- 无需额外配置,开箱即用
- 在 QQ 中会自动发送语音条,其他平台发送播放链接
通过 DG-LAB Socket V2 协议实现对郊狼脉冲主机的完整控制,支持设备绑定、强度调节、输出控制等功能。
⚠️ 此功能需要运行 DG-LAB 中转服务器(详见下方配置说明)。
| 指令 | 说明 |
|---|---|
/dglab bind [服务器地址](或 /电击 绑定) |
绑定新设备(生成二维码供 APP 扫描,支持多设备追加) |
/dglab unbind [序号](或 /电击 解绑) |
解绑设备(多台时需指定序号) |
/dglab strength [序号] <A|B> <0-200>(或 /电击 强度) |
设置通道强度值(序号省略则操作 #1) |
/dglab up [序号] <A|B> [步进](或 /电击 增加) |
增加强度(默认+5) |
/dglab down [序号] <A|B> [步进](或 /电击 减少) |
减少强度(默认-5) |
/dglab shock [序号] <A|B> [强度] [波形] [秒数](或 /电击 开始) |
开始电击(设置强度并发送波形) |
/dglab stop [序号] [A|B](或 /电击 停止) |
停止电击(强度归零+清空波形,不指定通道则停止该设备全部) |
/dglab pulse [序号] <A|B> <预设名|HEX> [秒数](或 /电击 波形) |
发送波形数据(默认5秒) |
/dglab clear [序号] <A|B>(或 /电击 清空) |
清空波形队列 |
/dglab feedback [序号](或 /电击 反馈) |
查看设备实时强度和反馈按钮状态 |
/dglab permission [on|off](或 /电击 权限) |
查看/切换权限隔离(默认开启,user级:控制该用户全部设备) |
/dglab status(或 /电击 状态) |
查看全部设备的绑定和连接状态 |
/dglab info(或 /电击 信息) |
查看全部设备的详细信息 |
/dglab help(或 /电击 帮助) |
显示帮助信息 |
💡 多设备说明:同一用户可绑定多台设备,用序号(1/2/3...)区分。序号可省略,默认操作 #1 设备。单设备用户无需关心序号,行为与单设备时完全一致。控制他人设备示例:
/dglab strength @用户ID 2 A 50。
1. 绑定设备
/dglab bind ws://192.168.1.100:9999
2. 使用 DG-LAB APP 扫描二维码完成绑定
3. 控制设备
/dglab shock A 50 breathe 10 # A通道开始电击(强度50,呼吸波形,10秒)
/dglab strength A 50 # 仅设置A通道强度为50
/dglab pulse A wave 5 # 仅发送波浪波形到A通道(5秒)
/dglab up B 10 # B通道强度增加10
/dglab stop # 停止所有输出
/dglab stop A # 仅停止A通道
4. 查看状态
/dglab status # 查看连接状态
/dglab feedback # 查看实时强度和反馈
5. 解绑设备(可选)
/dglab unbind # 解绑当前设备
强度控制参数:
| 参数 | 类型 | 范围 | 说明 |
|---|---|---|---|
通道 |
string | A 或 B | A/B 双通道独立控制 |
强度值 |
int | 0-200 | 目标强度值(0=关闭,200=最大) |
步进值 |
int | 1-200 | 每次调整的幅度(默认5) |
电击控制参数(/dglab shock):
| 参数 | 类型 | 范围 | 说明 |
|---|---|---|---|
通道 |
string | A 或 B | 必填,指定输出通道 |
强度 |
int | 0-200 | 可选,默认20 |
波形 |
string | 预设名 | 可选,默认pulse。可选: breathe, pulse, wave, tap, heartbeat, needle, throb, chaos |
秒数 |
int | 1-60 | 可选,持续时间,默认5秒 |
波形控制参数(/dglab pulse):
| 参数 | 类型 | 范围 | 说明 |
|---|---|---|---|
通道 |
string | A 或 B | 必填,指定输出通道 |
预设名/HEX |
string | 见下方 | 必填,波形预设名或16位HEX数据 |
秒数 |
int | 1-60 | 可选,持续时间,默认5秒 |
可用波形预设:
| 预设名 | 效果 |
|---|---|
breathe |
缓慢渐强渐弱 |
pulse |
快速间歇脉冲 |
wave |
连续波浪起伏 |
tap |
短促有力的单次敲击 |
heartbeat |
双拍心跳节奏(lub-dub) |
needle |
高频持续尖刺(针扎感) |
throb |
低频缓慢起伏(厚重深沉) |
chaos |
强弱频率随机交替(不可预测) |
绑定参数:
| 参数 | 类型 | 说明 | 示例 |
|---|---|---|---|
服务器地址 |
string | DG-LAB 中转服务器地址 | ws://192.168.1.100:9999 |
💡 提示:如果配置了默认服务器地址,
/dglab bind可省略地址参数。
绑定成功:
🔗 DG-LAB 设备绑定
👤 用户: TestUser
🖥️ 服务器: ws://192.168.1.100:9999
🆔 客户端ID: a1b2c3d4...
📱 请使用 DG-LAB APP 扫描下方二维码完成绑定
📲 二维码内容:
`https://www.dungeon-lab.com/app-download.php#DGLAB-SOCKET#ws://192.168.1.100:9999/a1b2c3d4...`
⏳ 等待APP扫码绑定中...
💡 绑定成功后将自动通知您
查看状态:
📊 DG-LAB 设备状态
🔗 绑定状态: ✅ 已绑定
🖥️ 服务器: ws://192.168.1.100:9999
🆔 客户端ID: a1b2c3d4e5f6...
🕐 绑定时间: 2025-01-15 10:30:00
🔄 最后活跃: 2025-01-15 14:25:30
📡 连接状态: 🟢 bound
⏱️ 连接时长: 14340 秒 (239 分钟)
😴 空闲时长: 120 秒
📈 系统活跃连接数: 3
多用户隔离:
- 每个用户拥有独立的设备连接和绑定关系
- 用户间操作完全隔离,互不影响
- 支持最多 50 个并发连接
自动重连与容错:
- 操作失败时自动重试(最多 2 次)
- 连接断开时尝试重新建立
- 空闲超过 5 分钟的连接自动清理(释放资源)
安全机制:
- 所有输入参数严格校验(范围、格式、类型)
- 操作超时保护(防止长时间阻塞)
- 强度值限制在安全范围内 (0-200)
⚠️ 强度值范围:必须在 0-200 之间,请根据个人耐受度调整⚠️ APP 要求:仅支持 郊狼脉冲主机 3.0⚠️ 网络要求:确保服务器可访问,建议使用局域网或公网服务器⚠️ 二维码有效期:绑定二维码在会话期间有效,超时需重新生成⚠️ 权限隔离:您的设备仅您可控制,其他用户无法访问
在 AstrBot 管理面板中可配置以下参数:
路径:AstrBot 管理面板 → 插件管理 → astrbot_plugin_pixiv → 配置
🔐 【重要】LeiZ API 鉴权方式升级公告
自即日起,LeiZ API 全面升级鉴权方式:所有接口(含免费接口)均需在请求中携带 API Key,请求头格式为
x-api-key: <API-Key>。未配置将导致 Pixiv、每日一言、天气查询、男娘图片、网易云音乐点歌、JMComic 漫画等全部 LeiZ 接口命令不可用。请在下方配置项中填写
leiz_api_key后保存并重启插件。旧版配置迁移:v1.3.x 及更早版本中针对男娘图片使用的
femboy_api_key(旧x-api-key)已被废弃并合并为统一的leiz_api_key。升级后如未填写leiz_api_key但保留了旧的femboy_api_key,插件会自动将其作为统一 API Key 使用并提示迁移,建议尽快在配置面板改填到leiz_api_key字段。
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
default_r18 |
int | 0 | 默认 R18 模式(0=全年龄, 1=仅R18, 2=混合) |
default_num |
int | 1 | 默认每次获取的图片数量(1-20) |
image_proxy |
string | pixiv.bileizhen.top | 图片反代域名 |
default_size |
string | regular | 默认图片尺寸(original/regular/small/thumb/mini) |
exclude_ai |
bool | false | 默认是否排除 AI 生成作品 |
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
request_timeout |
int | 15 | API 请求超时时间(秒),影响所有功能 |
leiz_api_key |
string | (空) | LeiZ API 统一密钥(请求头 x-api-key)。所有接口(含免费接口)均需携带,必填才能使用 Pixiv/一言/天气/男娘/点歌/JMComic 等全部 LeiZ 接口命令 |
⚠️ 使用 DG-LAB 功能前,必须先部署并运行 DG-LAB Socket V2 中转服务器。
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
dglab_server_url |
string | (空) | DG-LAB 中转服务器地址(如 ws://192.168.1.100:9999) |
dglab_heartbeat_interval |
int | 60 | 心跳间隔(秒),建议 30-120 |
dglab_auto_connect |
bool | false | 是否在插件启动时自动连接(一般设为 false) |
在 AstrBot 管理面板的插件配置中直接填写:
| 配置项 | 填写示例 |
|---|---|
dglab_server_url |
ws://192.168.1.100:9999 |
dglab_heartbeat_interval |
60 |
dglab_auto_connect |
false |
从旧版本(v1.2.0 及更早)的 JSON 格式配置迁移到新独立配置项:
旧格式(已弃用):
{
"dglab": {
"server_url": "ws://your-server:9999",
"heartbeat_interval": 60,
"auto_connect": false
}
}新格式: 直接在配置面板中填写以下三个独立项:
dglab_server_url→ 填入旧server_url的值dglab_heartbeat_interval→ 填入旧heartbeat_interval的值(默认 60)dglab_auto_connect→ 填入旧auto_connect的值(默认 false)
兼容性说明:
插件仍会检测旧版 dglab JSON 配置。如果新的独立配置项留空但旧配置存在,插件会自动读取旧配置并给出迁移提示。建议尽快手动迁移以获得更好的配置体验。
- 获取服务器代码:访问 DG-LAB-OPENSOURCE
- 安装依赖并启动:
cd socket/v2/backend npm install npm start - 默认端口:
9999(可通过.env文件修改) - 网络要求:确保服务器可被 AstrBot 和 DG-LAB APP 访问
💡 提示:局域网部署使用
ws://,公网部署建议使用wss://(更安全)。
请检查:
- Python 版本是否 >= 3.10
- 是否已安装依赖:
pip install aiohttp>=3.8.0 - AstrBot 版本是否 >= 3.4.0
- 查看 AstrBot 日志中的错误信息
可能原因:
- 反代域名不可用:尝试更换
image_proxy配置项 - 网络连接问题:检查服务器是否能访问外网
- API 服务异常:稍后重试
需要在插件配置面板中填写 leiz_api_key 字段(LeiZ API 统一密钥),保存配置后重启插件即可。
两种方式:
- 全局排除:在配置中设置
exclude_ai为true - 单次排除:在命令中使用
excludeAI:true,如/pixiv tag:萝莉 excludeAI:true
- 在配置中增加
request_timeout的值(单位:秒) - 检查网络连接状况
- 如果频繁超时,可能是 API 服务繁忙,建议稍后重试
支持中国主要城市,建议使用中文城市名称(如"广州市"、"北京")。城市名称最长 50 个字符。
请检查:
- 是否安装依赖:
pip install websockets>=10.0 - 是否配置服务器地址:在插件配置中填写
dglab_server_url - 中转服务器是否运行:确保 DG-LAB Socket V2 服务器已启动并可访问
- 网络连通性:AstrBot 服务器能否连接到中转服务器
- 查看日志:检查 AstrBot 日志中的
[DGLab]相关错误信息
可能原因:
- APP 未扫码:二维码生成后需在有效期内用 APP 扫描
- 服务器地址错误:确认地址格式正确(如
ws://host:port) - 网络不通:检查防火墙和网络配置
- APP 版本过低:确保使用支持 Socket V2 的 APP 版本
不会。每个用户拥有独立的设备绑定和连接,操作完全隔离。系统支持最多 50 个并发连接。
- 系统会自动尝试重连(最多 2 次)
- 如果仍失败,使用
/dglab unbind解绑后重新/dglab bind - 检查中转服务器是否正常运行
- 使用
/dglab status查看当前连接状态
插件对各类异常均有友好提示:
| 错误类型 | 可能原因 | 解决方案 |
|---|---|---|
| 网络错误 | 网络连接失败 | 检查网络连接 |
| 请求超时 | API 响应慢 | 增加 timeout 配置或稍后重试 |
| HTTP 错误 | API 服务异常 | 检查 API 服务状态 |
| 参数错误 | 命令格式不正确 | 发送 /xxx help 查看帮助 |
| 无结果 | 未找到匹配内容 | 更换搜索参数 |
| 数据格式异常 | API 返回异常数据 | 稍后重试 |
astrbot_plugin_currentcortex/
├── main.py # 主程序文件(包含所有功能实现及插件入口)
├── dglab_client.py # DG-LAB Socket V2 WebSocket 客户端封装
├── dglab_device_store.py # DG-LAB 设备绑定关系持久化存储
├── dglab_connection_pool.py # DG-LAB 连接池与状态管理
├── dglab_commands.py # DG-LAB 命令处理器(参数解析、校验、执行)
├── test_dglab_integration.py # DG-LAB 模块集成测试脚本
├── metadata.yaml # 插件元数据
├── _conf_schema.json # 配置模式定义
├── requirements.txt # Python 依赖
├── README.md # 项目文档
└── .gitignore # Git 忽略规则
Pixiv 相关:
- PixivAPIClient:Pixiv API 客户端,支持 GET/POST 请求,处理重定向和 JSON 响应
- HitokotoAPIClient:一言 API 客户端,支持分类筛选
- WeatherAPIClient:天气 API 客户端,解析当前天气和未来预报
- FemboyAPIClient:男娘图片 API 客户端,统一使用
x-api-key鉴权 - NeteaseAPIClient:网易云音乐 API 客户端,支持歌曲获取和搜索
- JMComicAPIClient:JMComic 漫画 API 客户端,支持搜索、详情、章节图片获取
- CommandParser:命令解析器,支持
key:value格式参数和快捷语法
DG-LAB 设备管理:
- DGLabClient (dglab_client.py):WebSocket 客户端封装,实现连接管理、消息收发、心跳保活
- DeviceStore (dglab_device_store.py):用户-设备绑定关系持久化存储(JSON 文件),线程安全
- DeviceConnectionPool (dglab_connection_pool.py):连接池管理器,支持多用户并发、连接复用、自动重连、空闲清理、超时保护
- DGLabCommandHandler (dglab_commands.py):命令处理器,负责参数解析、合法性校验、操作执行、结果格式化
主插件:
- CurrentCortexPlugin(Star) (main.py):主插件类,集成所有功能并注册命令
- 异步架构:基于 asyncio 和 aiohttp/websockets,非阻塞 I/O
- 模块化设计:DG-LAB 功能独立为 4 个模块,职责清晰,便于维护
- 统一接口:所有 API 客户端遵循相同的设计模式
- 完善日志:详细的调试和错误日志,便于排查问题
- 健壮性:全面的异常处理和参数校验
- 数据持久化:DG-LAB 绑定数据存储在
data/dglab_bindings.json(符合 AstrBot 规范) - 资源管理:连接池自动清理空闲连接,防止资源泄漏
- 多租户隔离:每个用户独立连接,操作互不干扰
MIT License
- LeiZ API — 提供 Pixiv、一言、天气、男娘图片、网易云音乐等 API 服务
- AstrBot — 聊天机器人框架
- DG-LAB-OPENSOURCE — DG-LAB Socket V2 协议与中转服务器
版本:v1.3.0
更新日期:2026-05-17
新增功能:JMComic 漫画获取(搜索、详情、章节图片、随机推荐)
仓库:GitHub