diff options
author | Kyomotoi <[email protected]> | 2022-07-19 13:31:20 +0800 |
---|---|---|
committer | Kyomotoi <[email protected]> | 2022-07-19 13:31:20 +0800 |
commit | fee63ad04c6601c2c0452d9b79944025584b152d (patch) | |
tree | 14cc01f105bed8d82d2211254c0bc75a64c54b23 /ATRI/plugins | |
parent | 66f07a48c69eb51aac8f6ec598136f2709b08890 (diff) | |
download | ATRI-fee63ad04c6601c2c0452d9b79944025584b152d.tar.gz ATRI-fee63ad04c6601c2c0452d9b79944025584b152d.tar.bz2 ATRI-fee63ad04c6601c2c0452d9b79944025584b152d.zip |
🚑️ 修复插件: 谁是卷王
Diffstat (limited to 'ATRI/plugins')
-rw-r--r-- | ATRI/plugins/anti_effort/__init__.py | 16 | ||||
-rw-r--r-- | ATRI/plugins/anti_effort/data_source.py | 15 | ||||
-rw-r--r-- | ATRI/plugins/anti_effort/models.py | 2 |
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 |