summaryrefslogtreecommitdiff
path: root/ATRI/plugins/chat/__init__.py
diff options
context:
space:
mode:
authorKyomotoi <[email protected]>2021-07-08 22:09:00 +0800
committerKyomotoi <[email protected]>2021-07-08 22:09:00 +0800
commitbe2747e4d4b820ca0f1f988d3b77a628da26fe7b (patch)
treee1a59dd79ecd973a7d704568dcdc018f1f1b651a /ATRI/plugins/chat/__init__.py
parenta4e1b9d1581d756ef79ad063d1c0bd6b2fd13c1d (diff)
downloadATRI-be2747e4d4b820ca0f1f988d3b77a628da26fe7b.tar.gz
ATRI-be2747e4d4b820ca0f1f988d3b77a628da26fe7b.tar.bz2
ATRI-be2747e4d4b820ca0f1f988d3b77a628da26fe7b.zip
🔖♻️🐛🔧🔥📝 更新版本:YHN-001-A03
🔖 更新版本至:YHN-001-A03 ✨ 新增插件: - 涩图 - 闲聊(文爱 ♻️ 重构: - Service - 所有插件 🐛 修复部分小bug 🔧 暂时移除部分设置 🔥 删除: - 插件:nsfw、wife。日后加回 - 插件 essential 中部分内容 📝 更新README
Diffstat (limited to 'ATRI/plugins/chat/__init__.py')
-rw-r--r--ATRI/plugins/chat/__init__.py112
1 files changed, 112 insertions, 0 deletions
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("闲聊(文爱")
+
+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)
+
[email protected]_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
+
+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
+
+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)
+
+
[email protected]_job("interval", hours=3, misfire_grace_time=60)
+async def _check_kimo():
+ try:
+ await Chat().update_data()
+ except BaseException:
+ pass