summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyomotoi <[email protected]>2021-09-04 22:45:23 +0800
committerKyomotoi <[email protected]>2021-09-04 22:45:23 +0800
commit0d63d6846c28c11873f15d1be704e3f77ef1c770 (patch)
tree3ec10f441e608f7d30357910e7a77e56f6cfebc8
parentb91bb2c0ccce4443c1cfe6b7de5ba33439ca6cf2 (diff)
downloadATRI-0d63d6846c28c11873f15d1be704e3f77ef1c770.tar.gz
ATRI-0d63d6846c28c11873f15d1be704e3f77ef1c770.tar.bz2
ATRI-0d63d6846c28c11873f15d1be704e3f77ef1c770.zip
✨🎨 更新新功能
- 对 贴贴 增加开关 - 修复 老婆,目前已可以正常使用
-rw-r--r--ATRI/plugins/wife/__init__.py85
1 files changed, 70 insertions, 15 deletions
diff --git a/ATRI/plugins/wife/__init__.py b/ATRI/plugins/wife/__init__.py
index 7773057..493c9ca 100644
--- a/ATRI/plugins/wife/__init__.py
+++ b/ATRI/plugins/wife/__init__.py
@@ -2,8 +2,8 @@ import asyncio
from random import choice
from pydantic import BaseModel
-from nonebot.permission import USER
from nonebot.rule import Rule
+from nonebot.typing import T_State
from nonebot.permission import SUPERUSER
from nonebot.adapters.cqhttp import Bot, MessageEvent, GroupMessageEvent, Message
@@ -12,15 +12,19 @@ from .data_source import Wife
_tietie_flmt = FreqLimiter(600)
+_is_tietie = True
tietie_superuser = Wife().on_message(
- "只与维护者贴贴w", rule=Rule(), permission=SUPERUSER, block=False
+ "只与维护者贴贴w,‘不可以贴’以拒绝贴贴~,‘来贴贴’以接受贴贴~", rule=Rule(), permission=SUPERUSER, block=False
)
@tietie_superuser.handle()
async def _tietie_superuser(bot: Bot, event: MessageEvent):
+ if not _is_tietie:
+ await tietie_superuser.finish()
+
user_id = event.get_user_id()
if not _tietie_flmt.check(user_id):
await tietie_superuser.finish()
@@ -30,6 +34,30 @@ async def _tietie_superuser(bot: Bot, event: MessageEvent):
await tietie_superuser.finish(Message(result))
+no_tietie = Wife().on_command(
+ "不可以贴", docs="拒绝贴贴", rule=Rule(), permission=SUPERUSER, block=False
+)
+
+
+@no_tietie.handle()
+async def _no_tietie(bot: Bot, event: MessageEvent):
+ global _is_tietie
+ _is_tietie = False
+ await no_tietie.finish("好吧...")
+
+
+yes_tietie = Wife().on_command(
+ "来贴贴", docs="继续贴贴", rule=Rule(), permission=SUPERUSER, block=False
+)
+
+
+@yes_tietie.handle()
+async def _yes_tietie(bot: Bot, event: MessageEvent):
+ global _is_tietie
+ _is_tietie = True
+ await yes_tietie.finish("好欸!")
+
+
_wife_flmt = FreqLimiter(10)
@@ -48,15 +76,23 @@ async def _get_wife(bot: Bot, event: GroupMessageEvent):
if not _wife_flmt.check(user_id):
await get_wife.finish()
+ data = Wife().load_marry_list()
+ if user_id in data:
+ await get_wife.finish("你已经有对象了哦~(")
+
group_id = event.group_id
req_user_info: dict = await bot.get_group_member_info(
group_id=group_id, user_id=int(user_id)
)
+
req_user_card = req_user_info["card"]
+ if not req_user_card:
+ req_user_card = req_user_info["nickname"]
+
req_user_sex = req_user_info["sex"]
is_nick = "老公" if req_user_sex == "male" else "老婆"
- repo_0 = "现在咱将随机抽取一位幸运裙友\n" f"成为{req_user_card}的{is_nick}!"
+ repo_0 = f"现在咱将随机抽取一位幸运裙友\n成为{req_user_card}的{is_nick}!"
await bot.send(event, repo_0)
await asyncio.sleep(10)
@@ -68,10 +104,14 @@ async def _get_wife(bot: Bot, event: GroupMessageEvent):
group_id=group_id, user_id=lucky_user
)
lucky_user_card = lucky_user_info["card"]
+ if not lucky_user_card:
+ lucky_user_card = lucky_user_info["nickname"]
+
lucky_user_sex = lucky_user_info["sex"]
- data = Wife().load_marry_list()
- data[lucky_user] = MarryInfo(name=req_user_card, sex=is_nick, wife=user_id).dict()
+ data[str(lucky_user)] = MarryInfo(
+ name=req_user_card, sex=is_nick, wife=user_id
+ ).dict()
data[user_id] = MarryInfo(
name=lucky_user_card, sex=lucky_user_sex, wife=lucky_user
).dict()
@@ -85,9 +125,7 @@ async def _get_wife(bot: Bot, event: GroupMessageEvent):
_call_wife_flmt = FreqLimiter(60)
-call_wife = Wife().on_command(
- "老婆", "呼唤老婆/老公!", aliases={"老公", "老婆!", "老公!"}, permission=USER("114514")
-)
+call_wife = Wife().on_command("老婆", "呼唤老婆/老公!", aliases={"老公", "老婆!", "老公!"})
@call_wife.handle()
@@ -100,7 +138,7 @@ async def _call_wife(bot: Bot, event: MessageEvent):
if user_id not in data:
return
- wife = data[user_id].get("wife", "ignore")
+ wife = data[user_id].get("name", "ignore")
sex = data[user_id].get("sex", "male")
is_nick = "老公" if sex == "male" else "老婆"
repo = f"你已经有{is_nick}啦!是{wife}噢~"
@@ -112,26 +150,43 @@ discard_wife = Wife().on_command("我要离婚", "离婚!")
@discard_wife.handle()
-async def _discard_wife(bot: Bot, event: GroupMessageEvent):
+async def _discard_wife(bot: Bot, event: GroupMessageEvent, state: T_State):
user_id = event.get_user_id()
if not _wife_flmt.check(user_id):
await discard_wife.finish()
- await bot.send(event, "真的吗...(y/是)")
+ data = Wife().load_marry_list()
+ if user_id not in data:
+ await discard_wife.finish("你还没对象呐...")
+
msg = str(event.message).strip()
+ if msg:
+ state["is_disc"] = msg
+
+
+@discard_wife.got("is_disc", "真的吗...(y/是)")
+async def _deal_discard(bot: Bot, event: GroupMessageEvent, state: T_State):
+ msg = state["is_disc"]
rd_list = ["y", "Y", "是", "确认", "对"]
- if msg not in rd_list:
- await discard_wife.finish("")
+ user_id = event.get_user_id()
group_id = event.group_id
+ if msg not in rd_list:
+ user_info = await bot.get_group_member_info(
+ group_id=group_id, user_id=int(user_id)
+ )
+ user_nickname = user_info["card"]
+ if not user_nickname:
+ user_nickname = user_info["nickname"]
+
+ await discard_wife.finish(f"{user_nickname} 回心转意了!")
+
group_info: dict = await bot.get_group_member_info(
group_id=group_id, user_id=int(user_id)
)
user_card = group_info.get("card", "老婆")
data = Wife().load_marry_list()
- if user_id not in data:
- await discard_wife.finish("你还没对象呐...")
discard_user_info = data[user_id]
discard_user_card = discard_user_info["name"]