refactor(multiplayer): 将模型字段更改为小写以与实际匹配
This commit is contained in:
@@ -32,13 +32,13 @@ class QueueMode(int, Enum):
|
|||||||
|
|
||||||
|
|
||||||
class MultiPlayerRoomSettings(BaseModel):
|
class MultiPlayerRoomSettings(BaseModel):
|
||||||
Name: str = "Unnamed room" # 来自osu/osu.Game/Online/MultiplayerRoomSettings.cs:15
|
name: str = "Unnamed room" # 来自osu/osu.Game/Online/MultiplayerRoomSettings.cs:15
|
||||||
PlaylistItemId: int
|
playlist_item_id: int
|
||||||
Password: str
|
password: str
|
||||||
MatchType: MatchType
|
match_type: MatchType
|
||||||
QueueMode: QueueMode
|
queue_mode: QueueMode
|
||||||
AutoStartDuration: timedelta
|
auto_start_duration: timedelta
|
||||||
AutoSkip: bool
|
auto_skip: bool
|
||||||
|
|
||||||
|
|
||||||
class MultiPlayerUserState(int, Enum):
|
class MultiPlayerUserState(int, Enum):
|
||||||
@@ -62,8 +62,8 @@ class DownloadeState(int, Enum):
|
|||||||
|
|
||||||
|
|
||||||
class BeatmapAvailability(BaseModel):
|
class BeatmapAvailability(BaseModel):
|
||||||
State: DownloadeState
|
state: DownloadeState
|
||||||
DownloadProgress: float
|
download_progress: float
|
||||||
|
|
||||||
|
|
||||||
class MatchUserState(BaseModel):
|
class MatchUserState(BaseModel):
|
||||||
@@ -75,16 +75,26 @@ class MatchRoomState(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
class MultiPlayerRoomUser(BaseModel):
|
class MultiPlayerRoomUser(BaseModel):
|
||||||
UserID: int
|
user_id: int
|
||||||
State: MultiPlayerUserState
|
state: MultiPlayerUserState = MultiPlayerUserState.Idle
|
||||||
Mods: APIMod
|
mods: APIMod = APIMod(acronym="", settings={})
|
||||||
MatchState: MatchUserState | None
|
match_state: MatchUserState | None
|
||||||
RuleSetId: int | None # 非空则用户本地有自定义模式
|
rule_set_id: int | None # 非空则用户本地有自定义模式
|
||||||
BeatmapId: int | None # 非空则用户本地自定义谱面
|
beatmap_id: int | None # 非空则用户本地自定义谱面
|
||||||
|
|
||||||
|
|
||||||
class MultiplayerPlaylistItem(BaseModel):
|
class MultiplayerPlaylistItem(BaseModel):
|
||||||
id: int
|
id: int
|
||||||
|
owner_id: int
|
||||||
|
beatmap_id: int
|
||||||
|
beatmap_checksum: str = ""
|
||||||
|
ruleset_id: int
|
||||||
|
requierd_mods: list[APIMod] = []
|
||||||
|
allowed_mods: list[APIMod] = []
|
||||||
|
play_list_order: int
|
||||||
|
played_at: datetime | None
|
||||||
|
star_rating: Double
|
||||||
|
free_style: bool
|
||||||
OwnerID: int
|
OwnerID: int
|
||||||
BeatmapID: int
|
BeatmapID: int
|
||||||
BeatmapChecksum: str = ""
|
BeatmapChecksum: str = ""
|
||||||
@@ -99,16 +109,16 @@ class MultiplayerPlaylistItem(BaseModel):
|
|||||||
|
|
||||||
class MultiplayerCountdown(BaseModel):
|
class MultiplayerCountdown(BaseModel):
|
||||||
id: int
|
id: int
|
||||||
TimeRaming: timedelta
|
time_raming: timedelta
|
||||||
|
|
||||||
|
|
||||||
class MultiplayerRoom(BaseModel):
|
class MultiplayerRoom(BaseModel):
|
||||||
RoomID: int
|
room_id: int
|
||||||
State: MultiplayerRoomState
|
state: MultiplayerRoomState
|
||||||
Settings: MultiPlayerRoomSettings
|
settings: MultiPlayerRoomSettings
|
||||||
Users: list[MultiPlayerRoomUser]
|
users: list[MultiPlayerRoomUser]
|
||||||
Host: MultiPlayerRoomUser | None
|
host: MultiPlayerRoomUser | None
|
||||||
MatchState: MatchUserState
|
match_state: MatchUserState
|
||||||
Playlist: list[MultiplayerPlaylistItem]
|
playlist: list[MultiplayerPlaylistItem]
|
||||||
ActiveConutdowns: list[MultiplayerCountdown]
|
active_conutdowns: list[MultiplayerCountdown]
|
||||||
ChannelID: int
|
channel_id: int
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
|
from app.database.beatmap import Beatmap
|
||||||
from app.database.user import User
|
from app.database.user import User
|
||||||
from app.models.mods import APIMod
|
from app.models.mods import APIMod
|
||||||
from app.models.multiplayer import MatchType, QueueMode
|
from app.models.multiplayer import MatchType, QueueMode
|
||||||
@@ -18,36 +19,38 @@ class RoomCategory(int, Enum):
|
|||||||
|
|
||||||
|
|
||||||
class RespPlaylistItem(BaseModel):
|
class RespPlaylistItem(BaseModel):
|
||||||
id: int
|
id: int | None
|
||||||
OwnerID: int
|
owner_id: int
|
||||||
RulesetID: int
|
ruleset_id: int
|
||||||
Expired: bool
|
expired: bool
|
||||||
PlaylistOrder: int | None
|
playlist_order: int | None
|
||||||
PlayedAt: datetime | None
|
played_at: datetime | None
|
||||||
AllowedMods: list[APIMod] = []
|
allowed_mods: list[APIMod] = []
|
||||||
RequiredMods: list[APIMod] = []
|
required_mods: list[APIMod] = []
|
||||||
Freestyle: bool
|
beatmap_id: int
|
||||||
|
freestyle: bool
|
||||||
|
beatmap: Beatmap | None
|
||||||
|
|
||||||
|
|
||||||
class RoomPlaylistItemStats(BaseModel):
|
class RoomPlaylistItemStats(BaseModel):
|
||||||
CountActive: int
|
count_active: int
|
||||||
CountTotal: int
|
count_total: int
|
||||||
RulesetIDs: list[int]
|
ruleset_ids: list[int]
|
||||||
|
|
||||||
|
|
||||||
class RoomDifficulityRange(BaseModel):
|
class RoomDifficulityRange(BaseModel):
|
||||||
Min: float
|
min: float
|
||||||
Max: float
|
max: float
|
||||||
|
|
||||||
|
|
||||||
class ItemAttempsCount(BaseModel):
|
class ItemAttempsCount(BaseModel):
|
||||||
PlaylistItemID: int
|
playlist_item_id: int
|
||||||
Attemps: int
|
attemps: int
|
||||||
Passed: bool
|
passed: bool
|
||||||
|
|
||||||
|
|
||||||
class PlaylistAggregateScore(BaseModel):
|
class PlaylistAggregateScore(BaseModel):
|
||||||
PlaylistItemAttempts: list[ItemAttempsCount]
|
playlist_item_attempts: list[ItemAttempsCount]
|
||||||
|
|
||||||
|
|
||||||
class RoomStatus(int, Enum):
|
class RoomStatus(int, Enum):
|
||||||
@@ -62,30 +65,30 @@ class RoomAvilability(int, Enum):
|
|||||||
|
|
||||||
|
|
||||||
class RoomResp(BaseModel):
|
class RoomResp(BaseModel):
|
||||||
RoomID: int
|
room_id: int
|
||||||
Name: str = ""
|
name: str = ""
|
||||||
Password: str | None
|
password: str | None
|
||||||
Has_Password: bool
|
has_password: bool
|
||||||
Host: User | None
|
host: User | None
|
||||||
Category: RoomCategory
|
category: RoomCategory
|
||||||
Duration: timedelta | None
|
duration: timedelta | None
|
||||||
StartDate: datetime | None
|
start_date: datetime | None
|
||||||
EndDate: datetime | None
|
end_date: datetime | None
|
||||||
MaxParticipants: int | None
|
max_participants: int | None
|
||||||
ParticipantCount: int
|
participant_count: int
|
||||||
RecentParticipants: list[User] = []
|
recent_participants: list[User] = []
|
||||||
Type: MatchType
|
type: MatchType
|
||||||
MaxAttemps: int | None
|
max_attemps: int | None
|
||||||
Playlist: list[RespPlaylistItem]
|
playlist: list[RespPlaylistItem]
|
||||||
PlaylistItemStatus: RoomPlaylistItemStats
|
playlist_item_status: RoomPlaylistItemStats
|
||||||
DifficulityRange: RoomDifficulityRange
|
difficulity_range: RoomDifficulityRange
|
||||||
QueueMode: QueueMode
|
queue_mode: QueueMode
|
||||||
AutoSkip: bool
|
auto_skip: bool
|
||||||
AutoStartDuration: timedelta
|
auto_start_duration: timedelta
|
||||||
UserScore: (
|
user_score: (
|
||||||
PlaylistAggregateScore | None
|
PlaylistAggregateScore | None
|
||||||
) # osu.Game/Online/Rooms/Room.cs:221 原文如此,不知道为什么
|
) # osu.Game/Online/Rooms/Room.cs:221 原文如此,不知道为什么
|
||||||
CurrentPlaylistItem: RespPlaylistItem
|
current_playlist_item: RespPlaylistItem
|
||||||
ChannelID: int
|
channel_id: int
|
||||||
Status: RoomStatus
|
status: RoomStatus
|
||||||
Availabiliity: RoomAvilability
|
availabiliity: RoomAvilability
|
||||||
|
|||||||
Reference in New Issue
Block a user