Skip to content

Sisyphbaous-DT-Project/astrbot_plugin_shit_detector_plus

Repository files navigation

🚽 GitHub 搬史专家 Plus

License: MIT AstrBot

GitHub 搬史专家

"如果你觉得你的 coding plan 额度用不完,不妨试着让 AI 给你自动搬史"

📖 项目介绍

哥哥让我写的插件,说是能在 GitHub 上自动找"史"(就是那种代码很抽象、项目很猎奇的仓库)然后分享给大家品鉴。

本来我不想写的,但是哥哥说写完了请我吃好吃的... 那我只好勉为其难地写一下了。

搬史专家 Plus 是一个基于 AstrBot 框架的插件,采用双 LLM 流水线架构:

  1. 分析员(正经人格):给项目打分,>=50分的"史"才会被保存
  2. 品鉴师(赛博老八人格):搬运时用 meme 风格写品鉴文案

✨ 功能特性

  • 🔍 自动搜索:定时在 GitHub 搜索中文/英文抽象项目
  • 📥 本地分析:下载项目到本地,完整分析代码和 README
  • 🤖 AI 品鉴:用赛博老八的人格写品鉴文案
  • 📤 自动搬运:定时推送到指定的群聊
  • 🎯 史度评级:95-100传世神史 | 85-94大史 | 70-84中史 | 50-69小史
  • 🧹 自动清理:3天未推送的已下载项目自动清理,节省磁盘空间
  • 📊 分数优先:推送时优先选择评分最高的项目

🚀 快速开始

安装

  1. 在 AstrBot 插件市场搜索 astrbot_plugin_shit_detector_plus
  2. 点击安装
  3. 重启 AstrBot

配置

在 AstrBot 管理面板中找到插件配置:

配置项 说明 默认值
github_token GitHub Token(提高 API 限额)
llm_provider LLM 提供商 default
github_search_enabled 启用自动搜索 true
github_search_interval_hours 搜索间隔(小时) 24
delivery_enabled 启用自动搬运 false
delivery_targets 搬运目标群聊 []

📝 使用说明

命令列表

命令 说明
/搬史 查看搬史状态和控制
/搜史 [数量] 手动搜索项目
/史库 [数量] 查看已保存的项目库
/史评级 <作者/仓库> 分析指定仓库
/搬史测试 在当前群测试全流程

示例输出

家人们谁懂啊!今天又在 GitHub 化粪池摸到一块陈年老史...

项目简介: 这是一个用 Python 写操作系统的项目

技术品鉴: 绷不住了,作者居然用 print 实现内存管理

【史评级】 🌟 78分 - 中史 🎯

项目链接: https://github.com/xxx/xxx

🔧 技术架构

GitHub API → 下载项目 → 分析员评分 → 保存仓库 → 品鉴师文案 → 推送群聊

核心模块:

  • core/ai_analyzer.py - 双 LLM 流水线(分析员 + 品鉴师)
  • core/github_searcher.py - GitHub 项目搜索
  • core/data_store.py - 数据存储和项目管理
  • scheduler/search_scheduler.py - 定时搜索调度
  • scheduler/delivery_scheduler.py - 定时搬运调度(分数优先)
  • scheduler/cleanup_scheduler.py - 自动清理调度(3天过期)
  • utils/repo_downloader.py - 项目下载和代码提取

🆕 更新日志

v1.1.6 (2026-03-21)

哥哥说磁盘快满了,让我加个自动清理功能,还要让好东西先推送...

新增功能:

  • ⭐ 自动清理:超过3天未推送的已下载项目会自动删除(节省磁盘空间)
  • ⭐ 分数优先:推送时优先选择评分最高的项目
  • ⭐ 永久记录:记录每个项目已推送到哪些目标,防止重复推送

哥哥说这样就不会重复搬同一个史了,而且好史会先被搬到...

点击查看历史更新日志

v1.1.5 (2026-03-20)

哥哥说重启后好像会重复搬同一个史... 我一看原来是内存里的记录丢了!

