nise/nise-frontend/src/app/replays.ts
2024-03-06 15:07:12 +01:00

176 lines
4.0 KiB
TypeScript

export interface ReplayDataChart {
title: string;
data: number[];
}
export interface ReplayDataSimilarScore {
replay_id: number;
user_id: number;
date: string;
pp: number;
username: string;
similarity: number;
correlation: number;
}
export function getMockReplayData(): ReplayData {
return {
'replay_id': 123,
'user_id': 123,
'username': 'username',
'date': 'date',
'beatmap_id': 123,
'beatmap_beatmapset_id': 123,
'beatmap_artist': 'beatmap_artist',
'beatmap_title': 'beatmap_title',
'beatmap_star_rating': 123,
'beatmap_creator': 'beatmap_creator',
'beatmap_version': 'beatmap_version',
'beatmap_max_combo': 123,
'beatmap_total_length': 123,
'beatmap_bpm': 123,
'beatmap_accuracy': 123,
'beatmap_ar': 123,
'beatmap_cs': 123,
'beatmap_drain': 123,
'beatmap_count_circles': 123,
'beatmap_count_sliders': 123,
'beatmap_count_spinners': 123,
'score': 123,
'mods': ['mods'],
'rank': 'rank',
'ur': 123,
'adjusted_ur': 123,
'frametime': 123,
'snaps': 123,
'hits': 123,
'pp': 123,
'perfect': true,
'max_combo': 123,
'mean_error': 123,
'error_variance': 123,
'error_standard_deviation': 123,
'minimum_error': 123,
'maximum_error': 123,
'error_range': 123,
'error_coefficient_of_variation': 123,
'error_kurtosis': 123,
'error_skewness': 123,
'count_300': 123,
'count_100': 123,
'count_50': 123,
'count_miss': 123,
'similar_scores': [],
'error_distribution': {},
'charts': []
};
}
export interface ReplayData {
replay_id: number | null;
user_id: number;
username: string;
date: string;
beatmap_id: number;
beatmap_beatmapset_id: number;
beatmap_artist: string;
beatmap_title: string;
beatmap_star_rating: number;
beatmap_creator: string;
beatmap_version: string;
beatmap_max_combo: number;
beatmap_total_length: number;
beatmap_bpm: number;
beatmap_accuracy: number;
beatmap_ar: number;
beatmap_cs: number;
beatmap_drain: number;
beatmap_count_circles: number;
beatmap_count_sliders: number;
beatmap_count_spinners: number;
score: number;
mods: string[];
rank: string;
ur: number;
adjusted_ur?: number;
frametime: number;
snaps: number;
hits: number;
pp: number,
perfect: boolean;
max_combo: number,
mean_error?: number,
error_variance?: number,
error_standard_deviation?: number,
minimum_error?: number,
maximum_error?: number,
error_range?: number,
error_coefficient_of_variation?: number,
error_kurtosis?: number,
error_skewness?: number,
comparable_samples?: number;
comparable_mean_error?: number,
comparable_error_variance?: number,
comparable_error_standard_deviation?: number,
comparable_minimum_error?: number,
comparable_maximum_error?: number,
comparable_error_range?: number,
comparable_error_coefficient_of_variation?: number,
comparable_error_kurtosis?: number,
comparable_error_skewness?: number,
comparable_adjusted_ur?: number;
count_300: number,
count_100: number,
count_50: number,
count_miss: number;
similar_scores: ReplayDataSimilarScore[];
error_distribution: ErrorDistribution;
charts: ReplayDataChart[];
}
export interface DistributionEntry {
countMiss: number;
count300: number;
count100: number;
count50: number;
}
export interface ErrorDistribution {
[key: number]: DistributionEntry;
}
export interface SuspiciousScore {
user_id: number;
username: string;
replay_id: number;
date: string;
beatmap_id: number;
beatmap_beatmapset_id: number;
beatmap_title: string;
beatmap_star_rating: number;
pp: number;
frametime: number;
ur: number;
}
export interface SimilarReplay {
replay_id_1: number;
replay_id_2: number;
username_1: string;
username_2: string;
beatmap_beatmapset_id: number;
replay_date_1: string;
replay_date_2: string;
replay_pp_1: number;
replay_pp_2: number;
beatmap_id: number;
beatmap_title: string;
beatmap_star_rating: number;
similarity: number;
}