summaryrefslogtreecommitdiff
path: root/ATRI/plugins/funny.py
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI/plugins/funny.py')
-rw-r--r--ATRI/plugins/funny.py129
1 files changed, 53 insertions, 76 deletions
diff --git a/ATRI/plugins/funny.py b/ATRI/plugins/funny.py
index 72e5abb..39b9f28 100644
--- a/ATRI/plugins/funny.py
+++ b/ATRI/plugins/funny.py
@@ -12,7 +12,7 @@ from ATRI.utils.limit import is_too_exciting
from ATRI.rule import is_in_service
from ATRI.utils.request import post_bytes
from ATRI.utils.translate import to_simple_string
-from ATRI.exceptions import RequestTimeOut
+from ATRI.exceptions import RequestError
__doc__ = """
@@ -22,25 +22,27 @@ __doc__ = """
来句笑话
"""
-get_laugh = sv.on_command(cmd="来句笑话", docs=__doc__, rule=is_in_service("来句笑话"))
-
+get_laugh = sv.on_command(
+ cmd='来句笑话',
+ docs=__doc__,
+ rule=is_in_service('来句笑话')
+)
@get_laugh.handle()
async def _get_laugh(bot: Bot, event: MessageEvent) -> None:
user_name = event.sender.nickname
laugh_list = []
-
- FILE = Path(".") / "ATRI" / "data" / "database" / "funny" / "laugh.txt"
- with open(FILE, "r", encoding="utf-8") as r:
+
+ FILE = Path('.') / 'ATRI' / 'data' / 'database' / 'funny' / 'laugh.txt'
+ with open(FILE, 'r', encoding='utf-8') as r:
for line in r:
- laugh_list.append(line.strip("\n"))
-
+ laugh_list.append(line.strip('\n'))
+
result = choice(laugh_list)
await get_laugh.finish(result.replace("%name", user_name))
-me_to_you = sv.on_message()
-
+me_to_you = sv.on_message(priority=5)
@me_to_you.handle()
async def _me_to_you(bot: Bot, event: MessageEvent) -> None:
@@ -51,38 +53,6 @@ async def _me_to_you(bot: Bot, event: MessageEvent) -> None:
__doc__ = """
-随机选择一位群友成为我的老婆!
-权限组:所有人
-用法:
- 抽老婆
-"""
-
-roll_wife = sv.on_command(cmd="抽老婆", docs=__doc__, rule=is_in_service("抽老婆"))
-
-
-@roll_wife.handle()
-async def _roll_wife(bot: Bot, event: GroupMessageEvent) -> None:
- user = event.user_id
- group = event.group_id
-
- user_name = await bot.get_group_member_info(group_id=group, user_id=user)
- user_name = user_name["nickname"]
- run = await is_too_exciting(user, group, 5, True)
- if not run:
- return
-
- luck_list = await bot.get_group_member_list(group_id=group)
- luck_user = choice(luck_list)
- luck_qq = luck_user["user_id"]
- luck_user = luck_user["nickname"]
- msg = "5秒后咱将随机抽取一位群友成为\n" f"{user_name} 的老婆!究竟是谁呢~?"
- await bot.send(event, msg)
- await asyncio.sleep(5)
- msg = f"> {luck_user}({luck_qq})\n" f"恭喜成为 {user_name} 的老婆~⭐"
- await bot.send(event, msg)
-
-
-__doc__ = """
伪造转发
权限组:所有人
用法:
@@ -95,34 +65,43 @@ __doc__ = """
/fakemsg 123456789*生草人*草 114514*仙贝*臭死了
"""
-fake_msg = sv.on_command(cmd="/fakemsg", docs=__doc__, rule=is_in_service("fakemsg"))
-
+fake_msg = sv.on_command(
+ cmd="/fakemsg",
+ docs=__doc__,
+ rule=is_in_service('fakemsg')
+)
@fake_msg.handle()
async def _fake_msg(bot: Bot, event: GroupMessageEvent) -> None:
- msg = str(event.message).split(" ")
+ msg = str(event.message).split(' ')
user = event.user_id
group = event.group_id
- node = []
- check = await is_too_exciting(user, group, 1, True)
-
+ node = list()
+ check = is_too_exciting(user, 1, seconds=600)
+
if check:
for i in msg:
- args = i.split("*")
+ args = i.split('*')
qq = args[0]
- name = args[1].replace("[", "[")
- name = name.replace("]", "]")
- repo = args[2].replace("[", "[")
- repo = repo.replace("]", "]")
- dic = {"type": "node", "data": {"name": name, "uin": qq, "content": repo}}
+ name = args[1].replace('[', '[')
+ name = name.replace(']', ']')
+ repo = args[2].replace('[', '[')
+ repo = repo.replace(']', ']')
+ dic = {
+ "type": "node",
+ "data": {
+ "name": name,
+ "uin": qq,
+ "content": repo
+ }
+ }
node.append(dic)
await bot.send_group_forward_msg(group_id=group, messages=node)
EAT_URL = "https://wtf.hiigara.net/api/run/{}"
-eat_wat = sv.on_regex(r"[今|明|后|大后]天(.*?)吃什么", rule=is_in_service("今天吃什么"))
-
+eat_wat = sv.on_regex(r"[今|明|后|大后]天(.*?)吃什么", rule=is_in_service('今天吃什么'))
@eat_wat.handle()
async def _eat(bot: Bot, event: MessageEvent) -> None:
@@ -131,32 +110,32 @@ async def _eat(bot: Bot, event: MessageEvent) -> None:
user_n = event.sender.nickname
arg = re.findall(r"[今|明|后|大后]天(.*?)吃什么", msg)[0]
nd = re.match(r"[今|明|后|大后][天]", msg)[0]
-
+
if arg == "中午":
a = f"LdS4K6/{randint(0, 999999)}"
url = EAT_URL.format(a)
params = {"event": "ManualRun"}
try:
data = json.loads(await post_bytes(url, params))
- except RequestTimeOut:
- raise RequestTimeOut("Request failed!")
-
- text = to_simple_string(data["text"]).replace("今天", nd)
+ except RequestError:
+ raise RequestError('Request failed!')
+
+ text = to_simple_string(data['text']).replace('今天', nd)
get_a = re.search(r"非常(.*?)的", text)[0]
- result = f"> {MessageSegment.at(user)}\n" + text.replace(get_a, "")
-
+ result = f"> {MessageSegment.at(user)}\n" + text.replace(get_a, '')
+
elif arg == "晚上":
a = f"KaTMS/{randint(0, 999999)}"
url = EAT_URL.format(a)
params = {"event": "ManualRun"}
try:
data = json.loads(await post_bytes(url, params))
- except RequestTimeOut:
- raise RequestTimeOut("Request failed!")
-
- text = to_simple_string(data["text"]).replace("今天", "")
+ except RequestError:
+ raise RequestError('Request failed!')
+
+ text = to_simple_string(data['text']).replace('今天', '')
result = f"> {MessageSegment.at(user)}\n" + text
-
+
else:
rd = randint(1, 10)
if rd == 5:
@@ -167,13 +146,11 @@ async def _eat(bot: Bot, event: MessageEvent) -> None:
params = {"event": "ManualRun"}
try:
data = json.loads(await post_bytes(url, params))
- except RequestTimeOut:
- raise RequestTimeOut("Request failed!")
-
- text = to_simple_string(data["text"]).replace("今天", nd)
+ except RequestError:
+ raise RequestError('Request failed!')
+
+ text = to_simple_string(data['text']).replace('今天', nd)
get_a = re.match(r"(.*?)的智商", text)[0]
- result = f"> {MessageSegment.at(user)}\n" + text.replace(
- get_a, f"{user_n}的智商"
- )
-
+ result = f"> {MessageSegment.at(user)}\n" + text.replace(get_a, f'{user_n}的智商')
+
await eat_wat.finish(Message(result))