250 lines
4.7 KiB
TypeScript
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,
|
|
}
|