File: models.py

package info (click to toggle)
python-xbox-webapi 2.1.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,916 kB
  • sloc: python: 4,973; makefile: 79
file content (54 lines) | stat: -rw-r--r-- 1,207 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
from enum import Enum
from typing import List, Optional
from pydantic import RootModel

from xbox.webapi.common.models import CamelCaseModel


class PresenceLevel(str, Enum):
    USER = "user"
    DEVICE = "device"
    TITLE = "title"
    ALL = "all"


class PresenceState(str, Enum):
    ACTIVE = "Active"
    CLOAKED = "Cloaked"


class LastSeen(CamelCaseModel):
    device_type: str
    title_id: Optional[str] = None
    title_name: str
    timestamp: str


class ActivityRecord(CamelCaseModel):
    richPresence: Optional[str] = None
    media: Optional[str] = None


class TitleRecord(CamelCaseModel):
    id: Optional[str] = None
    name: Optional[str] = None
    activity: Optional[List[ActivityRecord]] = None
    lastModified: Optional[str] = None
    placement: Optional[str] = None
    state: Optional[str] = None


class DeviceRecord(CamelCaseModel):
    titles: Optional[List[TitleRecord]] = None
    type: Optional[str] = None


class PresenceItem(CamelCaseModel):
    xuid: str
    state: str
    last_seen: Optional[LastSeen] = None
    devices: Optional[List[DeviceRecord]] = None


class PresenceBatchResponse(RootModel[List[PresenceItem]], CamelCaseModel):
    root: List[PresenceItem]