osu-api-extended
Version:
Advanced osu! api wrapper for v1 and v2, with extra stuff
193 lines (192 loc) • 5.95 kB
TypeScript
export interface response {
cursor: {
page: number;
};
ranking: {
count_100?: number;
count_300?: number;
count_50?: number;
count_miss?: number;
level: {
current: number;
progress: number;
};
global_rank?: number;
global_rank_exp?: number;
pp?: number;
pp_exp?: number;
ranked_score: number;
hit_accuracy?: number;
play_count: number;
play_time?: number;
total_score?: number;
total_hits?: number;
maximum_combo?: number;
replays_watched_by_others?: number;
is_ranked?: boolean;
grade_counts: {
ss: number;
ssh: number;
s: number;
sh: number;
a: number;
};
rank_change_since_30_days?: number;
user: {
avatar_url: string;
country_code: string;
default_group: string;
id: number;
is_active: boolean;
is_bot: boolean;
is_deleted: boolean;
is_online: boolean;
is_supporter: boolean;
last_visit: string;
pm_friends_only: boolean;
profile_colour: string;
username: string;
country: {
code: string;
name: string;
};
cover: {
custom_url: string;
url: string;
id: number;
};
};
code?: string;
active_users?: number;
performance?: number;
country: {
code: string;
name: string;
};
}[];
total: number;
beatmapsets: {
artist: string;
artist_unicode: string;
covers: {
cover: string;
'cover@2x': string;
card: string;
'card@2x': string;
list: string;
'list@2x': string;
slimcover: string;
'slimcover@2x': string;
};
creator: string;
favourite_count: number;
hype?: string;
id: number;
nsfw: boolean;
offset: number;
play_count: number;
preview_url: string;
source: string;
spotlight: boolean;
status: string;
title: string;
title_unicode: string;
track_id?: string;
user_id: number;
video: boolean;
bpm: number;
can_be_hyped: boolean;
deleted_at?: string;
discussion_enabled: boolean;
discussion_locked: boolean;
is_scoreable: boolean;
last_updated: string;
legacy_thread_url: string;
nominations_summary: {
current: number;
required: number;
};
ranked: number;
ranked_date: string;
storyboard: boolean;
submitted_date: string;
tags: string;
availability: {
download_disabled: boolean;
more_information: string;
};
has_favourited: boolean;
beatmaps: {
beatmapset_id: number;
difficulty_rating: number;
id: number;
mode: string;
status: string;
total_length: number;
user_id: number;
version: string;
accuracy: number;
ar: number;
bpm: number;
convert: boolean;
count_circles: number;
count_sliders: number;
count_spinners: number;
cs: number;
deleted_at?: string;
drain: number;
hit_length: number;
is_scoreable: boolean;
last_updated: string;
mode_int: number;
passcount: number;
playcount: number;
ranked: number;
url: string;
checksum: string;
}[];
}[];
spotlight: {
end_date: string;
id: number;
mode_specific: boolean;
name: string;
start_date: string;
type: string;
participant_count: number;
};
}
export interface types {
/**
* Gets the current ranking leaderboard for the specified type and game mode
*
* ## Example
*
* ```js
* const { v2, auth } = require('osu-api-extended');
*
* const main = async () => {
* await auth.login(CLIENT_ID, CLIENT_SECRET);
*
* const v2_site_ranking_details = await v2.site.ranking.details(mode, type, object);
* console.log(v2_site_ranking_details);
* };
*
* main();
* ```
* @param {string} mode ```osu``` or ```fruits``` or ```mania``` or ```taiko```
* @param {string} type ```charts``` or ```country``` or ```performance``` or ```score```
* @param {number} object.country Filter ranking by country code. Only available for ```type``` of ```performance```
* @param {number} object.cursor[page] Page number
* @param {string} object.filter ```all``` or ```friends```
* @param {string} object.spotlight The id of the spotlight if type is charts. Ranking for latest spotlight will be returned if not specified
* @param {string} object.variant Filter ranking to specified mode variant. For ```mode``` of ```mania```, it's either ```4k``` or ```7k```. Only available for ```type``` of ```performance```
*/
(mode: 'osu' | 'fruits' | 'mania' | 'taiko', type: 'charts' | 'country' | 'performance' | 'score', object?: {
country?: string;
"cursor[page]"?: number;
filter?: 'all' | 'friends';
spotlight?: string;
variant?: string;
}): Promise<response>;
}