Skip to content

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") and pose ("Heroic") when falsy.
  • Sanitizes skin and pose via :func:sanitize_string.
  • Populates url as assets/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 name is set (defaults to "placeholder" if falsy).
  • Sanitizes name via :func:sanitize_string.
  • Populates url as assets/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

Bases: Struct

bronze: int instance-attribute

completed: int instance-attribute

gold: int instance-attribute

silver: int instance-attribute

total: int instance-attribute

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 skill_tier, derived via the SDK single source of truth skill_tier_name.

__post_init__() -> None

Compute and populate asset URLs for background, rank, and avatar.

Uses :func:sanitize_string to normalize: - backgroundbackground_url as assets/rank_card/background/{sanitized}.webp - rank_namerank_url as assets/ranks/{sanitized}.webp - avatar_skin and avatar_poseavatar_url as assets/rank_card/avatar/{skin}/{pose}.webp

avatar_pose: str instance-attribute

avatar_skin: str instance-attribute

avatar_url: str = '' class-attribute instance-attribute

background: str instance-attribute

background_url: str = '' class-attribute instance-attribute

badges: RankCardBadgeSettings instance-attribute

community_rank: str instance-attribute

difficulties: dict[DifficultyTop, RankCardDifficultiesData] instance-attribute

nickname: str instance-attribute

prestige_level: int instance-attribute

rank_name: str instance-attribute

rank_url: str = '' class-attribute instance-attribute

skill_percentile: float instance-attribute

skill_score: float instance-attribute

skill_tier: int instance-attribute

skill_tier_name: str instance-attribute

total_maps_created: int instance-attribute

total_playtests: int instance-attribute

world_records: int instance-attribute

xp: int instance-attribute

__all__ = ('RANK_CARD_FILTER_MAP', 'AvatarResponse', 'BackgroundResponse', 'RankCardBadgeSettings', 'RankCardDifficultiesData', 'RankCardFilter', 'RankCardResponse') module-attribute