mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-11 18:41:47 +00:00
feat: migration to TypeScript part 3
Co-authored-by: Su-Yong <simssy2205@gmail.com>
This commit is contained in:
121
plugins/lyrics-genius/types.ts
Normal file
121
plugins/lyrics-genius/types.ts
Normal file
@ -0,0 +1,121 @@
|
||||
export interface GetGeniusLyric {
|
||||
meta: Meta;
|
||||
response: Response;
|
||||
}
|
||||
|
||||
export interface Meta {
|
||||
status: number;
|
||||
}
|
||||
|
||||
export interface Response {
|
||||
sections: Section[];
|
||||
}
|
||||
|
||||
export interface Section {
|
||||
type: string;
|
||||
hits: Hit[];
|
||||
}
|
||||
|
||||
export interface Hit {
|
||||
highlights: Highlight[];
|
||||
index: Index;
|
||||
type: Index;
|
||||
result: Result;
|
||||
}
|
||||
|
||||
export interface Highlight {
|
||||
property: string;
|
||||
value: string;
|
||||
snippet: boolean;
|
||||
ranges: Range[];
|
||||
}
|
||||
|
||||
export interface Range {
|
||||
start: number;
|
||||
end: number;
|
||||
}
|
||||
|
||||
export enum Index {
|
||||
Album = 'album',
|
||||
Lyric = 'lyric',
|
||||
Song = 'song',
|
||||
}
|
||||
|
||||
export interface Result {
|
||||
_type: Index;
|
||||
annotation_count?: number;
|
||||
api_path: string;
|
||||
artist_names?: string;
|
||||
full_title: string;
|
||||
header_image_thumbnail_url?: string;
|
||||
header_image_url?: string;
|
||||
id: number;
|
||||
instrumental?: boolean;
|
||||
lyrics_owner_id?: number;
|
||||
lyrics_state?: LyricsState;
|
||||
lyrics_updated_at?: number;
|
||||
path?: string;
|
||||
pyongs_count?: number | null;
|
||||
relationships_index_url?: string;
|
||||
release_date_components: ReleaseDateComponents;
|
||||
release_date_for_display: string;
|
||||
release_date_with_abbreviated_month_for_display?: string;
|
||||
song_art_image_thumbnail_url?: string;
|
||||
song_art_image_url?: string;
|
||||
stats?: Stats;
|
||||
title?: string;
|
||||
title_with_featured?: string;
|
||||
updated_by_human_at?: number;
|
||||
url: string;
|
||||
featured_artists?: string[];
|
||||
primary_artist?: Artist;
|
||||
cover_art_thumbnail_url?: string;
|
||||
cover_art_url?: string;
|
||||
name?: string;
|
||||
name_with_artist?: string;
|
||||
artist?: Artist;
|
||||
}
|
||||
|
||||
export interface Artist {
|
||||
_type: Type;
|
||||
api_path: string;
|
||||
header_image_url: string;
|
||||
id: number;
|
||||
image_url: string;
|
||||
index_character: IndexCharacter;
|
||||
is_meme_verified: boolean;
|
||||
is_verified: boolean;
|
||||
name: string;
|
||||
slug: string;
|
||||
url: string;
|
||||
iq?: number;
|
||||
}
|
||||
|
||||
// TODO: Add more types
|
||||
export enum Type {
|
||||
Artist = 'artist',
|
||||
}
|
||||
|
||||
// TODO: Add more index characters
|
||||
export enum IndexCharacter {
|
||||
G = 'g',
|
||||
Y = 'y',
|
||||
}
|
||||
|
||||
// TODO: Add more states
|
||||
export enum LyricsState {
|
||||
Complete = 'complete',
|
||||
}
|
||||
|
||||
export interface ReleaseDateComponents {
|
||||
year: number;
|
||||
month: number;
|
||||
day: number | null;
|
||||
}
|
||||
|
||||
export interface Stats {
|
||||
unreviewed_annotations: number;
|
||||
concurrents?: number;
|
||||
hot: boolean;
|
||||
pageviews?: number;
|
||||
}
|
||||
Reference in New Issue
Block a user