Module genshin.models.starrail.rpgsimulator
HSR Lineup Simulator.
Classes
class APCShadowLineup (**data: Any)-
Expand source code
class APCShadowLineup(StarRailLineup): """A Apocalyptic Shadow lineup.""" detail: LineupDetail = Aliased("boss_info") node1_challenged_at: DateTime = Aliased("challenge_time") node2_challenged_at: DateTime = Aliased("challenge_time_node2")A Apocalyptic Shadow lineup.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- StarRailLineup
- APIModel
- pydantic.main.BaseModel
Class variables
var detail : LineupDetailvar model_config : pydantic.config.ConfigDictvar node1_challenged_at : datetime.datetimevar node2_challenged_at : datetime.datetime
class APCShadowLineupResponse (**data: Any)-
Expand source code
class APCShadowLineupResponse(APIModel): """Response for Apocalyptic Shadow lineups.""" lineups: typing.Sequence[APCShadowLineup] = Aliased("list") next_page_token: strResponse for Apocalyptic Shadow lineups.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Class variables
var lineups : Sequence[APCShadowLineup]var model_config : pydantic.config.ConfigDictvar next_page_token : str
class APCShadowSchedule (**data: Any)-
Expand source code
class APCShadowSchedule(StarRailGameModeSchedule): """Apocalyptic Shadow schedule.""" buff: StarRailGameModeBuff node1_buffs: typing.Sequence[StarRailGameModeBuff] = Aliased("addition_buff_1") node2_buffs: typing.Sequence[StarRailGameModeBuff] = Aliased("addition_buff_2") @pydantic.model_validator(mode="before") @classmethod def __convert_buffs(cls, v: dict[str, typing.Any]) -> dict[str, typing.Any]: v["buff"] = {"name": v["maze_buff_name_mi18n"], "desc": v["maze_buff_desc_mi18n"], "icon": v["buff_icon"]} return vApocalyptic Shadow schedule.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- StarRailGameModeSchedule
- APIModel
- pydantic.main.BaseModel
Class variables
var buff : StarRailGameModeBuffvar model_config : pydantic.config.ConfigDictvar node1_buffs : Sequence[StarRailGameModeBuff]var node2_buffs : Sequence[StarRailGameModeBuff]
class LineupDetail (**data: Any)-
Expand source code
class LineupDetail(APIModel): """Detail for a lineup.""" buffs: typing.Sequence[StarRailGameModeBuff] = Aliased("buff_list") points: intDetail for a lineup.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Class variables
var buffs : Sequence[StarRailGameModeBuff]var model_config : pydantic.config.ConfigDictvar points : int
class MOCSchedule (**data: Any)-
Expand source code
class MOCSchedule(StarRailGameModeSchedule): """Memory of Chaos schedule.""" buff: StarRailGameModeBuff @pydantic.model_validator(mode="before") @classmethod def __convert_buffs(cls, v: dict[str, typing.Any]) -> dict[str, typing.Any]: v["buff"] = {"name": v["maze_buff_name_mi18n"], "desc": v["maze_buff_desc_mi18n"]} return vMemory of Chaos schedule.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- StarRailGameModeSchedule
- APIModel
- pydantic.main.BaseModel
Class variables
var buff : StarRailGameModeBuffvar model_config : pydantic.config.ConfigDict
class PureFictionLineup (**data: Any)-
Expand source code
class PureFictionLineup(StarRailLineup): """A Pure Fiction lineup.""" detail: LineupDetail = Aliased("story_info") node1_challenged_at: DateTime = Aliased("challenge_time") node2_challenged_at: DateTime = Aliased("challenge_time_node2")A Pure Fiction lineup.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- StarRailLineup
- APIModel
- pydantic.main.BaseModel
Class variables
var detail : LineupDetailvar model_config : pydantic.config.ConfigDictvar node1_challenged_at : datetime.datetimevar node2_challenged_at : datetime.datetime
class PureFictionLineupResponse (**data: Any)-
Expand source code
class PureFictionLineupResponse(APIModel): """Response for Pure Fiction lineups.""" lineups: typing.Sequence[PureFictionLineup] = Aliased("list") next_page_token: strResponse for Pure Fiction lineups.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Class variables
var lineups : Sequence[PureFictionLineup]var model_config : pydantic.config.ConfigDictvar next_page_token : str
class PureFictionSchedule (**data: Any)-
Expand source code
class PureFictionSchedule(StarRailGameModeSchedule): """Pure Future schedule.""" buffs: typing.Sequence[StarRailGameModeBuff] = Aliased("addition_buff") default_buffs: typing.Sequence[StarRailGameModeBuff] = Aliased("sub_maze_buff_list")Pure Future schedule.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- StarRailGameModeSchedule
- APIModel
- pydantic.main.BaseModel
Class variables
var buffs : Sequence[StarRailGameModeBuff]var default_buffs : Sequence[StarRailGameModeBuff]var model_config : pydantic.config.ConfigDict
class StarRailGameMode (**data: Any)-
Expand source code
class StarRailGameMode(APIModel): """HSR game mode, like MOC.""" id: int name: str floors: typing.Sequence[StarRailGameModeFloor] type: StarRailGameModeType = Aliased("root_type") @pydantic.model_validator(mode="before") @classmethod def __unnest_children(cls, v: dict[str, typing.Any]) -> dict[str, typing.Any]: """Unnest the children field.""" if not (children := v.get("children")): msg = "Missing 'children' field in HSRGameMode." raise ValueError(msg) v["floors"] = children[0]["children"] v["name"] = children[0]["name"] return vHSR game mode, like MOC.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Class variables
var floors : Sequence[StarRailGameModeFloor]var id : intvar model_config : pydantic.config.ConfigDictvar name : strvar type : StarRailGameModeType
class StarRailGameModeBuff (**data: Any)-
Expand source code
class StarRailGameModeBuff(APIModel): """HSR game mode buff.""" name: str desc: str icon: typing.Optional[str] = None simple_desc: typing.Optional[str] = NoneHSR game mode buff.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Class variables
var desc : strvar icon : str | Nonevar model_config : pydantic.config.ConfigDictvar name : strvar simple_desc : str | None
class StarRailGameModeFloor (**data: Any)-
Expand source code
class StarRailGameModeFloor(APIModel): """A floor of a game mode, like MOC Stage 1.""" id: int name: str floor: int @pydantic.model_validator(mode="before") @classmethod def __extract_floor(cls, v: dict[str, typing.Any]) -> dict[str, typing.Any]: extend = v["extend"] v["floor"] = extend["floor"] return vA floor of a game mode, like MOC Stage 1.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Class variables
var floor : intvar id : intvar model_config : pydantic.config.ConfigDictvar name : str
class StarRailGameModeSchedule (**data: Any)-
Expand source code
class StarRailGameModeSchedule(APIModel): """Base HSR lineup game mode schedule.""" id: int = Aliased("group_id") name: str = Aliased("name_mi18n") start_time: datetime.datetime = Aliased("schedule_begin_time") end_time: datetime.datetime = Aliased("schedule_end_time") is_now: bool is_show: bool floor_nums: intBase HSR lineup game mode schedule.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Subclasses
Class variables
var end_time : datetime.datetimevar floor_nums : intvar id : intvar is_now : boolvar is_show : boolvar model_config : pydantic.config.ConfigDictvar name : strvar start_time : datetime.datetime
class StarRailGameModeType (value, names=None, *, module=None, qualname=None, type=None, start=1)-
Expand source code
class StarRailGameModeType(str, Enum): """HSR lineup game mode enum.""" MOC = "Chasm" """Memory of Chaos.""" PURE_FICTION = "Story" """Pure Fiction.""" APC_SHADOW = "Boss" """Apocalyptic Shadow.""" ANOMALY_ARBITRATION = "Peak" """Anomaly Arbitration."""HSR lineup game mode enum.
Ancestors
- builtins.str
- enum.Enum
Class variables
var ANOMALY_ARBITRATION-
Anomaly Arbitration.
var APC_SHADOW-
Apocalyptic Shadow.
var MOC-
Memory of Chaos.
var PURE_FICTION-
Pure Fiction.
class StarRailLineup (**data: Any)-
Expand source code
class StarRailLineup(APIModel): """A HSR lineup.""" id: str player: StarRailLineupPlayer type: StarRailGameModeType = Aliased("lineup_type") title: str description: str likes: int = Aliased("like_cnt") comments: int = Aliased("comment_cnt") favorites: int = Aliased("favour_cnt") views: int = Aliased("view_cnt") created_at: datetime.datetime last_edited_at: datetime.datetime = Aliased("last_edit") stars: int = Aliased("star_num") cycles_taken: int = Aliased("round_num") characters: typing.Sequence[typing.Sequence[character.StarRailLineupCharacter]] = Aliased("avatar_group") @pydantic.field_validator("characters", mode="before") @classmethod def __unnest_characters( cls, v: typing.Sequence[dict[str, typing.Any]] ) -> typing.Sequence[typing.Sequence[dict[str, typing.Any]]]: # Merge relic info from "group" for g in v: group = g["group"] for avatar in g["avatar_details"]: group_avatar = next((a for a in group if a["item_id"] == str(avatar["id"])), None) if not group_avatar: continue relics = group_avatar.get("relics", []) + group_avatar.get("relic_sides", []) for relic in avatar.get("relics", []): group_avatar_relic = next((r for r in relics if r["item_id"] == str(relic["id"])), None) if not group_avatar_relic: continue relic.update(group_avatar_relic) return [g["avatar_details"] for g in v] @pydantic.model_validator(mode="before") @classmethod def __nest_player(cls, v: dict[str, typing.Any]) -> dict[str, typing.Any]: """Nest the player field.""" v["player"] = { "uid": v["account_uid"], "nickname": v["nickname"], "avatar_url": v["avatar_url"], "level": v["game_level"], } return vA HSR lineup.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Subclasses
Class variables
var characters : Sequence[Sequence[StarRailLineupCharacter]]var comments : intvar created_at : datetime.datetimevar cycles_taken : intvar description : strvar favorites : intvar id : strvar last_edited_at : datetime.datetimevar likes : intvar model_config : pydantic.config.ConfigDictvar player : StarRailLineupPlayervar stars : intvar title : strvar type : StarRailGameModeTypevar views : int
class StarRailLineupPlayer (**data: Any)-
Expand source code
class StarRailLineupPlayer(APIModel): """A HSR lineup player.""" uid: str nickname: str avatar_url: str level: intA HSR lineup player.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Class variables
var avatar_url : strvar level : intvar model_config : pydantic.config.ConfigDictvar nickname : strvar uid : str
class StarRailLineupResponse (**data: Any)-
Expand source code
class StarRailLineupResponse(APIModel): """Response for HSR lineups.""" lineups: typing.Sequence[StarRailLineup] = Aliased("list") next_page_token: strResponse for HSR lineups.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.Ancestors
- APIModel
- pydantic.main.BaseModel
Class variables
var lineups : Sequence[StarRailLineup]var model_config : pydantic.config.ConfigDictvar next_page_token : str