mirror of
https://github.com/xuthus83/LittlePaimon.git
synced 2024-10-21 16:27:15 +08:00
✨ 新增myb全部重做
超管命令,加大米游币自动获取
时间延迟(请尝试更换自动获取时间来增加成功率)
This commit is contained in:
parent
cedd7366ef
commit
0c2dcacaac
@ -1,6 +1,7 @@
|
|||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
from nonebot import on_command
|
from nonebot import on_command
|
||||||
|
from nonebot.rule import to_me
|
||||||
from nonebot.permission import SUPERUSER
|
from nonebot.permission import SUPERUSER
|
||||||
from nonebot.adapters.onebot.v11 import GroupMessageEvent, PrivateMessageEvent
|
from nonebot.adapters.onebot.v11 import GroupMessageEvent, PrivateMessageEvent
|
||||||
from nonebot.plugin import PluginMetadata
|
from nonebot.plugin import PluginMetadata
|
||||||
@ -8,7 +9,7 @@ from nonebot.plugin import PluginMetadata
|
|||||||
from LittlePaimon.database.models import MihoyoBBSSub, PrivateCookie
|
from LittlePaimon.database.models import MihoyoBBSSub, PrivateCookie
|
||||||
from LittlePaimon.utils import logger
|
from LittlePaimon.utils import logger
|
||||||
from LittlePaimon.utils.message import CommandUID, CommandSwitch
|
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 .sign_handle import mhy_bbs_sign, bbs_auto_sign
|
||||||
from .draw import draw_result
|
from .draw import draw_result
|
||||||
|
|
||||||
@ -35,7 +36,7 @@ sign = on_command('mys签到', aliases={'米游社签到', 'mys自动签到', '
|
|||||||
'pm_usage': '米游社签到(uid)[on|off]',
|
'pm_usage': '米游社签到(uid)[on|off]',
|
||||||
'pm_priority': 1
|
'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_name': '米游社全部重签',
|
||||||
'pm_description': '重签全部米游社签到任务,需超级用户权限',
|
'pm_description': '重签全部米游社签到任务,需超级用户权限',
|
||||||
'pm_usage': '@Bot 全部重签',
|
'pm_usage': '@Bot 全部重签',
|
||||||
@ -49,6 +50,13 @@ get_coin = on_command('myb获取', aliases={'米游币获取', 'myb自动获取'
|
|||||||
'pm_priority': 2
|
'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 = []
|
signing_list = []
|
||||||
coin_getting_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)
|
await sign.finish(f'UID{uid}关闭米游币自动获取成功', at_sender=True)
|
||||||
else:
|
else:
|
||||||
await sign.finish(f'UID{uid}尚未开启米游币自动获取,无需关闭!', at_sender=True)
|
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()
|
||||||
|
@ -207,7 +207,7 @@ class MihoyoBBSCoin:
|
|||||||
10001] else f"出错了:{data['retcode']} {data['message']}"
|
10001] else f"出错了:{data['retcode']} {data['message']}"
|
||||||
logger.info('米游币自动获取', f'➤➤<r>{self.state}</r>')
|
logger.info('米游币自动获取', f'➤➤<r>{self.state}</r>')
|
||||||
return self.state
|
return self.state
|
||||||
await asyncio.sleep(random.randint(3, 6))
|
await asyncio.sleep(random.randint(5, 10))
|
||||||
logger.info('米游币自动获取', '➤➤讨论区签到<g>完成</g>')
|
logger.info('米游币自动获取', '➤➤讨论区签到<g>完成</g>')
|
||||||
return '讨论区签到:完成!'
|
return '讨论区签到:完成!'
|
||||||
|
|
||||||
@ -223,7 +223,7 @@ class MihoyoBBSCoin:
|
|||||||
data = req.json()
|
data = req.json()
|
||||||
if data['message'] == 'OK':
|
if data['message'] == 'OK':
|
||||||
num_ok += 1
|
num_ok += 1
|
||||||
await asyncio.sleep(random.randint(3, 6))
|
await asyncio.sleep(random.randint(5, 10))
|
||||||
logger.info('米游币自动获取', '➤➤看帖任务<g>完成</g>')
|
logger.info('米游币自动获取', '➤➤看帖任务<g>完成</g>')
|
||||||
return f'浏览帖子:完成{str(num_ok)}个!'
|
return f'浏览帖子:完成{str(num_ok)}个!'
|
||||||
|
|
||||||
@ -246,7 +246,7 @@ class MihoyoBBSCoin:
|
|||||||
if data['message'] == 'OK':
|
if data['message'] == 'OK':
|
||||||
num_ok += 1
|
num_ok += 1
|
||||||
# 取消点赞
|
# 取消点赞
|
||||||
await asyncio.sleep(random.randint(2, 4))
|
await asyncio.sleep(random.randint(3, 6))
|
||||||
req = await aiorequests.post(url=bbs_Likeurl,
|
req = await aiorequests.post(url=bbs_Likeurl,
|
||||||
headers=self.headers,
|
headers=self.headers,
|
||||||
json={
|
json={
|
||||||
@ -257,7 +257,7 @@ class MihoyoBBSCoin:
|
|||||||
if data['message'] == 'OK':
|
if data['message'] == 'OK':
|
||||||
num_cancel += 1
|
num_cancel += 1
|
||||||
logger.info('米游币自动获取', '➤➤点赞任务<g>完成</g>')
|
logger.info('米游币自动获取', '➤➤点赞任务<g>完成</g>')
|
||||||
await asyncio.sleep(random.randint(3, 6))
|
await asyncio.sleep(random.randint(5, 10))
|
||||||
return f'点赞帖子:完成{str(num_ok)}个!'
|
return f'点赞帖子:完成{str(num_ok)}个!'
|
||||||
|
|
||||||
async def share_post(self):
|
async def share_post(self):
|
||||||
@ -274,9 +274,9 @@ class MihoyoBBSCoin:
|
|||||||
if data['message'] == 'OK':
|
if data['message'] == 'OK':
|
||||||
return '分享帖子:完成!'
|
return '分享帖子:完成!'
|
||||||
else:
|
else:
|
||||||
await asyncio.sleep(random.randint(4, 7))
|
await asyncio.sleep(random.randint(5, 10))
|
||||||
logger.info('米游币自动获取', '➤➤分享任务<g>完成</g>')
|
logger.info('米游币自动获取', '➤➤分享任务<g>完成</g>')
|
||||||
await asyncio.sleep(random.randint(3, 6))
|
await asyncio.sleep(random.randint(5, 10))
|
||||||
return '分享帖子:完成!'
|
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)
|
@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():
|
async def bbs_auto_coin():
|
||||||
"""
|
"""
|
||||||
指定时间,执行所有米游币获取订阅任务, 并将结果分群绘图发送
|
指定时间,执行所有米游币获取订阅任务, 并将结果分群绘图发送
|
||||||
@ -311,7 +315,7 @@ async def bbs_auto_coin():
|
|||||||
subs = await MihoyoBBSSub.filter(sub_event='米游币自动获取').all()
|
subs = await MihoyoBBSSub.filter(sub_event='米游币自动获取').all()
|
||||||
if not subs:
|
if not subs:
|
||||||
return
|
return
|
||||||
logger.info('米游币自动获取', f'开始执行米游币自动获取,共<m>{len(subs)}</m>个任务,预计花费<m>{round(75 * len(subs) / 60, 2)}</m>分钟')
|
logger.info('米游币自动获取', f'开始执行米游币自动获取,共<m>{len(subs)}</m>个任务,预计花费<m>{round(100 * len(subs) / 60, 2)}</m>分钟')
|
||||||
coin_result_group = defaultdict(list)
|
coin_result_group = defaultdict(list)
|
||||||
coin_result_private = defaultdict(list)
|
coin_result_private = defaultdict(list)
|
||||||
for sub in subs:
|
for sub in subs:
|
||||||
@ -328,7 +332,7 @@ async def bbs_auto_coin():
|
|||||||
'result': '出错' not in result and 'Cookie' not in result,
|
'result': '出错' not in result and 'Cookie' not in result,
|
||||||
'msg': 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():
|
for group_id, result_list in coin_result_group.items():
|
||||||
result_num = len(result_list)
|
result_num = len(result_list)
|
||||||
|
@ -124,7 +124,7 @@ async def bbs_auto_sign():
|
|||||||
if not subs:
|
if not subs:
|
||||||
# 如果没有米游社原神签到订阅,则不执行签到任务
|
# 如果没有米游社原神签到订阅,则不执行签到任务
|
||||||
return
|
return
|
||||||
logger.info('米游社原神签到', f'开始执行米游社自动签到,共<m>{len(subs)}</m>个任务,预计花费<m>{round(100 * len(subs) / 60, 2)}</m>分钟')
|
logger.info('米游社原神签到', f'开始执行米游社自动签到,共<m>{len(subs)}</m>个任务,预计花费<m>{len(subs) * 2}</m>分钟')
|
||||||
sign_result_group = defaultdict(list)
|
sign_result_group = defaultdict(list)
|
||||||
sign_result_private = defaultdict(list)
|
sign_result_private = defaultdict(list)
|
||||||
for sub in subs:
|
for sub in subs:
|
||||||
|
Loading…
Reference in New Issue
Block a user