1
0
Fork 0
mirror of synced 2024-06-30 20:20:53 +12:00
Rare/rare/game_launch_helper/message_models.py

69 lines
1.2 KiB
Python
Raw Normal View History

import enum
from dataclasses import dataclass
class Actions:
finished = 0
error = 1
message = 2
state_update = 3
@dataclass
class BaseModel:
action: int
app_name: str
@staticmethod
def base_from_json(data: dict) -> dict:
return dict(
action=data["action"],
app_name=data["app_name"]
)
@dataclass
class FinishedModel(BaseModel):
exit_code: int
playtime: int # seconds
@classmethod
def from_json(cls, data):
return cls(
**super().base_from_json(data),
exit_code=data["exit_code"],
playtime=data["playtime"],
)
@dataclass
class StateChangedModel(BaseModel):
class States:
started = 0
# for future
syncing_cloud = 1
cloud_sync_finished = 2
new_state: int
@classmethod
def from_json(cls, data):
return cls(
action=data["action"],
app_name=data["app_name"],
new_state=data["new_state"]
)
@dataclass
class ErrorModel(BaseModel):
error_string: str
@classmethod
def from_json(cls, data):
return cls(
**super().base_from_json(data),
error_string=data["error_string"]
)