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 (209 lines) | stat: -rw-r--r-- 5,852 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
from datetime import datetime
from enum import Enum
from typing import Any, List, Optional

from xbox.webapi.common.models import CamelCaseModel, PascalCaseModel


class PeopleDecoration(str, Enum):
    SUGGESTION = "suggestion"
    RECENT_PLAYER = "recentplayer"
    FOLLOWER = "follower"
    PREFERRED_COLOR = "preferredcolor"
    DETAIL = "detail"
    MULTIPLAYER_SUMMARY = "multiplayersummary"
    PRESENCE_DETAIL = "presencedetail"
    TITLE_PRESENCE = "titlepresence"
    TITLE_SUMMARY = "titlesummary"
    PRESENCE_TITLE_IDS = "presencetitleids"
    COMMUNITY_MANAGER_TITLES = "communitymanagertitles"
    SOCIAL_MANAGER = "socialmanager"
    BROADCAST = "broadcast"
    TOURNAMENT_SUMMARY = "tournamentsummary"
    AVATAR = "avatar"


class PeopleSummaryResponse(CamelCaseModel):
    target_following_count: int
    target_follower_count: int
    is_caller_following_target: bool
    is_target_following_caller: bool
    has_caller_marked_target_as_favorite: bool
    has_caller_marked_target_as_identity_shared: bool
    legacy_friend_status: str
    available_people_slots: Optional[int] = None
    recent_change_count: Optional[int] = None
    watermark: Optional[str] = None


class Suggestion(PascalCaseModel):
    type: Optional[str] = None
    priority: int
    reasons: Optional[str] = None
    title_id: Optional[str] = None


class Recommendation(PascalCaseModel):
    type: str
    reasons: List[str]


class MultiplayerSummary(PascalCaseModel):
    in_multiplayer_session: int
    in_party: int


class RecentPlayer(CamelCaseModel):
    titles: List[str]
    text: Optional[str] = None


class Follower(CamelCaseModel):
    text: Optional[str] = None
    followed_date_time: Optional[datetime] = None


class PreferredColor(CamelCaseModel):
    primary_color: Optional[str] = None
    secondary_color: Optional[str] = None
    tertiary_color: Optional[str] = None


class PresenceDetail(PascalCaseModel):
    is_broadcasting: bool
    device: str
    presence_text: str
    state: str
    title_id: str
    title_type: Optional[str] = None
    is_primary: bool
    is_game: bool
    rich_presence_text: Optional[str] = None


class TitlePresence(PascalCaseModel):
    is_currently_playing: bool
    presence_text: Optional[str] = None
    title_name: Optional[str] = None
    title_id: Optional[str] = None


class Detail(CamelCaseModel):
    account_tier: str
    bio: Optional[str] = None
    is_verified: bool
    location: Optional[str] = None
    tenure: Optional[str] = None
    watermarks: List[str]
    blocked: bool
    mute: bool
    follower_count: int
    following_count: int
    has_game_pass: bool


class SocialManager(CamelCaseModel):
    title_ids: List[str]
    pages: List[str]


class Avatar(CamelCaseModel):
    update_time_offset: Optional[datetime] = None
    spritesheet_metadata: Optional[Any] = None


class LinkedAccount(CamelCaseModel):
    network_name: str
    display_name: Optional[str] = None
    show_on_profile: bool
    is_family_friendly: bool
    deeplink: Optional[str] = None


class Person(CamelCaseModel):
    xuid: str
    is_favorite: bool
    is_following_caller: bool
    is_followed_by_caller: bool
    is_identity_shared: bool
    added_date_time_utc: Optional[datetime] = None
    display_name: Optional[str] = None
    real_name: str
    display_pic_raw: str
    show_user_as_avatar: str
    gamertag: str
    gamer_score: str
    modern_gamertag: str
    modern_gamertag_suffix: str
    unique_modern_gamertag: str
    xbox_one_rep: str
    presence_state: str
    presence_text: str
    presence_devices: Optional[Any] = None
    is_broadcasting: bool
    is_cloaked: Optional[bool] = None
    is_quarantined: bool
    is_xbox_360_gamerpic: bool
    last_seen_date_time_utc: Optional[datetime] = None
    suggestion: Optional[Suggestion] = None
    recommendation: Optional[Recommendation] = None
    search: Optional[Any] = None
    titleHistory: Optional[Any] = None
    multiplayer_summary: Optional[MultiplayerSummary] = None
    recent_player: Optional[RecentPlayer] = None
    follower: Optional[Follower] = None
    preferred_color: Optional[PreferredColor] = None
    presence_details: Optional[List[PresenceDetail]] = None
    title_presence: Optional[TitlePresence] = None
    title_summaries: Optional[Any] = None
    presence_title_ids: Optional[List[str]] = None
    detail: Optional[Detail] = None
    community_manager_titles: Optional[Any] = None
    social_manager: Optional[SocialManager] = None
    broadcast: Optional[List[Any]] = None
    tournament_summary: Optional[Any] = None
    avatar: Optional[Avatar] = None
    linked_accounts: Optional[List[LinkedAccount]] = None
    color_theme: str
    preferred_flag: str
    preferred_platforms: List[Any]


class RecommendationSummary(CamelCaseModel):
    friend_of_friend: int
    facebook_friend: int
    phone_contact: int
    follower: int
    VIP: int
    steam_friend: int
    promote_suggestions: bool


class FriendFinderState(CamelCaseModel):
    facebook_opt_in_status: str
    facebook_token_status: str
    phone_opt_in_status: str
    phone_token_status: str
    steam_opt_in_status: str
    steam_token_status: str
    discord_opt_in_status: str
    discord_token_status: str
    instagram_opt_in_status: str
    instagram_token_status: str
    mixer_opt_in_status: str
    mixer_token_status: str
    reddit_opt_in_status: str
    reddit_token_status: str
    twitch_opt_in_status: str
    twitch_token_status: str
    twitter_opt_in_status: str
    twitter_token_status: str
    you_tube_opt_in_status: str
    you_tube_token_status: str


class PeopleResponse(CamelCaseModel):
    people: List[Person]
    recommendation_summary: Optional[RecommendationSummary] = None
    friend_finder_state: Optional[FriendFinderState] = None
    account_link_details: Optional[List[LinkedAccount]] = None