Rank Card¶
genjishimada_sdk.rank_card
¶
AvatarResponse
¶
Bases: Struct
__post_init__() -> None
¶
Normalize fields and build the avatar asset URL.
- Sets default
skin("Overwatch 1") andpose("Heroic") when falsy. - Sanitizes
skinandposevia :func:sanitize_string. - Populates
urlasassets/rank_card/avatar/{skin}/{pose}.webp.
pose: str | None = 'Heroic'
class-attribute
instance-attribute
¶
skin: str | None = 'Overwatch 1'
class-attribute
instance-attribute
¶
url: str = ''
class-attribute
instance-attribute
¶
BackgroundResponse
¶
Bases: Struct
__post_init__() -> None
¶
Normalize fields and build the background asset URL.
- Ensures
nameis set (defaults to"placeholder"if falsy). - Sanitizes
namevia :func:sanitize_string. - Populates
urlasassets/rank_card/background/{sanitized}.webp.
name: str | None
instance-attribute
¶
url: str = ''
class-attribute
instance-attribute
¶
RANK_CARD_FILTER_MAP: dict[RankCardFilter, tuple[bool, bool]] = {'official_playable': (True, True), 'official_all': (True, False), 'unofficial_playable': (False, True), 'unofficial_all': (False, False)}
module-attribute
¶
RankCardBadgeSettings
¶
Bases: Struct
badge_name1: str | None = None
class-attribute
instance-attribute
¶
badge_name2: str | None = None
class-attribute
instance-attribute
¶
badge_name3: str | None = None
class-attribute
instance-attribute
¶
badge_name4: str | None = None
class-attribute
instance-attribute
¶
badge_name5: str | None = None
class-attribute
instance-attribute
¶
badge_name6: str | None = None
class-attribute
instance-attribute
¶
badge_type1: str | None = None
class-attribute
instance-attribute
¶
badge_type2: str | None = None
class-attribute
instance-attribute
¶
badge_type3: str | None = None
class-attribute
instance-attribute
¶
badge_type4: str | None = None
class-attribute
instance-attribute
¶
badge_type5: str | None = None
class-attribute
instance-attribute
¶
badge_type6: str | None = None
class-attribute
instance-attribute
¶
badge_url1: str | None = None
class-attribute
instance-attribute
¶
badge_url2: str | None = None
class-attribute
instance-attribute
¶
badge_url3: str | None = None
class-attribute
instance-attribute
¶
badge_url4: str | None = None
class-attribute
instance-attribute
¶
badge_url5: str | None = None
class-attribute
instance-attribute
¶
badge_url6: str | None = None
class-attribute
instance-attribute
¶
RankCardDifficultiesData
¶
RankCardFilter = Literal['official_playable', 'official_all', 'unofficial_playable', 'unofficial_all']
module-attribute
¶
RankCardResponse
¶
Bases: Struct
Complete rank card payload for GET /api/v3/users/{user_id}/rank-card/.
The four skill_* fields mirror CommunityLeaderboardResponse exactly (same
names, same types) so the frontend can reuse its leaderboard rendering for the rank
card. They surface a player's skill standing from the cached skill.snapshot +
skill.tier_config join.
Attributes:
| Name | Type | Description |
|---|---|---|
skill_score |
float
|
Aggregate numeric skill score (0 when no eligible runs). |
skill_tier |
int
|
Percentile tier 1..8, 0 = Unranked (no eligible runs / population floor not met). |
skill_percentile |
float
|
0..1 population percentile of skill_score (0 when no eligible runs). |
skill_tier_name |
str
|
Mapped tier name (Unranked..Champion) for the integer |
__post_init__() -> None
¶
Compute and populate asset URLs for background, rank, and avatar.
Uses :func:sanitize_string to normalize:
- background → background_url as
assets/rank_card/background/{sanitized}.webp
- rank_name → rank_url as
assets/ranks/{sanitized}.webp
- avatar_skin and avatar_pose → avatar_url as
assets/rank_card/avatar/{skin}/{pose}.webp