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
minecraft1024a
a33e323927
docs: 简化 README 中的安装说明
...
将详细的安装和配置步骤移至官方文档,并在 README 中提供直接链接。这使得 README 更加简洁,并引导用户访问最新的、更全面的部署指南。
2025-08-30 14:41:33 +08:00
minecraft1024a
0e73b2643e
ruff ci
2025-08-30 14:21:59 +08:00
minecraft1024a
91d1efcd1f
docs: 重构并简化隐私条款
...
将隐私条款(PRIVACY.md)的语言风格从法律化、复杂的格式重构为更易于普通用户理解的口语化说明。
- 使用更清晰的标题和项目符号来组织内容。
- 简化了关于数据处理、第三方插件和责任的措辞。
- 更新了文档的更新日期和版权年份。
2025-08-30 14:15:39 +08:00
minecraft1024a
9b64b190e0
docs: overhaul EULA and README for clarity and user-friendliness
...
The End User License Agreement (EULA) has been completely rewritten from a formal legal document into a user-friendly Q&A format. This change aims to make the terms of use more accessible and understandable for end-users, clearly outlining their rights and responsibilities.
The README.md has been significantly updated to improve structure, readability, and visual appeal. Key changes include:
- Restructuring the layout for a more logical flow.
- Adding clear, concise tables for system requirements.
- Simplifying the quick start and configuration instructions.
- Enhancing visual elements with better-formatted badges and centered sections.
- Clarifying the project's status as a third-party fork and warning about potential migration issues.
2025-08-30 14:07:30 +08:00
minecraft1024a
6b2e2d6373
refactor(schedule): 异步化月度计划生成以避免阻塞
...
将月度计划的生成过程从同步阻塞模式重构为异步非阻塞模式。
在 `ScheduleManager` 中,当月度计划耗尽时,现在会通过调用新的 `trigger_generate_monthly_plans` 方法来启动一个后台生成任务,而不是 `await` 其完成。这可以防止在生成新计划时(可能耗时较长)阻塞日常任务的调度流程。
同时,修复了 `MonthlyPlanManager` 中一个排序逻辑错误,确保在计划数量超出上限时,正确删除最旧的计划而不是最新的。
2025-08-30 12:01:04 +08:00
minecraft1024a
ec82f2b4e7
refactor(db): 优化ChromaDB查询参数处理
...
将查询参数动态构建,仅在`where`条件存在时才将其添加到查询中。此举增强了代码的健壮性和灵活性,避免了传入空的`where`字典可能引发的潜在问题。
2025-08-30 11:26:21 +08:00
minecraft1024a
7cb5c3844e
refactor(plugin): 优化插件配置加载与同步机制
...
- 移除全局插件配置开关 `plugins.centralized_config`。
- 简化 `PluginBase` 的配置加载逻辑,不再使用模板文件,而是直接在中央配置目录生成默认配置。
- 在 `PluginManager` 中增加配置同步逻辑,在加载插件时,实现插件目录与中央配置目录之间的双向同步,确保配置一致性。
- 更新 `bot_config_template.toml`,移除已废弃的 `[plugins]` 配置项并提升版本号。
2025-08-30 11:21:26 +08:00
Windpicker-owo
c6a0522316
feat(napcat): 增加消息与交互相关事件处理模块
...
新增多个事件处理器,支持私聊/群聊消息管理、历史记录、戳一戳、合并转发、表情点赞、AI语音等丰富消息功能,统一通过 napcat 接口发送并标准化返回 HandlerResult。
新增事件类型及其文档化注释,涵盖:
- SEND_PRIVATE_MSG / SEND_POKE / DELETE_MSG
- GET_GROUP_MSG_HISTORY / GET_MSG / GET_FORWARD_MSG
- SET_MSG_EMOJI_LIKE / GET_FRIEND_MSG_HISTORY / FETCH_EMOJI_LIKE
- SEND_FORWARD_MSG / SEND_GROUP_AI_RECORD
移除冗余空行并修正枚举名称拼写(FORWARF_MSG → FORWARD_MSG),为使用者提供完整入参和返回值说明。
2025-08-30 02:15:12 +08:00
雅诺狐
cb93b38162
Add Bilibili video analysis plugin
...
Introduced a new 'bilibli' plugin for Bilibili video parsing and AI-based content analysis. Added plugin manifest, base module for video info retrieval and analysis, and plugin integration with tool registration. Updated .gitignore to include the new plugin directory.
2025-08-30 00:26:44 +08:00
雅诺狐
18a739dc2b
Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot
2025-08-30 00:10:18 +08:00
雅诺狐
562fe90adb
Add rust_video: Rust keyframe extraction Python module
...
Introduce the rust_video package, a Rust-based ultra-fast video keyframe extraction tool with SIMD and parallel optimizations. Includes Cargo.toml and pyproject.toml for Rust and Python packaging, Python type hints (rust_video.pyi), and the main Rust library (lib.rs) with PyO3 bindings, performance benchmarking, and system info utilities.
2025-08-30 00:09:22 +08:00
Windpicker-owo
38212bd351
rust_video依赖检测
2025-08-29 23:35:01 +08:00
minecraft1024a
88f7ea4d8b
refactor(llm_models): 优化并发请求的返回值处理
...
修改了`execute_concurrently`的返回逻辑,将其解包以分别返回`content`和包含`reasoning_content`, `model_name`, `tool_calls`的元组。这使得调用方能更清晰地处理并发请求的结果。
2025-08-29 20:34:23 +08:00
minecraft1024a
65fee5458a
refactor(energy): 移除is_sleeping方法对wakeup_manager的依赖
...
将`schedule_manager.is_sleeping`的调用从`is_sleeping(self.context.wakeup_manager)`修改为`is_sleeping()`,以解耦对`wakeup_manager`的直接依赖。
同时,在`napcat_adapter_plugin`中将`enable_plugin`的默认值修改为`False`。
2025-08-29 20:04:05 +08:00
雅诺狐
16a1568f65
Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot
2025-08-29 19:15:04 +08:00
雅诺狐
0a647376f7
Remove rust-video keyframe extraction API and related files
...
Deleted the entire src/chat/utils/rust-video directory, including Rust and Python source files, configuration, and documentation. Updated utils_video.py, official_configs.py, and bot_config_template.toml to remove or adjust references to the removed rust-video module. This cleans up the codebase by removing the integrated Rust-based keyframe extraction API and its supporting infrastructure.
2025-08-29 19:13:42 +08:00
minecraft1024a
1bad63fcbd
ruff ci
2025-08-29 18:34:13 +08:00
minecraft1024a
35db4c5d91
refactor(schedule): 将睡眠状态管理逻辑重构并迁移到SleepManager
...
将原先分散在 `ScheduleManager` 中的睡眠状态机逻辑(包括状态判断、转换、持久化等)抽取并封装到一个新的 `SleepManager` 类中。
这次重构的主要目的如下:
- **职责分离**: `ScheduleManager` 的核心职责是管理日程的生成和查询,而睡眠状态的管理是一个独立的、复杂的逻辑单元。将其分离可以使两个类的职责更单一、代码更清晰。
- **可维护性**: 将所有与睡眠相关的状态和逻辑集中到 `SleepManager` 中,使得未来对睡眠功能的修改和扩展更加容易,减少了对 `ScheduleManager` 的影响。
- **代码简化**: `ScheduleManager` 不再需要管理内部的睡眠状态变量(如 `_current_state`, `_sleep_buffer_end_time` 等),而是通过委托 `sleep_manager` 实例来处理,简化了其内部实现。
相应的,`HfcContext` 中冗余的睡眠相关状态(如 `is_in_insomnia`)也被移除,统一由 `SleepManager` 管理。其他模块(如 `HeartFChatting`, `WakeUpManager`)对睡眠状态的调用也已更新为通过 `schedule_manager.sleep_manager` 或其代理方法进行。
2025-08-29 18:17:16 +08:00
minecraft1024a
e1fb3d7a3e
Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot
2025-08-29 17:40:26 +08:00
minecraft1024a
41565eb144
refactor(schedule): 重构睡眠系统为状态机模型
...
将原有的睡眠、失眠、唤醒等分散的布尔标记逻辑重构为一个统一的睡眠状态机(SleepState),以提高代码的可读性、可维护性和可扩展性。
主要变更:
- 引入 `SleepState` 枚举,包含 `AWAKE`, `INSOMNIA`, `PREPARING_SLEEP`, `SLEEPING`, `WOKEN_UP` 状态。
- 在 `ScheduleManager` 中实现 `_update_sleep_state` 作为核心状态机,统一管理所有状态转换。
- 将原有的失眠判断逻辑从 `WakeUpManager` 移至 `ScheduleManager` 的状态机内部,与弹性睡眠决策合并,简化了模块职责。
- `heartFC_chat.py` 中的聊天循环现在直接查询 `ScheduleManager` 的当前状态,而不是处理多个独立的布尔值,使逻辑更清晰。
- 删除了 `WakeUpManager` 中与失眠相关的配置和方法,因为它现在由 `ScheduleManager` 统一管理。
- 删除了配置中已废弃的 `enable_is_sleep` 选项。
2025-08-29 17:40:22 +08:00
Windpicker-owo
c0033c4acc
Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot
2025-08-29 16:58:55 +08:00
Windpicker-owo
edc7b36724
移除测试
2025-08-29 16:58:52 +08:00
minecraft1024a
01455156a7
Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot
2025-08-29 16:23:12 +08:00