|
15 | 15 | from nonebot.rule import to_me |
16 | 16 | from nonebot.typing import T_State |
17 | 17 |
|
18 | | -from .captcha.captcha import gain_num |
| 18 | +from .captcha.captcha import gain_num, get_pass_challenge |
19 | 19 | from .config.config import config |
20 | 20 | from .handle.coin_handle import bbs_auto_coin, mhy_bbs_coin |
21 | 21 | from .handle.sign_handle import bbs_auto_sign, mhy_bbs_sign |
|
158 | 158 | "pm_priority": 10, |
159 | 159 | }, |
160 | 160 | ) |
| 161 | +pass_ch = on_command( |
| 162 | + "米游社过码", |
| 163 | + aliases={"主动过码"}, |
| 164 | + priority=1, |
| 165 | + block=True, |
| 166 | + state={ |
| 167 | + "pm_name": "米游社过码", |
| 168 | + "pm_description": "为用户进行米游社过码", |
| 169 | + "pm_usage": "米游社过码", |
| 170 | + "pm_priority": 1, |
| 171 | + }, |
| 172 | +) |
161 | 173 |
|
162 | 174 | signing_list = [] |
163 | 175 | coin_getting_list = [] |
@@ -541,3 +553,24 @@ async def _(): |
541 | 553 | await update_self.send("正在更新验证签到插件,请稍后", at_sender=True) |
542 | 554 | result = await do_update() |
543 | 555 | await update_self.finish(result, at_sender=True) |
| 556 | + |
| 557 | + |
| 558 | +@pass_ch.handle() |
| 559 | +async def _( |
| 560 | + event: Union[GroupMessageEvent, PrivateMessageEvent], uid=CommandUID() |
| 561 | +): |
| 562 | + await pass_ch.send("开始执行米游社过码,请稍后,请不要频繁的执行", at_sender=True) |
| 563 | + judgment = isinstance(event, GroupMessageEvent) |
| 564 | + if judgment and event.group_id in config.group_allow_list: |
| 565 | + Logger.info(f"群聊{event.group_id}在白名单内,开始执行米游社过码") |
| 566 | + result = await get_pass_challenge(uid, str(event.user_id), config.ssbq_ch) |
| 567 | + elif event.user_id in config.member_allow_list: |
| 568 | + Logger.info(f"用户{event.user_id}在白名单内,开始执行米游社过码") |
| 569 | + result = await get_pass_challenge(uid, str(event.user_id), config.ssbq_ch) |
| 570 | + else: |
| 571 | + Logger.info(f"用户{event.user_id}不在白名单内,无法执行过码") |
| 572 | + await pass_ch.finish("你没有权限执行米游社过码,请联系超管", at_sender=True) |
| 573 | + if result: |
| 574 | + await pass_ch.finish("过码成功(也许)", at_sender=True) |
| 575 | + else: |
| 576 | + await pass_ch.finish("过码失败", at_sender=True) |
0 commit comments