diff options
Diffstat (limited to 'ATRI/plugins/anti_effort')
-rw-r--r-- | ATRI/plugins/anti_effort/__init__.py | 62 | ||||
-rw-r--r-- | ATRI/plugins/anti_effort/data_source.py | 10 |
2 files changed, 35 insertions, 37 deletions
diff --git a/ATRI/plugins/anti_effort/__init__.py b/ATRI/plugins/anti_effort/__init__.py index 52fea9c..aa38f78 100644 --- a/ATRI/plugins/anti_effort/__init__.py +++ b/ATRI/plugins/anti_effort/__init__.py @@ -5,7 +5,6 @@ from random import choice from nonebot import get_bot from nonebot.params import ArgPlainText -from nonebot.permission import SUPERUSER from nonebot.adapters.onebot.v11 import ( Message, MessageEvent, @@ -14,12 +13,17 @@ from nonebot.adapters.onebot.v11 import ( ) from nonebot.adapters.onebot.v11.helpers import Cooldown +from ATRI.service import Service from ATRI.message import MessageBuilder +from ATRI.permission import MASTER from ATRI.utils.apscheduler import scheduler from .data_source import AntiEffort, PLUGIN_DIR +plugin = Service("谁是卷王").document("谁是卷王!").main_cmd("/ae") +ae = AntiEffort() + _lmt_notice = choice(["慢...慢一..点❤", "冷静1下", "歇会歇会~~", "呜呜...别急"]) _GET_URL_MSG = ( @@ -32,7 +36,7 @@ _GET_URL_MSG = ( ) -add_user = AntiEffort().on_command("!我也要卷", "加入卷王统计榜") +add_user = plugin.on_command("!我也要卷", "加入卷王统计榜") @add_user.got( @@ -51,13 +55,13 @@ async def _deal_add_user( user_id = event.user_id aititude = ["y", "Y", "是", "希望", "同意"] if to_global in aititude: - await AntiEffort().add_user(int(), user_id, user_nickname, url) + await ae.add_user(int(), user_id, user_nickname, url) - result = await AntiEffort().add_user(group_id, user_id, user_nickname, url) + result = await ae.add_user(group_id, user_id, user_nickname, url) await add_user.finish(result) -join_global_rank = AntiEffort().on_command("!参加公共卷", "加入公共卷王榜") +join_global_rank = plugin.on_command("!参加公共卷", "加入公共卷王榜") @join_global_rank.handle() @@ -65,14 +69,14 @@ async def _join_global_rank(event: GroupMessageEvent): group_id = event.group_id user_id = event.user_id - raw_data = AntiEffort().get_data(group_id) + raw_data = ae.get_data(group_id) if raw_data: data = raw_data["data"] for i in data: if i["user_id"] == user_id: user_nickname = i["user_nickname"] url = i["waka_url"] - await AntiEffort().add_user(int(), user_id, user_nickname, url) + await ae.add_user(int(), user_id, user_nickname, url) await join_global_rank.finish("完成~!") @@ -87,11 +91,11 @@ async def _( ): user_id = event.user_id - result = await AntiEffort().add_user(int(), user_id, user_nickname, url) + result = await ae.add_user(int(), user_id, user_nickname, url) await join_global_rank.finish(result) -user_leave = AntiEffort().on_command("!我不卷了", "退出卷王统计榜") +user_leave = plugin.on_command("!我不卷了", "退出卷王统计榜") @user_leave.handle([Cooldown(60, prompt=_lmt_notice)]) @@ -99,12 +103,12 @@ async def _user_leave(event: GroupMessageEvent): group_id = event.group_id user_id = event.user_id - AntiEffort().del_user(int(), user_id) - result = AntiEffort().del_user(group_id, user_id) + ae.del_user(int(), user_id) + result = ae.del_user(group_id, user_id) await user_leave.finish(result) -check_rank_today = AntiEffort().on_command("今日卷王", "查看今日卷王榜", aliases={"日卷王"}) +check_rank_today = plugin.on_command("今日卷王", "查看今日卷王榜", aliases={"日卷王"}) @check_rank_today.handle([Cooldown(15, prompt=_lmt_notice)]) @@ -113,15 +117,15 @@ async def _check_rank_today(event: GroupMessageEvent): group_id = event.group_id user_id = event.user_id - raw_data = AntiEffort().get_data(group_id) + raw_data = ae.get_data(group_id) if not raw_data: await check_rank_today.finish("贵群还没有人加入卷王统计榜!") - result = AntiEffort().gen_rank(raw_data, user_id, "today") + result = ae.gen_rank(raw_data, user_id, "today") await check_rank_today.finish(result) -check_rank_recent_week = AntiEffort().on_command("周卷王", "查看近一周卷王榜") +check_rank_recent_week = plugin.on_command("周卷王", "查看近一周卷王榜") @check_rank_recent_week.handle([Cooldown(15, prompt=_lmt_notice)]) @@ -130,15 +134,15 @@ async def _check_rank_recent_week(event: GroupMessageEvent): group_id = event.group_id user_id = event.user_id - raw_data = AntiEffort().get_data(group_id) + raw_data = ae.get_data(group_id) if not raw_data: await check_rank_recent_week.finish("贵群还没有人加入卷王统计榜!") - result = AntiEffort().gen_rank(raw_data, user_id, "recent_week") + result = ae.gen_rank(raw_data, user_id, "recent_week") await check_rank_recent_week.finish(result) -check_rank_global_today = AntiEffort().on_command("公共卷王", "查看今日公共卷王榜") +check_rank_global_today = plugin.on_command("公共卷王", "查看今日公共卷王榜") @check_rank_global_today.handle([Cooldown(15, prompt=_lmt_notice)]) @@ -146,15 +150,15 @@ async def _check_rank_global_today(event: MessageEvent): await check_rank_global_today.send("别急!正在统计!") user_id = event.user_id - raw_data = AntiEffort().get_data(int()) + raw_data = ae.get_data(int()) if not raw_data: await check_rank_global_today.finish("还没有人加入公共卷王统计榜!") - result = AntiEffort().gen_rank(raw_data, user_id, "global_today") + result = ae.gen_rank(raw_data, user_id, "global_today") await check_rank_global_today.finish(result) -check_rank_global_recent_week = AntiEffort().on_command("公共周卷王", "查看近一周公共卷王榜") +check_rank_global_recent_week = plugin.on_command("公共周卷王", "查看近一周公共卷王榜") @check_rank_global_recent_week.handle([Cooldown(15, prompt=_lmt_notice)]) @@ -162,32 +166,32 @@ async def _check_rank_global_recent_week(event: MessageEvent): await check_rank_global_recent_week.send("别急!正在统计!") user_id = event.user_id - raw_data = AntiEffort().get_data(int()) + raw_data = ae.get_data(int()) if not raw_data: await check_rank_global_recent_week.finish("还没有人加入公共卷王统计榜!") - result = AntiEffort().gen_rank(raw_data, user_id, "global_recent_week") + result = ae.gen_rank(raw_data, user_id, "global_recent_week") await check_rank_global_recent_week.finish(result) -update_data = AntiEffort().cmd_as_group("update", "更新卷王统计榜数据", permission=SUPERUSER) +update_data = plugin.cmd_as_group("update", "更新卷王统计榜数据", permission=MASTER) @update_data.handle() async def _update_data(event: MessageEvent): - await AntiEffort().update_data() + await ae.update_data() await update_data.finish("更新完成~!") @scheduler.scheduled_job("interval", name="卷王数据更新", minutes=15, misfire_grace_time=15) # type: ignore async def _(): - await AntiEffort().update_data() + await ae.update_data() @scheduler.scheduled_job("cron", name="卷王数据存储", hour=0, misfire_grace_time=30) # type: ignore async def _(): - await AntiEffort().update_data() - AntiEffort().store_user_data_recent() + await ae.update_data() + ae.store_user_data_recent() @scheduler.scheduled_job("cron", name="对昨日卷王进行颁奖", hour=8, misfire_grace_time=30) # type: ignore @@ -226,7 +230,7 @@ async def _(): winner_nickname = winner["user_nickname"] coding_time = float(winner["recent_count"]) - img = await AntiEffort().gen_img(winner_id, winner_nickname, coding_time) + img = await ae.gen_img(winner_id, winner_nickname, coding_time) result = MessageSegment.image(img) try: diff --git a/ATRI/plugins/anti_effort/data_source.py b/ATRI/plugins/anti_effort/data_source.py index 02bdb82..2d04823 100644 --- a/ATRI/plugins/anti_effort/data_source.py +++ b/ATRI/plugins/anti_effort/data_source.py @@ -6,8 +6,7 @@ from datetime import datetime from tabulate import tabulate from ATRI import driver -from ATRI.service import Service, ServiceTools -from ATRI.rule import is_in_service +from ATRI.service import ServiceTools from ATRI.utils import request from ATRI.log import log @@ -22,12 +21,7 @@ PLUGIN_DIR = Path(".") / "data" / "plugins" / "anti_effort" PLUGIN_DIR.mkdir(parents=True, exist_ok=True) -class AntiEffort(Service): - def __init__(self): - Service.__init__( - self, "谁是卷王", "谁是卷王!", rule=is_in_service("谁是卷王"), main_cmd="/ae" - ) - +class AntiEffort: def get_enabled_group(self) -> list: groups = list() |