zhenxun_bot/plugins/epic/__init__.py

78 lines
2.5 KiB
Python
Raw Normal View History

2022-02-19 18:20:19 +08:00
from nonebot import on_regex
2021-05-20 19:23:32 +08:00
from services.log import logger
2022-02-19 18:20:19 +08:00
from nonebot.adapters.onebot.v11 import Bot, MessageEvent, GroupMessageEvent
2021-05-20 19:23:32 +08:00
from nonebot.typing import T_State
2021-06-30 19:50:55 +08:00
from utils.utils import scheduler, get_bot
2021-10-03 21:39:03 +08:00
from .data_source import get_epic_free
2021-10-03 14:24:07 +08:00
from utils.manager import group_manager
2021-12-16 11:16:28 +08:00
from configs.config import Config
2021-10-03 14:24:07 +08:00
__zx_plugin_name__ = "epic免费游戏"
__plugin_usage__ = """
usage
可以不玩不能没有每日白嫖
指令
epic
""".strip()
__plugin_des__ = "可以不玩,不能没有,每日白嫖"
__plugin_cmd__ = ["epic"]
2021-11-23 21:44:59 +08:00
__plugin_version__ = 0.1
2021-10-03 18:34:56 +08:00
__plugin_author__ = "AkashiCoin"
2021-10-03 14:24:07 +08:00
__plugin_settings__ = {
"level": 5,
"default_status": True,
"limit_superuser": False,
"cmd": ["epic"],
}
2021-10-03 20:17:08 +08:00
__plugin_task__ = {"epic_free_game": "epic免费游戏"}
2021-12-16 11:16:28 +08:00
Config.add_plugin_config(
"_task",
"DEFAULT_EPIC_FREE_GAME",
True,
help_="被动 epic免费游戏 进群默认开关状态",
default_value=True,
)
2022-02-19 18:20:19 +08:00
epic = on_regex("^epic$", priority=5, block=True)
2021-05-20 19:23:32 +08:00
@epic.handle()
2021-10-03 21:39:03 +08:00
async def handle(bot: Bot, event: MessageEvent, state: T_State):
Type_Event = "Private"
if isinstance(event, GroupMessageEvent):
Type_Event = "Group"
msg_list, code = await get_epic_free(bot, Type_Event)
2021-10-03 18:34:56 +08:00
if code == 404:
2021-10-03 20:17:08 +08:00
await epic.send(msg_list)
2021-10-03 18:34:56 +08:00
elif isinstance(event, GroupMessageEvent):
await bot.send_group_forward_msg(group_id=event.group_id, messages=msg_list)
else:
for msg in msg_list:
2021-10-03 20:35:55 +08:00
await bot.send_private_msg(user_id=event.user_id, message=msg)
2021-05-20 19:23:32 +08:00
logger.info(
2021-08-17 23:17:08 +08:00
f"(USER {event.user_id}, GROUP {event.group_id if isinstance(event, GroupMessageEvent) else 'private'})"
2021-07-30 21:21:51 +08:00
f" 获取epic免费游戏"
)
2021-05-20 19:23:32 +08:00
# epic免费游戏
@scheduler.scheduled_job(
2021-07-30 21:21:51 +08:00
"cron",
2021-05-20 19:23:32 +08:00
hour=12,
minute=1,
)
async def _():
bot = get_bot()
2021-10-03 14:24:07 +08:00
gl = await bot.get_group_list()
2021-07-30 21:21:51 +08:00
gl = [g["group_id"] for g in gl]
msg_list, code = await get_epic_free(bot, "Group")
2021-05-20 19:23:32 +08:00
for g in gl:
2021-10-03 20:17:08 +08:00
if await group_manager.check_group_task_status(g, "epic_free_game"):
2021-10-03 14:24:07 +08:00
try:
2021-12-16 11:16:28 +08:00
if msg_list and code == 200:
2021-10-03 20:17:08 +08:00
await bot.send_group_forward_msg(group_id=g, messages=msg_list)
else:
bot.send_group_msg(group_id=g, messages=msg_list)
2021-10-03 14:24:07 +08:00
except Exception as e:
logger.error(f"GROUP {g} epic免费游戏推送错误 {type(e)}: {e}")