From be2747e4d4b820ca0f1f988d3b77a628da26fe7b Mon Sep 17 00:00:00 2001 From: Kyomotoi Date: Thu, 8 Jul 2021 22:09:00 +0800 Subject: =?UTF-8?q?=F0=9F=94=96=E2=99=BB=EF=B8=8F=F0=9F=90=9B=F0=9F=94=A7?= =?UTF-8?q?=F0=9F=94=A5=F0=9F=93=9D=20=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=EF=BC=9AYHN-001-A03?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🔖 更新版本至:YHN-001-A03 ✨ 新增插件: - 涩图 - 闲聊(文爱 ♻️ 重构: - Service - 所有插件 🐛 修复部分小bug 🔧 暂时移除部分设置 🔥 删除: - 插件:nsfw、wife。日后加回 - 插件 essential 中部分内容 📝 更新README --- ATRI/plugins/chat/__init__.py | 112 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 ATRI/plugins/chat/__init__.py (limited to 'ATRI/plugins/chat/__init__.py') diff --git a/ATRI/plugins/chat/__init__.py b/ATRI/plugins/chat/__init__.py new file mode 100644 index 0000000..4864be5 --- /dev/null +++ b/ATRI/plugins/chat/__init__.py @@ -0,0 +1,112 @@ +from random import choice + +from nonebot.typing import T_State +from nonebot.adapters.cqhttp import Bot, MessageEvent + +from ATRI.utils import CoolqCodeChecker +from ATRI.utils.limit import FreqLimiter +from ATRI.utils.apscheduler import scheduler +from .data_source import Chat + + +_chat_flmt = FreqLimiter(3) +_chat_flmt_notice = choice(["慢...慢一..点❤", "冷静1下", "歇会歇会~~", "我开始为你以后的伴侣担心了..."]) + + +chat = Chat().on_message("闲聊(文爱") + +@chat.handle() +async def _chat(bot: Bot, event: MessageEvent): + user_id = event.get_user_id() + if not _chat_flmt.check(user_id): + await chat.finish(_chat_flmt_notice) + + msg = str(event.message) + repo = await Chat().deal(msg, user_id) + _chat_flmt.start_cd(user_id) + await chat.finish(repo) + +my_name_is = Chat().on_command("叫我", "更改闲聊(划掉 文爱)时的称呼", aliases={"我是"}, priority=1) + +@my_name_is.args_parser # type: ignore +async def _get_name(bot: Bot, event: MessageEvent, state: T_State): + msg = str(event.message).strip() + quit_list = ["算了", "罢了"] + if msg in quit_list: + await my_name_is.finish("好吧...") + if not msg: + await my_name_is.reject("欧尼酱想让咱如何称呼你呢!0w0") + else: + state["name"] = msg + +@my_name_is.handle() +async def _name(bot: Bot, event: MessageEvent, state: T_State): + user_id = event.get_user_id() + if not _chat_flmt.check(user_id): + await my_name_is.finish(_chat_flmt_notice) + + msg = str(event.message).strip() + if msg: + state["name"] = msg + +@my_name_is.got("name") +async def _deal_name(bot: Bot, event: MessageEvent, state: T_State): + user_id = event.get_user_id() + new_name = state["name"] + repo = choice([ + f"好~w 那咱以后就称呼你为{new_name}!", + f"噢噢噢!原来你叫{new_name}阿~", + f"好欸!{new_name}ちゃん~~~", + "很不错的称呼呢w" + ]) + Chat().name_is(user_id, new_name) + _chat_flmt.start_cd(user_id) + await my_name_is.finish(repo) + +say = Chat().on_command("说", "别人让我说啥就说啥(", priority=1) + +@say.args_parser # type: ignore +async def _get_say(bot: Bot, event: MessageEvent, state: T_State): + msg = str(event.message).strip() + quit_list = ["算了", "罢了"] + if msg in quit_list: + await say.finish("好吧...") + if not msg: + await say.reject("欧尼酱想让咱如何称呼你呢!0w0") + else: + state["say"] = msg + +@say.handle() +async def _ready_say(bot: Bot, event: MessageEvent, state: T_State): + user_id = event.get_user_id() + if not _chat_flmt.check(user_id): + await say.finish(_chat_flmt_notice) + + msg = str(event.message) + if msg: + state["say"] = msg + +@say.got("say") +async def _deal_say(bot: Bot, event: MessageEvent, state: T_State): + msg = state["say"] + check = CoolqCodeChecker(msg).check + if not check: + repo = choice([ + "不要...", + "这个咱不想复读!", + "不可以", + "不好!" + ]) + await say.finish(repo) + + user_id = event.get_user_id() + _chat_flmt.start_cd(user_id) + await say.finish(msg) + + +@scheduler.scheduled_job("interval", hours=3, misfire_grace_time=60) +async def _check_kimo(): + try: + await Chat().update_data() + except BaseException: + pass -- cgit v1.2.3