Commit Graph

610 Commits

Author SHA1 Message Date
Windpicker-owo
9f49a453da 迁移:3804124,9e9e796
(feat:将no_reply内置、fix:优化reply,填补缺失值)
2025-09-01 21:12:55 +08:00
Windpicker-owo
77574812c5 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-01 15:43:56 +08:00
Windpicker-owo
581c2dcb80 fix 2025-09-01 15:43:51 +08:00
tt-P607
49df12e9ca Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-01 15:30:01 +08:00
tt-P607
2762ff9ec3 fix(maizone): 修复回复评论时的主题ID和父评论ID
根据企鹅空间的最新接口变更,修复了回复评论时 `topicId` 的构造方式,并为子回复添加了 `parent_tid` 参数,以确保能够正确地回复到指定的父评论。
2025-09-01 15:29:33 +08:00
Windpicker-owo
27d9e90a4c Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-01 15:24:47 +08:00
Windpicker-owo
366dadeb15 迁移:69a855d(feat:保存关键词到message数据库) 2025-09-01 15:24:43 +08:00
tt-P607
75b03aca19 refactor(maizone): 优化回复跟踪服务和实现子回复
对 `maizone_refactored` 插件进行多项重构和功能改进:

1.  **依赖注入 `ReplyTrackerService`**:
    -   在 `plugin.py` 中创建 `ReplyTrackerService` 的单例,并将其注入到 `QZoneService` 中。
    -   这确保了整个插件共享同一个回复记录实例,避免了之前在 `QZoneService` 内部创建实例导致的状态不一致问题。

2.  **增强 `ReplyTrackerService` 的健壮性**:
    -   增加了对 `replied_comments.json` 文件加载时的数据验证和错误处理,包括处理空文件和JSON解析错误。
    -   实现了损坏文件的自动备份机制。
    -   采用原子化写入操作(先写临时文件再重命名),防止在保存过程中因意外中断导致数据文件损坏。
    -   改进了日志记录,提供了更清晰的加载、保存和清理过程信息。

3.  **实现真正的子回复(盖楼)功能**:
    -   修改了 `QZoneService` 中 `_reply` 方法的请求参数,特别是 `topicId` 和 `paramstr`,并添加了 `parent_tid`,以实现对特定评论的直接回复,而不是简单地在说说下发表新评论。

4.  **优化评论处理逻辑**:
    -   移除了在处理新评论前对已记录回复进行验证的步骤,简化了逻辑,直接检查评论是否已被回复。
2025-09-01 15:07:56 +08:00
Windpicker-owo
9e64806d08 迁移:685c759 (feat:将no_reply功能移动到主循环中) 2025-09-01 14:18:49 +08:00
Windpicker-owo
d49ad0ad01 增加注释 2025-09-01 13:13:56 +08:00
Windpicker-owo
6e50eb5929 添加动作修改计时 2025-09-01 12:57:57 +08:00
Windpicker-owo
747f240b92 Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot 2025-09-01 11:59:42 +08:00
Windpicker-owo
6378898b25 移除无用md 2025-09-01 11:59:37 +08:00
tt-P607
e8d06e7016 Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot 2025-09-01 11:40:59 +08:00
tt-P607
da4dd63fd3 feat(plugin_system): 实现 on_plugin_loaded 异步钩子
在插件成功加载和注册后,添加一个新的生命周期钩子 `on_plugin_loaded`。

