Skip to main content

V2.0.0-rc.84

· One min read
Co-creator of yunzaijs 1
ProjectStatusDescription
alemonjsalemonjs-s机器人模块
  • 订阅事件数据结构更改为链表

避免随着事件的增加,而数据长度增加

class Node<T> {
data: T // 节点数据
next: Node<T> | null // 指向下一个节点的指针
constructor(data: T) {
this.data = data
this.next = null
}
}

export class SinglyLinkedList<T> {
private head: Node<T> | null // 链表的头节点
private size: number // 链表的大小
private current: Node<T> | null // 当前节点指针
constructor(initialValues?: T[]) {}
}

V2.0.0-rc.81

· 2 min read
Co-creator of yunzaijs 1
ProjectStatusDescription
alemonjsalemonjs-s机器人模块
  • useState

声明res/mw的状态,可用于管理是否启用

apps/**/*/res.ts
export name = 'login'
export const regular = /^(#|\/)?login$/
export default OnResponse((event, next) => {
// login code ...
}, 'message.create')
apps/**/*/res.ts
import { Text, useSend, useState } from 'alemonjs'
export const regular = /^(#|\/)?close:/
export default OnResponse((event, next) => {
// /close:login
const name = event.MessageText.replace(regular, '')
const [state, setState] = useState(name)
if (state) {
next()
return
}
setState(false)
const Send = useSend(event)
Send(Text('关闭成功'))
return
}, 'message.create')

可以在任意地方订阅状态的更改。

apps/**/*/res.ts
import { eventState, unEventState } from 'alemonjs'

const login = state => {}

eventState('login', login)
unEventState('login', login)
  • 分组

复用逻辑,共用一个next

const Res = OnResponse((event, next) => {
console.log('text', event.MessageText)
// 允许在同组响应中,继续后续的函数
return true
}, 'message.create')

export default OnResponse(
[
// add
Res.current,
(event, next) => {
console.log('完成')
}
],
'message.create'
)

V2.0.0-rc.78

· One min read
Co-creator of yunzaijs 1
ProjectStatusDescription
alemonjsalemonjs-s机器人模块
  • 新增regular
src/apps/**/*/res.ts
// 不匹配该正则,自动进行next
export const regular = /^(#|\/)?hello$/
export default OnResponse((event, next) => {
//
}, 'message.create')

V2.0.0-rc.76

· One min read
Co-creator of yunzaijs 1
ProjectStatusDescription
alemonjsalemonjs-s机器人模块
  • 新增useSubscribe
// [事件创建之后,事件被中间件处理之后,事件被处理完成之后,]
const [create, monut, unmonut] = useSubscribe(event, <select event type>)
create(Res.current, [])
// 等同于 Observer ,它正是 SubscribeMount 的简写
monut(Res.current, [])
unmonut(Res.current, [])
  • 新增next(bool)
const current = async (event, next) => {
// 当前周期中进行
next()
// 下一个周期中进行
next(true)
// 下下个周期中进行
next(true, true)
// 以此类推
}

V2.0.0-rc.74

· 2 min read
Co-creator of yunzaijs 1
ProjectStatusDescription
alemonjsalemonjs-s机器人模块
  • 优化OnMiddleware写法
src/middleware/**/*/mw.ts
// OnMiddleware((事件体,控制体)=>消息体,消息类型)
export default OnMiddleware((event, next) => {
// 新增字段
event['user_id'] = event.UserId
// 常用于兼容其他框架或增强event功能
next()
}, 'message.create')
  • 新增 useMention
apps/**/*/res.ts
import { useMention } from 'alemonjs'
export default OnResponse(async (event, next) => {
if (!/^(#|\/)?test$/.test(event.MessageText)) {
next()
return
}

const Mentions = await useMention(event)
if (!Mentions || Mentions.length === 0) {
return // @ 提及为空
}

// 查找用户类型的 @ 提及,且不是 bot
const User = Mentions.find(item => !item.IsBot)
if (!User) {
return // 未找到用户Id
}

console.log('User:', User)

// 处理被AT的用户...
}, 'message.create')
  • 用户头像获取方式更改为异步
const url = await e.UserAvatar.toURL()
  • 新增Text styleMention options
  • getConfig 支持获取 argv
  • onstart 更改为 start
  • 删除 useParse
  • 删除 MessageBody

V2.0.0-rc.54

· One min read
Co-creator of yunzaijs 1
ProjectStatusDescription
alemonjsalemonjs-s机器人模块
  • 支持多个事件选择
  • 支持非消息体事件响应

V2.0.0-rc.44

· One min read
Co-creator of yunzaijs 1
ProjectStatusDescription
alemonjsalemonjs-s机器人模块
  • 增加中间件
  • 修复模块扩展

V2.0.0-rc.33

· One min read
Co-creator of yunzaijs 1
ProjectStatusDescription
alemonjsalemonjs-s机器人模块
  • 增加配置管理器
  • 增加被动链接redis
  • 支持css预处理
  • 支持非js模块导入
  • 新增开发/打包/运行配置
  • 全新版本
  • 支持指定参数启动
  • 支持获取文本消息
  • 支持获取 AT 消息
  • 支持发送文本消息
  • 支持观察者 hook
  • 支持图片消息
  • 支持 public 消息创建监听
  • 基于文件系统的匹配机制
  • 环境统一为 tsx
  • 提供自定义平台函数
  • 支持热更新配置