1
0
mirror of https://github.com/TheFunny/ArisuAutoSweeper synced 2026-01-07 14:05:12 +00:00

Compare commits

..

1 Commits

Author SHA1 Message Date
RedDeadDepresso
14d3b9246a
Merge 836ea595ca into 2cad7ebbac 2024-01-04 22:50:48 +00:00
8 changed files with 25 additions and 75 deletions

View File

@ -13,7 +13,4 @@ class CTkAddButton(customtkinter.CTkFrame):
def set_button(self, value):
self.option_menu.set("")
self.button.configure(text=value)
def configure(self, *args, **kwargs):
self.button.configure(*args, **kwargs)
self.button.configure(text=value)

View File

@ -29,7 +29,6 @@ class AzurLaneAutoScript:
# Failure count of tasks
# Key: str, task name, value: int, failure count
self.failure_record = {}
self.operating_system = platform.system()
@cached_property
def config(self):
@ -232,21 +231,21 @@ class AzurLaneAutoScript:
if not self.wait_until(task.next_run):
del_cached_property(self, 'config')
continue
elif method == 'exit_aas':
self.config.Optimization_WhenTaskQueueEmpty = 'goto_main'
self.exit_aas()
exit(1)
elif method == 'exit_emulator':
self.config.Optimization_WhenTaskQueueEmpty = 'goto_main'
self.exit_emulator()
exit(1) # stops AAS from restarting emulator
elif method == 'exit_aas_emulator':
self.exit_emulator()
self.exit_aas()
exit(1)
elif method == 'shutdown':
self.config.Optimization_WhenTaskQueueEmpty = 'goto_main'
self.shutdown()
os = platform.system()
if os not in ["Windows", "Linux", "Darwin"]:
logger.info("Shutdown set during wait but operating system not supported")
else:
logger.info('Shutdown during wait')
try:
self.shutdown(os)
msg = CTkMessagebox(title="AAS: Cancel Shutdown?", message="All tasks have been completed: shutting down. Do you want to cancel?",
icon="MCE\icons\question.png", option_1="Cancel")
response = msg.get()
if response=="Cancel":
self.abort_shutdown(os)
except:
logger.error("Failed to shutdown. It may be due to a lack of administrator privileges.")
release_resources()
self.device.release_during_wait()
if not self.wait_until(task.next_run):
@ -332,52 +331,17 @@ class AzurLaneAutoScript:
self.checker.check_now()
continue
def exit_emulator(self):
if self.operating_system != 'Windows':
logger.error("Exiting emulator is only supported on Windows")
return
try:
from module.device.platform.platform_windows import PlatformWindows
PlatformWindows(self.config).emulator_stop()
except:
logger.error("Failed to stop emulator. It may be due to a lack of administrator privileges.")
def exit_aas(self):
if self.operating_system != 'Windows':
logger.error("Exiting AAS is only supported on Windows")
return
try:
from module.device.platform.platform_windows import PlatformWindows
PlatformWindows(self.config).kill_process_by_regex("aas\.exe")
except:
logger.error("Failed to stop AAS. It may be due to a lack of administrator privileges.")
def shutdown(self):
if self.operating_system not in ["Windows", "Linux", "Darwin"]:
logger.error("Shutdown set during wait but operating system not supported")
else:
logger.info('Shutdown during wait')
try:
self.start_shutdown()
msg = CTkMessagebox(title="AAS: Cancel Shutdown?", message="All tasks have been completed: shutting down. Do you want to cancel?",
icon="MCE\icons\question.png", option_1="Cancel")
response = msg.get()
if response=="Cancel":
self.cancel_shutdown()
except:
logger.error("Failed to shutdown. It may be due to a lack of administrator privileges.")
def start_shutdown(self):
def shutdown(self, os):
logger.info("Running Shutting down")
if self.operating_system == "Windows":
if os == "Windows":
subprocess.run(["shutdown", "-s", "-t", "60"])
elif self.operating_system in ["Linux", "Darwin"]:
elif os in ["Linux", "Darwin"]:
subprocess.run(["shutdown", "-h", "+1"])
def cancel_shutdown(self):
if self.operating_system == "Windows":
def abort_shutdown(self, os):
if os == "Windows":
subprocess.run(["shutdown", "-a"])
elif self.operating_system in ["Linux", "Darwin"]:
elif os in ["Linux", "Darwin"]:
subprocess.run(["shutdown", "-c"])
if __name__ == '__main__':

