summaryrefslogtreecommitdiff
path: root/ATRI/plugins/anti_effort
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI/plugins/anti_effort')
-rw-r--r--ATRI/plugins/anti_effort/__init__.py62
-rw-r--r--ATRI/plugins/anti_effort/data_source.py10
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()