diff options
Diffstat (limited to 'ATRI/plugins/wife/__init__.py')
-rw-r--r-- | ATRI/plugins/wife/__init__.py | 194 |
1 files changed, 0 insertions, 194 deletions
diff --git a/ATRI/plugins/wife/__init__.py b/ATRI/plugins/wife/__init__.py deleted file mode 100644 index dfa43eb..0000000 --- a/ATRI/plugins/wife/__init__.py +++ /dev/null @@ -1,194 +0,0 @@ -import asyncio -from random import choice -from pydantic import BaseModel - -from nonebot.rule import Rule -from nonebot.matcher import Matcher -from nonebot.params import CommandArg, ArgPlainText -from nonebot.permission import SUPERUSER -from nonebot.adapters.onebot.v11 import Bot, MessageEvent, GroupMessageEvent, Message -from nonebot.adapters.onebot.v11.helpers import Cooldown - -from .data_source import Wife - - -_is_tietie = True - - -tietie_superuser = Wife().on_message( - "贴贴", - "只与维护者贴贴w,‘不可以贴’以拒绝贴贴~,‘来贴贴’以接受贴贴~", - rule=Rule(), - permission=SUPERUSER, - block=False, - priority=11, -) - - -@tietie_superuser.handle([Cooldown(600)]) -async def _tietie_superuser(event: MessageEvent): - if not _is_tietie: - await tietie_superuser.finish() - - user_id = event.get_user_id() - result = Wife().to_superuser(user_id) - await tietie_superuser.finish(Message(result)) - - -no_tietie = Wife().on_command("不可以贴", docs="拒绝贴贴", rule=Rule(), permission=SUPERUSER) - - -@no_tietie.handle() -async def _no_tietie(): - global _is_tietie - _is_tietie = False - await no_tietie.finish("好吧...") - - -yes_tietie = Wife().on_command("来贴贴", docs="继续贴贴", rule=Rule(), permission=SUPERUSER) - - -@yes_tietie.handle() -async def _yes_tietie(): - global _is_tietie - _is_tietie = True - await yes_tietie.finish("好欸!") - - -class MarryInfo(BaseModel): - name: str - sex: str - wife: str - - -get_wife = Wife().on_command("抽老婆", "随机选择一位幸运裙友成为老婆!") - - -@get_wife.handle([Cooldown(10)]) -async def _get_wife(bot: Bot, event: GroupMessageEvent): - user_id = event.get_user_id() - - 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 = f"现在咱将随机抽取一位幸运裙友\n成为{req_user_card}的{is_nick}!" - await bot.send(event, repo_0) - await asyncio.sleep(10) - - # 获取群成员列表 - prep_list = await bot.get_group_member_list(group_id=group_id) - prep_list = [prep.get("user_id", 114514) for prep in prep_list] - - # 随机抽取群友 - lucky_user = choice(prep_list) - lucky_user_info: dict = await bot.get_group_member_info( - 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[str(lucky_user)] = MarryInfo( - name=req_user_card, sex=req_user_sex, wife=user_id - ).dict() - data[user_id] = MarryInfo( - name=lucky_user_card, sex=lucky_user_sex, wife=str(lucky_user) - ).dict() - Wife().save_marry_list(data) - - repo_1 = ( - f"好欸!{lucky_user_card}({lucky_user}) 成为了 {req_user_card}({user_id}) 的 {is_nick}" - ) - await get_wife.finish(repo_1) - - -call_wife = Wife().on_command("老婆", "呼唤老婆/老公!", aliases={"老公", "老婆!", "老公!"}) - - -@call_wife.handle([Cooldown(60)]) -async def _call_wife(event: MessageEvent): - user_id = event.get_user_id() - - data = Wife().load_marry_list() - if user_id not in data: - return - - wife = data[user_id].get("name", "ignore") - wife_id = data[user_id].get("wife", "114514") - - sex = data[user_id].get("sex", "male") - is_nick = "老公" if sex == "male" else "老婆" - repo = f"你已经有{is_nick}啦!是 {wife}({wife_id}) 噢~" - await call_wife.finish(repo) - - -discard_wife = Wife().on_command("我要离婚", "离婚!") - - -@discard_wife.handle([Cooldown(60)]) -async def _discard_wife( - matcher: Matcher, event: GroupMessageEvent, args: Message = CommandArg() -): - user_id = event.get_user_id() - - data = Wife().load_marry_list() - if user_id not in data: - await discard_wife.finish("你还没对象呐...") - - msg = args.extract_plain_text() - if msg: - matcher.set_arg("is_disc", args) - - -@discard_wife.got("is_disc", "真的吗...(y/是)") -async def _deal_discard( - bot: Bot, event: GroupMessageEvent, is_disc: str = ArgPlainText("is_disc") -): - rd_list = ["y", "Y", "是", "确认", "对"] - - user_id = event.get_user_id() - group_id = event.group_id - if is_disc 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() - - discard_user_info = data[user_id] - discard_user_card = discard_user_info["name"] - discard_user_id = discard_user_info["wife"] - - data.pop(user_id) - data.pop(discard_user_id) - Wife().save_marry_list(data) - repo = f"悲,{user_card}抛弃了{discard_user_card}..." - await discard_wife.finish(repo) |