PagerMaid_Plugins_Pyro/everyday_greet/main.py

85 lines
3.4 KiB
Python
Raw Normal View History

2022-07-21 07:07:28 +00:00
import secrets
from pagermaid import bot, scheduler
from pagermaid.listener import listener
from pagermaid.utils import Message, edit_delete, check_manage_subs
from pagermaid.sub_utils import Sub
everyday_greet_sub = Sub("everyday_greet")
everyday_greet_data = {
"breakfast": [
"早上7点啦吃早餐啦",
"起床啦起床啦!现在还没起床的都是懒狗!",
"哦哈哟米娜桑!今日も元気でね!🥳",
"新的一天又是全气满满哦!",
2023-07-01 12:18:58 +00:00
"一日之计在于晨,懒狗还不起床?",
2022-07-21 07:07:28 +00:00
],
2023-07-01 12:18:58 +00:00
"lunch": ["中午12点啦吃午餐啦", "恰饭啦恰饭啦!再不去食堂就没吃的啦!", "中午还不恰点好的?整点碳水大餐嗯造吧!"],
"snack": ["下午三点了,饮茶了先!", "摸鱼时刻,整点恰滴先~", "做咩啊做,真给老板打工啊!快来摸鱼!"],
"dinner": ["下午6点了不会真有人晚上加班恰外卖吧", "下班咯,这不开造?", "当务之急是下班!"],
"midnight": ["晚上10点啦整个夜宵犒劳自己吧", "夜宵这不来个外卖?", "夜宵这不整点好的?"],
2022-07-21 07:07:28 +00:00
}
async def everyday_do_greet(when: str):
for gid in everyday_greet_sub.get_subs():
msg = secrets.choice(everyday_greet_data[when])
try:
await bot.send_message(gid, msg)
except Exception as e: # noqa
everyday_greet_sub.del_id(gid)
@scheduler.scheduled_job("cron", hour="7", id="everyday_greet.breakfast")
async def everyday_greet_breakfast() -> None:
await everyday_do_greet("breakfast")
@scheduler.scheduled_job("cron", hour="12", id="everyday_greet.lunch")
async def everyday_greet_lunch() -> None:
await everyday_do_greet("lunch")
@scheduler.scheduled_job("cron", hour="15", id="everyday_greet.snack")
async def everyday_greet_snack() -> None:
await everyday_do_greet("snack")
@scheduler.scheduled_job("cron", hour="18", id="everyday_greet.dinner")
async def everyday_greet_dinner() -> None:
await everyday_do_greet("dinner")
@scheduler.scheduled_job("cron", hour="22", id="everyday_greet.midnight")
async def everyday_greet_midnight() -> None:
await everyday_do_greet("midnight")
2023-07-01 12:18:58 +00:00
@listener(
command="everyday_greet",
parameters="订阅/退订",
groups_only=True,
description="订阅/退订每日问候,仅支持群组",
)
2022-07-21 07:07:28 +00:00
async def everyday_greet(message: Message):
if not message.arguments:
return await message.edit("请输入 `订阅/退订` 参数")
elif message.arguments == "订阅":
if check_manage_subs(message):
if everyday_greet_sub.check_id(message.chat.id):
return await edit_delete(message, "❌ 你已经订阅了每日问候")
everyday_greet_sub.add_id(message.chat.id)
await message.edit("你已经成功订阅了每日问候")
else:
await edit_delete(message, "❌ 权限不足,无法订阅每日问候")
elif message.arguments == "退订":
if check_manage_subs(message):
if not everyday_greet_sub.check_id(message.chat.id):
return await edit_delete(message, "❌ 你还没有订阅每日问候")
everyday_greet_sub.del_id(message.chat.id)
await message.edit("你已经成功退订了每日问候")
else:
await edit_delete(message, "❌ 权限不足,无法退订每日问候")
else:
await message.edit("请输入 `订阅/退订` 参数")