Files
sansenhoshiandClaude b61d09f09f Add HeXi bot codebase: custom plugins, web frontends, tests
- hexi core: message handling, rate limiting, cooldown, plugin manager
- Custom plugins: BF stats, daily check-in, quotes, persona cards, etc.
- Community plugins vendored under hexi/plugins with local fixes
- Web admin frontends (learning-chat, persona-admin), unified hexi/web
- Tests for rate_limit/cooldown/memes/persona; poetry.lock

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-01 13:13:40 +08:00

38 lines
1.2 KiB
Python

from nonebot import on_notice, require
from nonebot.adapters.onebot.v11 import (
Bot,
GroupDecreaseNoticeEvent,
GroupIncreaseNoticeEvent,
)
from nonebot.rule import is_type
require("nonebot_plugin_alconna")
from nonebot_plugin_alconna import UniMessage
group_decrease_notice = on_notice(rule=is_type(GroupDecreaseNoticeEvent))
@group_decrease_notice.handle()
async def group_decrease_handle(bot: Bot, ev: GroupDecreaseNoticeEvent):
sub_type = ev.sub_type
uid = ev.user_id
operator_id = ev.operator_id
data = await bot.get_stranger_info(user_id=uid)
name = data["nickname"]
if sub_type == "kick":
await UniMessage.at(user_id=operator_id).text(
f"认为{name}({uid})不适合本群"
).send()
elif sub_type == "leave":
await UniMessage.text(f"{name}({uid})离开了我们,相信会有再见的一天!").send()
group_increase_notice = on_notice(rule=is_type(GroupIncreaseNoticeEvent))
@group_increase_notice.handle()
async def group_increase_handle(bot: Bot, ev: GroupIncreaseNoticeEvent):
if ev.user_id == ev.self_id:
return # 忽略自己
await UniMessage.text("欢迎入群~,请认真阅读群规").send(at_sender=True)