summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyomotoi <[email protected]>2022-10-04 13:21:37 +0800
committerKyomotoi <[email protected]>2022-10-04 13:21:37 +0800
commitf87dfae8f3aec8c63d89172eb0d31efc12103926 (patch)
tree105e5a2c76e3a4f6cb00d7e0316b776380d6e6fc
parent3b3d13e0cf9d76981c5a915624d001b10d25ccd1 (diff)
downloadATRI-f87dfae8f3aec8c63d89172eb0d31efc12103926.tar.gz
ATRI-f87dfae8f3aec8c63d89172eb0d31efc12103926.tar.bz2
ATRI-f87dfae8f3aec8c63d89172eb0d31efc12103926.zip
🔥 删除插件: 老婆
-rw-r--r--ATRI/plugins/wife/__init__.py194
-rw-r--r--ATRI/plugins/wife/data_source.py69
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))