puniyu_matcher

Crates.iopuniyu_matcher
lib.rspuniyu_matcher
version0.4.1
created_at2025-10-24 16:28:43.705048+00
updated_at2025-11-16 07:32:23.019272+00
descriptionpuniyu 的事件匹配器模块
homepagehttps://github.com/puniyu/puniyu
repositoryhttps://github.com/puniyu/puniyu
max_upload_size
id1898752
size74,067
wuliya (shiwuliya)

documentation

README

puniyu_matcher

事件匹配器模块

概述

puniyu_matcher 是 puniyu 项目中负责事件匹配的核心库。它提供了统一的事件匹配器接口、消息事件匹配实现以及匹配器注册和管理机制。

核心组件

Matcher Trait

事件匹配器基础 trait,所有事件匹配器都需要实现此 trait:

  • matches(): 匹配事件的方法,返回布尔值
  • name(): 返回匹配器名称
  • rank(): 返回匹配器优先级(默认值为 5,数值越小优先级越高)

MessageMatcher 结构体

消息事件匹配器实现:

  • 匹配好友消息和群组消息事件
  • 检查消息中是否包含有效的文本内容
  • 记录匹配到的消息事件日志

匹配器管理

MatcherRegistry 结构体

匹配器注册表,提供匹配器的注册和管理功能:

  • register(): 注册匹配器
  • unregister(): 卸载匹配器
  • get_all(): 获取所有匹配器
  • get_with_name(): 根据名称获取匹配器

MatcherStore 结构体

底层存储实现:

  • 使用 RwLock<Vec<Arc<dyn Matcher>>> 存储匹配器
  • 插入时自动按优先级排序
  • 支持按名称查找和删除匹配器

功能特性

  • 消息匹配: 检测消息事件中的有效文本内容
  • 日志记录: 记录匹配到的消息事件详情
  • 优先级排序: 匹配器按优先级自动排序
  • 线程安全: 使用 ArcRwLock 确保线程安全
  • 模块化设计: 易于扩展其他类型的事件匹配器

待办功能

  • 全局前缀匹配
  • BOT前缀匹配
  • 插件前缀匹配

许可证

本项目采用 LGPL 许可证。

Commit count: 314

cargo fmt