1
0
Fork 0
mirror of synced 2024-06-26 18:20:50 +12:00
Rare/rare/game_launch_helper/message_models.py
2022-06-18 13:25:39 +02:00

68 lines
1.2 KiB
Python

from dataclasses import dataclass
class Actions:
finished = 0
error = 1
message = 2
state_update = 3
@dataclass
class BaseModel:
action: int
app_name: str
@classmethod
def from_json(cls, data: dict):
return cls(
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(
**BaseModel.from_json(data).__dict__,
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(
**BaseModel.from_json(data).__dict__,
error_string=data["error_string"]
)