此钩子允许插件在加载完成后执行异步的初始化任务,例如建立数据库连接、加载数据或启动后台服务。通过使用 `asyncio.create_task`,确保了钩子的执行不会阻塞插件的加载流程,从而提高了系统的响应性和健壮性。
2025-09-01 11:38:20 +08:00
Windpicker-owo
763bf07de6 refactor(napcat-adapter): remove test handler and restructure plugin initialization
移除APITestHandler测试类,将插件初始化逻辑重构为独立的事件注册方法,更新日志配置以支持napcat适配器模块。这些更改清理了测试代码并改进了插件架构的清晰度。
2025-08-31 23:15:31 +08:00
Windpicker-owo
30e66d5938 Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot 2025-08-31 20:56:35 +08:00
Windpicker-owo
8149731925 修复代码格式和文件名大小写问题 2025-08-31 20:50:17 +08:00
Windpicker-owo
df29014e41 refactor(chat): 简化SmartPrompt系统架构,移除缓存机制和依赖检查 2025-08-31 19:21:11 +08:00
Windpicker-owo
a6e937de6d refactor(chat): 重构SmartPrompt系统简化架构并移除缓存机制
- 简化SmartPromptParameters类结构,移除复杂的分层参数架构
- 统一错误处理和降级机制,增强系统稳定性
- 移除缓存相关功能,简化架构并减少复杂性
- 完全继承DefaultReplyer功能,确保功能完整性
- 优化性能和依赖管理,改进并发任务处理
- 增强跨群上下文、关系信息、记忆系统等功能的错误处理
- 统一视频分析结果注入逻辑,避免重复代码
2025-08-31 19:09:36 +08:00
Windpicker-owo
9e7483d25a refactor(chat): 重构SmartPrompt系统使用分层参数架构和共享工具
将SmartPrompt系统从平面参数结构重构为分层架构,引入PromptCoreParams、
PromptFeatureParams和PromptContentParams三个层级,提高代码组织性和可维护性。

主要变更:
- 使用新的分层参数结构替代原有的平面参数系统
- 集成PromptUtils共享工具类,消除代码重复
- 添加性能优化:缓存机制、超时控制和性能监控
- 增强错误处理,提供优雅的降级机制
- 添加SmartPromptHealthChecker用于系统健康检查
- 保持向后兼容性,通过属性访问器维持现有API

此重构显著提升了代码的可维护性、性能和可测试性,同时为未来功能
扩展奠定了更好的架构基础。
2025-08-31 17:47:19 +08:00
Windpicker-owo
8c07bcb02f feat(chat): 重构SmartPrompt系统完全继承DefaultReplyer功能
完成SmartPrompt系统的全面重构,现已完整继承原有DefaultReplyer的复杂提示构建逻辑:
- 新增SmartPromptParameters涵盖所有必需参数并向后兼容
- 实现s4u/normal/minimal三种模式的完整支持
- 集成原有的表达式习惯、记忆块、关系信息等构建逻辑
- 重构缓存系统使用统一稳定的缓存键机制
- DefaultReplyer现已完整迁移到SmartPrompt架构且零API变更

BREAKING CHANGE: SmartPrompt系统现在完全可用,可以安全替换原有提示构建系统
2025-08-31 15:50:27 +08:00
Windpicker-owo
2dee32e5ad feat(chat): 引入SmartPrompt智能提示构建系统
重构DefaultReplyer对话提示构建逻辑,统一使用SmartPrompt抽象组件替代原冗长的模板选择与参数拼装流程。将原160+行的分支式模板处理逻辑压缩为统一的SmartPrompt.build_prompt()调用,实现提示构建策略的可插拔与可维护性提升。

- 新增 src.chat.utils.smart_prompt 模块(SmartPrompt类及参数封装)
- 移除旧的normal/s4u分支硬编码,由SmartPrompt内部按需适配
- 事件管理器仅补充HandlerResult显式导入,无功能变动
2025-08-31 15:33:16 +08:00
minecraft1024a
a154c9b077 docs: 优化 README.md 的排版和格式
- 移除多余的空行,使整体布局更紧凑
- 调整了标题和章节之间的间距
- 新增了 QQ 交流群的链接,方便用户交流
2025-08-31 14:03:29 +08:00
minecraft1024a
dcb78cd9b8 feat(chat): 在主动思考时默认选取最新消息作为目标
当主动思考的 `target_message` 为 `None` 时,系统现在会自动获取聊天流中的最新一条消息作为默认的目标消息。

