mirror of
https://github.com/TheFunny/ArisuAutoSweeper
synced 2025-12-16 22:05:12 +00:00
62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
from enum import Enum
|
|
|
|
from module.base.timer import Timer
|
|
from module.logger import logger
|
|
from tasks.momotalk.ui import MomoTalkUI
|
|
|
|
|
|
class MomoTalkStatus(Enum):
|
|
OPEN = 0
|
|
SORT = 1
|
|
CHECK = 2
|
|
CHAT = 3
|
|
STORY = 4
|
|
FINISHED = -1
|
|
|
|
|
|
class MomoTalk(MomoTalkUI):
|
|
def handle_momotalk(self, status):
|
|
match status:
|
|
case MomoTalkStatus.OPEN:
|
|
if self.open_momotalk():
|
|
return MomoTalkStatus.SORT
|
|
return MomoTalkStatus.FINISHED
|
|
case MomoTalkStatus.SORT:
|
|
if self.sort_messages():
|
|
return MomoTalkStatus.CHECK
|
|
case MomoTalkStatus.CHECK:
|
|
if self.check_first_student():
|
|
return MomoTalkStatus.CHAT
|
|
return MomoTalkStatus.FINISHED
|
|
case MomoTalkStatus.CHAT:
|
|
if self.chat():
|
|
return MomoTalkStatus.STORY
|
|
return MomoTalkStatus.OPEN
|
|
case MomoTalkStatus.STORY:
|
|
if self.skip_story():
|
|
return MomoTalkStatus.CHAT
|
|
case MomoTalkStatus.FINISHED:
|
|
return status
|
|
case _:
|
|
logger.warning(f'Invalid status: {status}')
|
|
return status
|
|
|
|
def run(self):
|
|
action_timer = Timer(0.5, 1)
|
|
status = MomoTalkStatus.OPEN
|
|
|
|
while 1:
|
|
self.device.screenshot()
|
|
|
|
if self.ui_additional():
|
|
continue
|
|
|
|
if action_timer.reached_and_reset():
|
|
logger.attr('Status', status)
|
|
status = self.handle_momotalk(status)
|
|
|
|
if status == MomoTalkStatus.FINISHED:
|
|
break
|
|
|
|
self.config.task_delay(server_update=True)
|