diff options
| author | Kyomotoi <kyomotoiowo@gmail.com> | 2021-09-04 22:45:23 +0800 | 
|---|---|---|
| committer | Kyomotoi <kyomotoiowo@gmail.com> | 2021-09-04 22:45:23 +0800 | 
| commit | 0d63d6846c28c11873f15d1be704e3f77ef1c770 (patch) | |
| tree | 3ec10f441e608f7d30357910e7a77e56f6cfebc8 /ATRI/plugins/wife | |
| parent | b91bb2c0ccce4443c1cfe6b7de5ba33439ca6cf2 (diff) | |
| download | ATRI-0d63d6846c28c11873f15d1be704e3f77ef1c770.tar.gz ATRI-0d63d6846c28c11873f15d1be704e3f77ef1c770.tar.bz2 ATRI-0d63d6846c28c11873f15d1be704e3f77ef1c770.zip  | |
✨🎨 更新新功能
- 对 贴贴 增加开关
- 修复 老婆,目前已可以正常使用
Diffstat (limited to 'ATRI/plugins/wife')
| -rw-r--r-- | ATRI/plugins/wife/__init__.py | 85 | 
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"]  | 
