summaryrefslogtreecommitdiff
path: root/ATRI/plugins
diff options
context:
space:
mode:
authorKyomotoi <[email protected]>2022-07-19 13:31:20 +0800
committerKyomotoi <[email protected]>2022-07-19 13:31:20 +0800
commitfee63ad04c6601c2c0452d9b79944025584b152d (patch)
tree14cc01f105bed8d82d2211254c0bc75a64c54b23 /ATRI/plugins
parent66f07a48c69eb51aac8f6ec598136f2709b08890 (diff)
downloadATRI-fee63ad04c6601c2c0452d9b79944025584b152d.tar.gz
ATRI-fee63ad04c6601c2c0452d9b79944025584b152d.tar.bz2
ATRI-fee63ad04c6601c2c0452d9b79944025584b152d.zip
🚑️ 修复插件: 谁是卷王
Diffstat (limited to 'ATRI/plugins')
-rw-r--r--ATRI/plugins/anti_effort/__init__.py16
-rw-r--r--ATRI/plugins/anti_effort/data_source.py15
-rw-r--r--ATRI/plugins/anti_effort/models.py2
3 files changed, 17 insertions, 16 deletions
diff --git a/ATRI/plugins/anti_effort/__init__.py b/ATRI/plugins/anti_effort/__init__.py
index 66bf8b4..77a4710 100644
--- a/ATRI/plugins/anti_effort/__init__.py
+++ b/ATRI/plugins/anti_effort/__init__.py
@@ -22,23 +22,19 @@ add_user = AntiEffort().on_command("!我也要卷", "加入卷王统计榜")
add_user_cmd = AntiEffort().cmd_as_group("join", "加入卷王统计榜")
-@add_user.handle()
-@add_user_cmd.handle()
-async def _add_user(matcher: Matcher, args: Message = CommandArg()):
- msg = args.extract_plain_text()
- if msg:
- matcher.set_arg("waka_url", args)
-
-
@add_user.got("waka_url", _GET_URL_MSG)
@add_user_cmd.got("waka_url", _GET_URL_MSG)
+@add_user.got("rank_nickname", "如何在排行榜中称呼你捏")
+@add_user_cmd.got("rank_nickname", "如何在排行榜中称呼你捏")
async def _deal_add_user(
- event: GroupMessageEvent, _url: str = ArgPlainText("waka_url")
+ event: GroupMessageEvent,
+ _url: str = ArgPlainText("waka_url"),
+ user_nickname: str = ArgPlainText("rank_nickname"),
):
group_id = event.group_id
user_id = event.user_id
- result = AntiEffort().add_user(group_id, user_id, (_url))
+ result = AntiEffort().add_user(group_id, user_id, user_nickname, _url)
await add_user.finish(result)
diff --git a/ATRI/plugins/anti_effort/data_source.py b/ATRI/plugins/anti_effort/data_source.py
index f9a943f..0a0ef02 100644
--- a/ATRI/plugins/anti_effort/data_source.py
+++ b/ATRI/plugins/anti_effort/data_source.py
@@ -21,13 +21,14 @@ class AntiEffort(Service):
self, "谁是卷王", "谁是卷王!", rule=is_in_service("谁是卷王"), main_cmd="/ae"
)
- def add_user(self, group_id: int, user_id: int, waka_url: str) -> str:
+ def add_user(
+ self, group_id: int, user_id: int, user_nickname: str, waka_url: str
+ ) -> str:
patt = r"/@([a-zA-Z0-9].*?)/([a-zA-Z0-9].*?).json"
match = re.findall(patt, waka_url)
if not match:
return "哥,你提供的链接有问题啊"
- w_user_name = match[0][0]
w_user_id = match[0][1]
file_path = PLUGIN_DIR / f"{group_id}.json"
@@ -36,10 +37,14 @@ class AntiEffort(Service):
f.write(json.dumps(list()))
data: list = json.loads(file_path.read_text())
+ for i in data:
+ if i["user_id"] == user_id:
+ return "你已经在卷王统计榜力!"
+
data.append(
AntiEffortUserModel(
user_id=user_id,
- w_user_name=w_user_name,
+ user_nickname=user_nickname,
w_user_id=w_user_id,
waka_url=waka_url,
last_7_days_count=int(),
@@ -62,7 +67,7 @@ class AntiEffort(Service):
f.write(json.dumps(data))
return "成功退出卷王统计榜!"
- return "贵群还没有人加入卷王统计榜!"
+ return "你未加入卷王统计榜捏"
def get_data(self, group_id: int) -> list:
file_path = PLUGIN_DIR / f"{group_id}.json"
@@ -99,11 +104,11 @@ class AntiEffort(Service):
for j in data:
try:
resp = await request.get(j["waka_url"])
+ user_w_data = resp.json() # type: ignore
except Exception:
log.error(f"获取卷王 {j['user_id']} 数据失败!")
continue
- user_w_data = resp.json() # type: ignore
d = user_w_data["data"]
user_w_last_7_days_count = float()
user_w_recent_count = float(d[-1]["grand_total"]["decimal"])
diff --git a/ATRI/plugins/anti_effort/models.py b/ATRI/plugins/anti_effort/models.py
index 928c4ec..aca8fa4 100644
--- a/ATRI/plugins/anti_effort/models.py
+++ b/ATRI/plugins/anti_effort/models.py
@@ -3,7 +3,7 @@ from pydantic import BaseModel
class AntiEffortUserModel(BaseModel):
user_id: int
- w_user_name: str
+ user_nickname: str
w_user_id: str
waka_url: str
last_7_days_count: float