这确保了即使在没有明确指定目标消息的情况下,主动思考也能够针对最近的上下文执行动作,从而提高了交互的连续性和相关性。
2025-08-31 13:45:21 +08:00
minecraft1024a
d19f211461 refactor(context): 将能量值和睡眠压力状态持久化到数据库
将HFC上下文中的能量值(energy_value)和睡眠压力(sleep_pressure)的状态管理从本地文件存储(local_storage)迁移到主数据库。

这一重构的主要改动包括:
- 在`ChatStreams`数据库模型中添加`energy_value`和`sleep_pressure`字段。
- 更新`ChatStream`类,使其能够加载和保存这两个新字段。
- 移除`HfcContext`中原有的基于`local_storage`的加载和保存逻辑,改为直接通过`ChatStream`实例进行状态读写。
- 在`EnergyManager`中,每当能量或睡眠压力发生变化时,调用`save_context_state()`方法,确保状态能够实时持久化。

此举统一了应用的状态管理方式,提高了数据的可靠性和一致性,并为后续在多实例或分布式环境下部署应用奠定了基础。
2025-08-31 13:32:05 +08:00
minecraft1024a
0427d5cac1 refactor(schedule): 将日程生成转为后台异步任务
将即时日程生成的操作从直接调用修改为提交到异步任务管理器执行。这避免了在主流程中等待耗时较长的日程生成过程,改善了请求响应速度。

为此,新增了 `OnDemandScheduleGenerationTask` 类来封装按需生成日程的后台任务逻辑。
2025-08-31 13:11:45 +08:00
minecraft1024a
e2a2d102e0 refactor(schedule): 优化月度计划与日程的生成逻辑
将月度计划和每日日程的生成流程从异步非阻塞任务改为同步阻塞模式。这确保了在需要计划数据时,生成过程会先完成,从而避免了因数据未及时生成而导致的潜在问题。

主要变更:
- `ScheduleManager`: 在加载日程失败或数据不存在时,直接调用并等待日程生成,而不是创建一个后台任务。
- `ScheduleManager`: 当日程生成过程中发现月度计划不足时,会直接调用并等待月度计划生成完成,然后再继续。
- `MonthlyPlanManager`: 简化了生成逻辑,移除了原有的非阻塞触发方法 `trigger_generate_monthly_plans`,统一为同步执行的 `generate_monthly_plans`。
- `monthly_plan_db`: 在查询月度计划时增加了按创建时间降序排序,以支持更可靠地删除多余计划。
- `main.py`: 移除了对已不存在的 `ImportError` 的处理。
2025-08-31 13:06:06 +08:00
minecraft1024a
cc2d8a89ee chore: 调整日志级别和更新默认配置
- 将事件注册成功的日志级别从INFO调整为DEBUG,以减少不必要的日志输出。
- 修正`maizone_refactored`插件中图片目录路径的表示方法,使用`.as_posix()`确保跨平台兼容性。
- 将备用Cookie获取服务的默认主机地址从一个具体的IP(`172.20.130.55`)更改为`127.0.0.1`,这更符合本地开发的通用配置。
2025-08-31 12:40:50 +08:00
Windpicker-owo
5217b78952 ruff 2025-08-31 00:34:21 +08:00
Windpicker-owo
d1d59591d8 ruff 2025-08-31 00:20:17 +08:00
Windpicker-owo
c7823245d2 Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot 2025-08-30 22:06:03 +08:00
Windpicker-owo
79eec5f66e 修复ada插件 2025-08-30 22:06:00 +08:00
Furina-1013-create
eb4965a828 最小化侵入性方案让ui日志记录适配MoFox-Bot 2025-08-30 22:01:13 +08:00
雅诺狐
1a0e9da584 更新 send_feed_command.py 2025-08-30 21:57:40 +08:00
Windpicker-owo
7ca9ac9ee6 test 2025-08-30 21:39:25 +08:00
Windpicker-owo
8f9dea12b9 更新todo 2025-08-30 21:20:12 +08:00
Windpicker-owo
3719dc411c ruff 2025-08-30 21:14:54 +08:00
minecraft1024a
901a3f0ed5 refactor(plugin_system): 重构插件配置同步逻辑
将插件配置同步逻辑重构为更清晰、更健壮的实现。此更改将复杂的同步过程分解为两个独立的、职责单一的方法:

