diff --git a/LittlePaimon/plugins/Paimon_Autobbs/__init__.py b/LittlePaimon/plugins/Paimon_Autobbs/__init__.py index 2fc32fc..4211ab2 100644 --- a/LittlePaimon/plugins/Paimon_Autobbs/__init__.py +++ b/LittlePaimon/plugins/Paimon_Autobbs/__init__.py @@ -1,6 +1,7 @@ from typing import Union from nonebot import on_command +from nonebot.rule import to_me from nonebot.permission import SUPERUSER from nonebot.adapters.onebot.v11 import GroupMessageEvent, PrivateMessageEvent from nonebot.plugin import PluginMetadata @@ -8,7 +9,7 @@ from nonebot.plugin import PluginMetadata from LittlePaimon.database.models import MihoyoBBSSub, PrivateCookie from LittlePaimon.utils import logger from LittlePaimon.utils.message import CommandUID, CommandSwitch -from .coin_handle import mhy_bbs_coin +from .coin_handle import mhy_bbs_coin, bbs_auto_coin from .sign_handle import mhy_bbs_sign, bbs_auto_sign from .draw import draw_result @@ -35,7 +36,7 @@ sign = on_command('mys签到', aliases={'米游社签到', 'mys自动签到', ' 'pm_usage': '米游社签到(uid)[on|off]', 'pm_priority': 1 }) -all_sign = on_command('全部重签', priority=8, block=True, permission=SUPERUSER, state={ +all_sign = on_command('全部重签', priority=8, block=True, permission=SUPERUSER, rule=to_me(), state={ 'pm_name': '米游社全部重签', 'pm_description': '重签全部米游社签到任务,需超级用户权限', 'pm_usage': '@Bot 全部重签', @@ -49,6 +50,13 @@ get_coin = on_command('myb获取', aliases={'米游币获取', 'myb自动获取' 'pm_priority': 2 }) +all_coin = on_command('myb全部重做', priority=8, block=True, permission=SUPERUSER, rule=to_me(), state={ + 'pm_name': '米游币获取全部重做', + 'pm_description': '重做全部米游币获取任务,需超级用户权限', + 'pm_usage': '@Bot myb全部重做', + 'pm_priority': 4 + }) + signing_list = [] coin_getting_list = [] @@ -134,3 +142,9 @@ async def _(event: Union[GroupMessageEvent, PrivateMessageEvent], uid=CommandUID await sign.finish(f'UID{uid}关闭米游币自动获取成功', at_sender=True) else: await sign.finish(f'UID{uid}尚未开启米游币自动获取,无需关闭!', at_sender=True) + + +@all_coin.handle() +async def _(event: Union[GroupMessageEvent, PrivateMessageEvent]): + await all_coin.send('开始执行myb全部重做,需要一定时间...') + await bbs_auto_coin() diff --git a/LittlePaimon/plugins/Paimon_Autobbs/coin_handle.py b/LittlePaimon/plugins/Paimon_Autobbs/coin_handle.py index fa862df..fb16f0b 100644 --- a/LittlePaimon/plugins/Paimon_Autobbs/coin_handle.py +++ b/LittlePaimon/plugins/Paimon_Autobbs/coin_handle.py @@ -207,7 +207,7 @@ class MihoyoBBSCoin: 10001] else f"出错了:{data['retcode']} {data['message']}" logger.info('米游币自动获取', f'➤➤{self.state}') return self.state - await asyncio.sleep(random.randint(3, 6)) + await asyncio.sleep(random.randint(5, 10)) logger.info('米游币自动获取', '➤➤讨论区签到完成') return '讨论区签到:完成!' @@ -223,7 +223,7 @@ class MihoyoBBSCoin: data = req.json() if data['message'] == 'OK': num_ok += 1 - await asyncio.sleep(random.randint(3, 6)) + await asyncio.sleep(random.randint(5, 10)) logger.info('米游币自动获取', '➤➤看帖任务完成') return f'浏览帖子:完成{str(num_ok)}个!' @@ -246,7 +246,7 @@ class MihoyoBBSCoin: if data['message'] == 'OK': num_ok += 1 # 取消点赞 - await asyncio.sleep(random.randint(2, 4)) + await asyncio.sleep(random.randint(3, 6)) req = await aiorequests.post(url=bbs_Likeurl, headers=self.headers, json={ @@ -257,7 +257,7 @@ class MihoyoBBSCoin: if data['message'] == 'OK': num_cancel += 1 logger.info('米游币自动获取', '➤➤点赞任务完成') - await asyncio.sleep(random.randint(3, 6)) + await asyncio.sleep(random.randint(5, 10)) return f'点赞帖子:完成{str(num_ok)}个!' async def share_post(self): @@ -274,9 +274,9 @@ class MihoyoBBSCoin: if data['message'] == 'OK': return '分享帖子:完成!' else: - await asyncio.sleep(random.randint(4, 7)) + await asyncio.sleep(random.randint(5, 10)) logger.info('米游币自动获取', '➤➤分享任务完成') - await asyncio.sleep(random.randint(3, 6)) + await asyncio.sleep(random.randint(5, 10)) return '分享帖子:完成!' @@ -301,6 +301,10 @@ async def mhy_bbs_coin(user_id: str, uid: str) -> str: @scheduler.scheduled_job('cron', hour=pm.config.auto_myb_hour, minute=pm.config.auto_myb_minute, misfire_grace_time=10) +async def _(): + await bbs_auto_coin() + + async def bbs_auto_coin(): """ 指定时间,执行所有米游币获取订阅任务, 并将结果分群绘图发送 @@ -311,7 +315,7 @@ async def bbs_auto_coin(): subs = await MihoyoBBSSub.filter(sub_event='米游币自动获取').all() if not subs: return - logger.info('米游币自动获取', f'开始执行米游币自动获取,共{len(subs)}个任务,预计花费{round(75 * len(subs) / 60, 2)}分钟') + logger.info('米游币自动获取', f'开始执行米游币自动获取,共{len(subs)}个任务,预计花费{round(100 * len(subs) / 60, 2)}分钟') coin_result_group = defaultdict(list) coin_result_private = defaultdict(list) for sub in subs: @@ -328,7 +332,7 @@ async def bbs_auto_coin(): 'result': '出错' not in result and 'Cookie' not in result, 'msg': result }) - await asyncio.sleep(random.randint(3, 6)) + await asyncio.sleep(random.randint(15, 25)) for group_id, result_list in coin_result_group.items(): result_num = len(result_list) diff --git a/LittlePaimon/plugins/Paimon_Autobbs/sign_handle.py b/LittlePaimon/plugins/Paimon_Autobbs/sign_handle.py index 06ffff7..ce410f5 100644 --- a/LittlePaimon/plugins/Paimon_Autobbs/sign_handle.py +++ b/LittlePaimon/plugins/Paimon_Autobbs/sign_handle.py @@ -124,7 +124,7 @@ async def bbs_auto_sign(): if not subs: # 如果没有米游社原神签到订阅,则不执行签到任务 return - logger.info('米游社原神签到', f'开始执行米游社自动签到,共{len(subs)}个任务,预计花费{round(100 * len(subs) / 60, 2)}分钟') + logger.info('米游社原神签到', f'开始执行米游社自动签到,共{len(subs)}个任务,预计花费{len(subs) * 2}分钟') sign_result_group = defaultdict(list) sign_result_private = defaultdict(list) for sub in subs: