diff options
author | Kyomotoi <[email protected]> | 2022-10-04 13:21:37 +0800 |
---|---|---|
committer | Kyomotoi <[email protected]> | 2022-10-04 13:21:37 +0800 |
commit | f87dfae8f3aec8c63d89172eb0d31efc12103926 (patch) | |
tree | 105e5a2c76e3a4f6cb00d7e0316b776380d6e6fc | |
parent | 3b3d13e0cf9d76981c5a915624d001b10d25ccd1 (diff) | |
download | ATRI-f87dfae8f3aec8c63d89172eb0d31efc12103926.tar.gz ATRI-f87dfae8f3aec8c63d89172eb0d31efc12103926.tar.bz2 ATRI-f87dfae8f3aec8c63d89172eb0d31efc12103926.zip |
🔥 删除插件: 老婆
-rw-r--r-- | ATRI/plugins/wife/__init__.py | 194 | ||||
-rw-r--r-- | ATRI/plugins/wife/data_source.py | 69 |
2 files changed, 0 insertions, 263 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) diff --git a/ATRI/plugins/wife/data_source.py b/ATRI/plugins/wife/data_source.py deleted file mode 100644 index 3067d22..0000000 --- a/ATRI/plugins/wife/data_source.py +++ /dev/null @@ -1,69 +0,0 @@ -import json -from random import choice -from pathlib import Path -from nonebot.adapters.onebot.v11 import MessageSegment - -from ATRI.service import Service -from ATRI.rule import is_in_service - - -WIFE_DIR = Path(".") / "data" / "plugins" / "wife" -WIFE_DIR.mkdir(parents=True, exist_ok=True) - - -class Wife(Service): - def __init__(self): - Service.__init__(self, "老婆", "老婆...嘿嘿嘿...", rule=is_in_service("老婆")) - - def to_superuser(self, user_id: str): - """ - 全自动贴贴机,限制只有超级管理员才能贴贴 - """ - content = choice( - [ - "mua!", - "贴贴!", - MessageSegment.image( - file="https://jsd.imki.moe/gh/Kyomotoi/CDN@master/project/ATRI/wife0.jpg" - ), - MessageSegment.image( - file="https://jsd.imki.moe/gh/Kyomotoi/CDN@master/project/ATRI/wife1.jpg" - ), - MessageSegment.image( - file="https://jsd.imki.moe/gh/Kyomotoi/CDN@master/project/ATRI/wife2.jpg" - ), - MessageSegment.image( - file="https://jsd.imki.moe/gh/Kyomotoi/CDN@master/project/ATRI/wife3.jpg" - ), - ] - ) - result = MessageSegment.at(user_id) + content # type: ignore - return result - - @staticmethod - def load_marry_list() -> dict: - """ - 读取结婚列表 - """ - file_name = "marry_list.json" - path = WIFE_DIR / file_name - if not path.is_file(): - with open(path, "w", encoding="utf-8") as w: - w.write(json.dumps({})) - - data = json.loads(path.read_bytes()) - return data - - @staticmethod - def save_marry_list(data: dict) -> None: - """ - 存储结婚列表 - """ - file_name = "marry_list.json" - path = WIFE_DIR / file_name - if not path.is_file(): - with open(path, "w", encoding="utf-8") as w: - w.write(json.dumps({})) - - with open(path, "w", encoding="utf-8") as w: - w.write(json.dumps(data, indent=4)) |