Files
EZPPLauncher/src/lib/types.ts

250 lines
4.7 KiB
TypeScript

export type EZPPUserResponse = {
code: number;
message: string;
user?: EZPPUser;
};
export type EZPPUser = {
id: number;
donor: boolean;
name: string;
email: string;
};
export type EZPPUserInfoResponse = {
status: string;
player: EZPPUserInfo;
};
export type EZPPUserInfo = {
info: {
id: number;
name: string;
safe_name: string;
priv: number;
country: string;
silence_end: number;
donor_end: number;
creation_time: number;
latest_activity: number;
clan_id: number;
clan_priv: number;
preferred_mode: number;
preferred_type: number;
play_style: number;
custom_badge_enabled: number;
custom_badge_name: string;
custom_badge_icon: string;
custom_badge_color: string;
userpage_content: string;
recentFailed: number;
social_discord: string;
social_youtube: string;
social_twitter: string;
social_twitch: string;
social_github: string;
social_osu: string;
clan: {
id: number;
name: string;
tag: string;
owner: number;
created_at: Date;
};
username_history: string[];
};
stats: {
[key: string]: {
id: number;
mode: number;
tscore: number;
rscore: number;
pp: number;
plays: number;
playtime: number;
acc: number;
max_combo: number;
total_hits: number;
replay_views: number;
xh_count: number;
x_count: number;
sh_count: number;
s_count: number;
a_count: number;
level: number;
level_progress: number;
rank: number;
country_rank: number;
history: {
pp: number[];
};
};
};
events: {
userId: number;
name: string;
mapId: number;
setId: number;
artist: string;
title: string;
version: string;
mode: number;
rank: number;
grade: string;
event: 'GAINED' | 'LOST';
time: Date;
}[];
};
export type StreamsResult = {
streams: {
id: number;
name: string;
display_name: string;
is_featured: boolean;
latest_build: {
created_at: Date;
display_version: string;
id: number;
users: number;
version: string;
youtube_id: null | string;
update_stream: {
id: number;
name: string;
display_name: string;
is_featured: boolean;
};
};
user_count: number;
}[];
};
export type UpdateFile = {
folder: string;
md5: string;
name: string;
size: number;
url: string;
};
export type UpdateStatus = {
fileName: string;
downloaded: number;
size: number;
progress: number;
};
export type Release = {
id: number;
tag_name: string;
target_commitish: string;
name: string;
body: string;
url: string;
html_url: string;
tarball_url: string;
zipball_url: string;
upload_url: string;
draft: boolean;
prerelease: boolean;
created_at: Date;
published_at: Date;
author: {
id: number;
login: string;
login_name: string;
source_id: number;
full_name: string;
email: string;
avatar_url: string;
html_url: string;
language: string;
is_admin: boolean;
last_login: Date;
created: Date;
restricted: boolean;
active: boolean;
prohibit_login: boolean;
location: string;
website: string;
description: string;
visibility: string;
followers_count: number;
following_count: number;
starred_repos_count: number;
username: string;
};
assets: {
id: number;
name: string;
size: number;
download_count: number;
created_at: Date;
uuid: string;
browser_download_url: string;
}[];
};
export type EZPPUSerStatusResponse = EZPPUserOfflineStatus | EZPPUserOnlineStatus;
type EZPPUserOfflineStatus = {
status: string;
player_status: {
online: false;
last_seen: number;
};
};
type EZPPUserOnlineStatus = {
status: string;
player_status: {
online: true;
login_time: number;
status: {
action: EZPPActionStatus;
info_text: string;
mode: number;
mods: number;
beatmap: EZPPUserBeatmapStatus | null;
};
};
};
type EZPPUserBeatmapStatus = {
md5: string;
id: number;
set_id: number;
artist: string;
title: string;
version: string;
creator: string;
last_update: string;
total_length: number;
max_combo: number;
status: number;
plays: number;
passes: number;
mode: number;
bpm: number;
cs: number;
od: number;
ar: number;
hp: number;
diff: number;
};
export enum EZPPActionStatus {
AFK = 1,
PLAYING = 2,
EDITING = 3,
MODDING = 4,
MULTIPLAYER_SELECT = 5,
WATCHING = 6,
TESTING = 8,
SUBMITTING = 9,
MULTIPLAYER_IDLE = 11,
MULTIPLAYER_PLAYING = 12,
DIRECT = 13,
}