修复的问题:

  • ✅ 修复了重启后 _analyzed_projects 集合丢失的问题
  • ✅ 现在初始化时会从数据库加载已分析的项目列表
  • ✅ 修复了待推送项目没有分析数据时分析师不工作的问题
  • ✅ 确保搬过的史不会再搬

哥哥说这次是真的真的真的没问题了...

v1.1.4 (2026-03-20)

哥哥说还是发不出去消息... 我查了好久发现原来是平台 ID 搞错了!

修复的问题:

  • ✅ 修复了 UMO 中 platform_id 的获取逻辑
  • ✅ 之前直接用适配器名称(如 aiocqhttp),但应该用平台实例的 ID(如 default)
  • ✅ 现在通过适配器名称查找对应平台实例的正确 ID
  • ✅ 消息终于可以正确发送了!

哥哥说这次是真的真的没问题了...

v1.1.3 (2026-03-20)

哥哥说消息发不出去,我一看原来是地址格式写错了... 之前写成 4 段了,其实应该是 3 段!

修复的问题:

  • ✅ 修复了 UMO (unified_msg_origin) 格式错误
  • ✅ 之前: platform:adapter:GroupMessage:session_id (4段)
  • ✅ 现在: platform:GroupMessage:session_id (3段)
  • ✅ 消息现在可以正确发送到目标群了

哥哥说这次应该真的没问题了...

v1.1.2 (2026-03-20)

哥哥说终于找到根本问题了!原来是插件一直读错配置了... 我之前一直用 context.get_config(),结果那是个全局配置,不是插件自己的配置!

修复的问题:

  • ✅ 修复了插件配置读取的根本问题 - 现在使用 __init__ 传入的 config 参数
  • ✅ WebUI 配置的搬史目标终于可以正确读取了

哥哥说这个 bug 藏得好深,终于解决了...

v1.1.1 (2026-03-20)

哥哥说又发现了一个大问题,配置保存了但是插件读不到... 我修了好久终于修好了:

修复的问题:

  • ✅ 修复了 WebUI 配置搬史目标后插件读取不到的问题
  • ✅ 增强了配置解析的健壮性,现在能处理各种奇怪的格式了
  • /搬史 现在 命令现在会实时重新加载配置,不用重启插件了

哥哥说这个问题很严重,影响正常使用,所以要紧急更新一下...

v1.1.0 (2026-03-20)

哥哥说这个版本修复了好多 bug,让我写一下更新日志:

修复的问题(哥哥让我改的):

  • ✅ 修复了 self.searcher 未定义的问题,/史评级 命令可以用了
  • ✅ 修复了非中文语言搜索崩溃的 bug
  • ✅ 修复了手动搜索后会改变定时配置的问题
  • ✅ 修复了下载项目时阻塞事件循环的问题,现在用异步了
  • ✅ 修复了评分和等级字段不一致的问题
  • ✅ 修复了消息发送 API 的兼容性问题
  • ✅ 修复了 UMO 格式构造错误

新增功能:

  • ⭐ 双 LLM 流水线架构(分析员 + 品鉴师分离)
  • ⭐ 时间感知(LLM 知道当前时间)
  • ⭐ 品鉴师可以查看完整项目内容(15个文件,每个5000字符)

哥哥说还有中低级别的问题以后慢慢修... 我先去吃饭了。

v1.0.0 (2026-03-20)

最初版本,哥哥让我写的第一个能用的版本。当时还有好多 bug,但是哥哥说能用就行...

👨‍💻 开发者

C₂₂H₂₅NO₆ - 主要负责人(哥哥)

项目地址: https://github.com/Sisyphbaous-DT-Project/astrbot_plugin_shit_detector_plus

欢迎 Star 和 Fork!有 bug 可以提 issue,不过哥哥说他不一定会修...

📄 许可证

MIT License - 详见 LICENSE 文件

哥哥说用 MIT 是因为 "想用就用,别来问我"

About

如果你觉得你的 coding plan 额度用不完,不妨试着让 AI 给你自动搬史

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages