1
0
mirror of https://github.com/TheFunny/ArisuAutoSweeper synced 2025-12-16 22:05:12 +00:00
ArisuAutoSweeper/tasks/momotalk/momotalk.py
2024-01-15 19:25:15 +08:00

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)