- `_sync_central_config_to_plugin`: 专注于将中央配置单向同步到插件目录。
- `_is_file_content_identical`: 提供一个高效的文件内容比较方法,通过MD5哈希值避免不必要的IO操作。

这种重构提高了代码的可读性、可维护性,并增强了错误处理能力。同时,代码库从 `os.path` 迁移到了现代的 `pathlib`,以实现更简洁、更面向对象的路径操作。
2025-08-30 20:57:00 +08:00
minecraft1024a
589638200f 紧急修复一下我写出来的问题,修复同步插件配置文件时配置文件路径错误的问题 2025-08-30 20:43:31 +08:00
Windpicker-owo
6601bbe76a Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot 2025-08-30 19:59:59 +08:00
Windpicker-owo
7b765d5726 ruff 2025-08-30 19:59:54 +08:00
tt-P607
fa3d09db63 feat(maizone): 新增按时段禁用自动说说功能
将原有的活动黑名单机制替换为更灵活的按小时禁用功能。

现在可以配置一个时间段(例如凌晨2点到6点),在此期间插件将不会根据日程活动自动发送说说,以避免在休息时间造成打扰。
原有的 `activity_blacklist` 配置项已被移除。
2025-08-30 19:49:14 +08:00
tt-P607
9c2e9af78c feat(video): 引入Python降级抽帧并重构视频分析逻辑
- 当Rust视频处理模块不可用时,自动降级使用基于OpenCV的Python传统抽帧实现,确保视频分析功能在不同环境下均可用。
- 重构`extract_frames`方法,使其能够根据配置的抽帧模式(keyframe, time_interval, fixed_number)和可用的模块(Rust, Python)智能选择最佳的实现路径。
- 增强了初始化检查逻辑,现在会同时检测Rust和OpenCV的可用性,并根据检测结果提供更准确的日志警告或错误信息。
- 更新了`is_video_analysis_available`和`get_video_analysis_status`函数,以准确反映当前可用的视频处理实现和支持的抽帧模式。
2025-08-30 19:34:35 +08:00
tt-P607
60a558d95f Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot 2025-08-30 19:09:05 +08:00
tt-P607
a7b16cae0b refactor(llm_models): 优化反截断机制并迁移配置
将反截断功能的启用配置从API服务商级别迁移到单个模型级别,提供了更细粒度的控制。

主要变更:
- 在`LLMRequest`中,将硬编码的结束标记`[done]`替换为可配置的`self.end_marker`。
- 反截断检查逻辑从`api_provider`配置改为读取`model_info`中的`use_anti_truncation`布尔值。
- 更新了`model_config_template.toml`,移除了全局的反截断开关,并为每个模型增加了可选的`use_anti_truncation`配置项。
2025-08-30 19:08:43 +08:00
Windpicker-owo
03969b4a82 Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot 2025-08-30 17:57:05 +08:00
Windpicker-owo
142e72ba6c feat(napcat): 补充全部群事件处理与事件定义
新增近 30 个群相关事件处理器,覆盖群信息、成员管理、禁言、公告、精华消息等功能;修正合并转发消息事件常量拼写;补全事件类型注解与详细文档。所有群事件统一使用 `NapcatEvent.GROUP.*` 枚举值与对应 Handler。
2025-08-30 17:55:13 +08:00
minecraft1024a
5fe3a5e6aa refactor(chat): 优化日程活动提示以减少群聊干扰
修改了日程活动提示的措辞,明确指出当前活动与群聊无关,以防止在群聊场景下产生不相关的联想或干扰。
2025-08-30 17:36:55 +08:00
minecraft1024a
4285046f38 chore(plugin): 更新 set_typing_status 插件元数据 2025-08-30 14:43:39 +08:00