View File

@ -129,9 +129,6 @@
"stay_there",
"goto_main",
"close_game",
"exit_aas",
"exit_emulator",
"exit_aas_emulator",
"shutdown"
]
}

View File

@ -71,7 +71,7 @@ Optimization:
CombatScreenshotInterval: 1.0
WhenTaskQueueEmpty:
value: goto_main
option: [ stay_there, goto_main, close_game, exit_aas, exit_emulator, exit_aas_emulator, shutdown ]
option: [ stay_there, goto_main, close_game, shutdown ]
# ==================== Daily ====================

View File

@ -37,7 +37,7 @@ class GeneratedConfig:
# Group `Optimization`
Optimization_ScreenshotInterval = 0.3
Optimization_CombatScreenshotInterval = 1.0
Optimization_WhenTaskQueueEmpty = 'goto_main' # stay_there, goto_main, close_game, exit_aas, exit_emulator, exit_aas_emulator, shutdown
Optimization_WhenTaskQueueEmpty = 'goto_main' # stay_there, goto_main, close_game, shutdown
# Group `Cafe`
Cafe_Reward = True

View File

@ -221,13 +221,10 @@
},
"WhenTaskQueueEmpty": {
"name": "When Task Queue is Empty",
"help": "Close Blue Archive when there are no pending tasks, can help reduce CPU.\nExit AAS, emulator and shutdown should be set while AAS is running tasks otherwise it won't start.\nExit AAS and emulator are only available on Windows.\nExit emulator is only possible if instance name and emulator path follow the same auto-filled values according to 'Serial' in Emulator Settings",
"help": "Close AL when there are no pending tasks, can help reduce CPU",
"stay_there": "Stay There",
"goto_main": "Goto Main Page",
"close_game": "Close Game",
"exit_aas": "Exit AAS",
"exit_emulator": "Exit Emulator",
"exit_aas_emulator": "Exit AAS & Emulator",
"shutdown": "Shutdown"
}
},

View File

@ -225,9 +225,6 @@
"stay_there": "停在原处",
"goto_main": "前往主界面",
"close_game": "关闭游戏",
"exit_aas": "exit_aas",
"exit_emulator": "exit_emulator",
"exit_aas_emulator": "exit_aas_emulator",
"shutdown": "shutdown"
}
},

View File

@ -97,7 +97,7 @@ class PlatformWindows(PlatformBase, EmulatorManager):
self.execute(f'"{exe}" -clone:{instance.name}')
elif instance == Emulator.BlueStacks5:
# HD-Player.exe -instance Pie64
self.execute(f'"{exe}" --instance {instance.name}')
self.execute(f'"{exe}" -instance {instance.name}')
elif instance == Emulator.BlueStacks4:
# BlueStacks\Client\Bluestacks.exe -vmname Android_1
self.execute(f'"{exe}" -vmname {instance.name}')
@ -153,8 +153,6 @@ class PlatformWindows(PlatformBase, EmulatorManager):
elif instance == Emulator.NoxPlayerFamily:
# Nox.exe -clone:Nox_1 -quit
self.execute(f'"{exe}" -clone:{instance.name} -quit')
elif instance == Emulator.BlueStacks5:
self.execute(f'taskkill /fi "WINDOWTITLE eq {instance.name}" /IM "HD-Player.exe" /F')
else:
raise EmulatorUnknown(f'Cannot stop an unknown emulator instance: {instance}')