1
0
mirror of https://github.com/sui-feng-cb/AzurLaneAutoScript1.git synced 2026-07-13 10:58:02 +08:00

Feat: delay Daily to end of downtime

This commit is contained in:
positnuec
2026-07-10 07:59:47 +08:00
parent 22ca2d0542
commit 1c3d83e92d
9 changed files with 60 additions and 3 deletions

View File

@@ -1,3 +1,5 @@
from datetime import datetime
import numpy as np
import module.config.server as server
@@ -7,6 +9,7 @@ from module.combat.combat import Combat
from module.daily.assets import *
from module.logger import logger
from module.ocr.ocr import Digit
from module.smart_mgmt.utils import parse_downtime
from module.ui.assets import BACK_ARROW, DAILY_CHECK
from module.ui.page import page_campaign_menu, page_daily
@@ -335,13 +338,44 @@ class Daily(Combat):
logger.info('Daily clear complete.')
break
def _get_downtime_end(self):
"""
Get downtime end datetime on maintenance day.
Returns:
datetime.datetime: End datetime if today is maintenance day and
maintenance has not ended yet, or None if smart_mgmt unavailable,
today is not maintenance day, or maintenance already ended.
"""
if self.config.SERVER != 'cn':
return None
if not self.config.cross_get('DowntimeMgmt.DowntimeStrategy.ManageDaily', False):
return None
window = self.config.cross_get('DowntimeMgmt.Downtime.Window', None)
if not window:
return None
end_dt = parse_downtime(window)
if end_dt is None:
return None
now = datetime.now()
if end_dt.date() != now.date():
return None
if end_dt <= now:
return None
return end_dt
def run(self):
"""
Pages:
in: Any page
out: page_daily
"""
# Cannot stay in page_daily, because order is disordered.
self.daily_run()
# Cannot stay in page_daily, because order is disordered.
self.config.task_delay(server_update=True)
end_dt = self._get_downtime_end()
if end_dt is not None:
logger.info('Downtime today, delay to end of downtime')
self.config.task_delay(target=end_dt)
else:
self.config.task_delay(server_update=True)