mirror of
https://github.com/ultrasn0w/huso.git
synced 2025-12-13 12:29:53 +01:00
330 lines
9.5 KiB
Go
330 lines
9.5 KiB
Go
package main
|
|
|
|
import "time"
|
|
|
|
type AnimeUser struct {
|
|
Anime int64 `json:"anime"`
|
|
Users []WatchUser `json:"users"`
|
|
}
|
|
|
|
type AnimeUserExtended struct {
|
|
Anime int64 `json:"anime"`
|
|
Users []WatchUser `json:"users"`
|
|
Data Anime `json:"data"`
|
|
Appointments []Appointment `json:"appointments"`
|
|
}
|
|
|
|
type Anime struct {
|
|
Anime int64 `json:"anime"`
|
|
Title string `json:"title"`
|
|
TitleEn string `json:"titleEn"`
|
|
TitleJp string `json:"titleJp"`
|
|
ImageMediumURL string `json:"imageMedium"`
|
|
ImageLargeURL string `json:"imageLarge"`
|
|
ImageThumbURL string `json:"imageThumb"`
|
|
URL string `json:"url"`
|
|
Type string `json:"type"`
|
|
Status string `json:"status"`
|
|
Episodes int `json:"episodes"`
|
|
Synopsis string `json:"synopsis"`
|
|
Genres []AnimeGenre `json:"genres"`
|
|
StartDate time.Time `json:"startDate"`
|
|
EndDate time.Time `json:"endDate"`
|
|
Year int `json:"year"`
|
|
Season string `json:"season"`
|
|
Score float64 `json:"score"`
|
|
ScoredBy int `json:"scoredBy"`
|
|
Rank int `json:"rank"`
|
|
Popularity int `json:"popularity"`
|
|
Members int `json:"members"`
|
|
Source string `json:"source"`
|
|
Weekday string `json:"weekday"`
|
|
Studios []AnimeStudio `json:"studios"`
|
|
TrailerURL string `json:"trailerUrl"`
|
|
TrailerEmbedURL string `json:"trailerEmbedUrl"`
|
|
}
|
|
|
|
type AnimeGenre struct {
|
|
ID int `json:"id"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
type AnimeStudio struct {
|
|
ID int `json:"id"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
type Appointment struct {
|
|
Anime int64 `json:"anime"`
|
|
Time time.Time `json:"date"`
|
|
Users []string `json:"users"`
|
|
}
|
|
|
|
type WatchUser struct {
|
|
Username string `json:"username"`
|
|
MalID int64 `json:"malId"`
|
|
Progress int `json:"progress"`
|
|
Updated time.Time `json:"updated"`
|
|
}
|
|
|
|
type User struct {
|
|
MalID int64 `json:"id"`
|
|
Username string `json:"username"`
|
|
URL string `json:"url"`
|
|
ImageURL string `json:"imageUrl"`
|
|
LastOnline time.Time `json:"lastOnline"`
|
|
Gender string `json:"gender"`
|
|
Birthday time.Time `json:"birthday"`
|
|
Location string `json:"location"`
|
|
Joined time.Time `json:"joined"`
|
|
}
|
|
|
|
type UserData struct {
|
|
Username string `json:"username"`
|
|
MalID int64 `json:"malId"`
|
|
DiscordID int64 `json:"discordId"`
|
|
Secret string `json:"secret"`
|
|
}
|
|
|
|
type RegisterData struct {
|
|
Username string `json:"username"`
|
|
MalID int64 `json:"malId"`
|
|
DiscordID int64 `json:"discordId"`
|
|
Secret string `json:"secret"`
|
|
Sauce string `json:"sauce"`
|
|
}
|
|
|
|
type AnimeDetailMal struct {
|
|
ID int64 `json:"id"`
|
|
Title string `json:"title"`
|
|
MainPicture struct {
|
|
Medium string `json:"medium"`
|
|
Large string `json:"large"`
|
|
} `json:"main_picture"`
|
|
AlternativeTitles struct {
|
|
Synonyms []string `json:"synonyms"`
|
|
En string `json:"en"`
|
|
Ja string `json:"ja"`
|
|
} `json:"alternative_titles"`
|
|
StartDate string `json:"start_date"`
|
|
EndDate string `json:"end_date"`
|
|
Synopsis string `json:"synopsis"`
|
|
Mean float64 `json:"mean"`
|
|
Rank int `json:"rank"`
|
|
Popularity int `json:"popularity"`
|
|
NumListUsers int `json:"num_list_users"`
|
|
NumScoringUsers int `json:"num_scoring_users"`
|
|
Nsfw string `json:"nsfw"`
|
|
MediaType string `json:"media_type"`
|
|
Status string `json:"status"`
|
|
Genres []struct {
|
|
ID int `json:"id"`
|
|
Name string `json:"name"`
|
|
} `json:"genres"`
|
|
NumEpisodes int `json:"num_episodes"`
|
|
StartSeason struct {
|
|
Year int `json:"year"`
|
|
Season string `json:"season"`
|
|
} `json:"start_season"`
|
|
Broadcast struct {
|
|
DayOfTheWeek string `json:"day_of_the_week"`
|
|
StartTime string `json:"start_time"`
|
|
} `json:"broadcast"`
|
|
Source string `json:"source"`
|
|
AverageEpisodeDuration int `json:"average_episode_duration"`
|
|
Rating string `json:"rating"`
|
|
Studios []struct {
|
|
ID int `json:"id"`
|
|
Name string `json:"name"`
|
|
} `json:"studios"`
|
|
}
|
|
|
|
type AnimeListMal struct {
|
|
Data []struct {
|
|
Node AnimeDetailMal `json:"node"`
|
|
ListStatus struct {
|
|
Status string `json:"status"`
|
|
Score int `json:"score"`
|
|
NumEpisodesWatched int `json:"num_episodes_watched"`
|
|
IsRewatching bool `json:"is_rewatching"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
} `json:"list_status"`
|
|
} `json:"data"`
|
|
Paging struct {
|
|
Next string `json:"next"`
|
|
} `json:"paging"`
|
|
}
|
|
|
|
type UserJikan struct {
|
|
Data struct {
|
|
MalID int64 `json:"mal_id"`
|
|
Username string `json:"username"`
|
|
URL string `json:"url"`
|
|
Images struct {
|
|
Jpg struct {
|
|
ImageURL string `json:"image_url"`
|
|
} `json:"jpg"`
|
|
Webp struct {
|
|
ImageURL string `json:"image_url"`
|
|
} `json:"webp"`
|
|
} `json:"images"`
|
|
LastOnline time.Time `json:"last_online"`
|
|
Gender string `json:"gender"`
|
|
Birthday time.Time `json:"birthday"`
|
|
Location string `json:"location"`
|
|
Joined time.Time `json:"joined"`
|
|
} `json:"data"`
|
|
}
|
|
|
|
type SeasonMal struct {
|
|
Data []struct {
|
|
Node AnimeDetailMal `json:"node"`
|
|
} `json:"data"`
|
|
Paging struct {
|
|
Next string `json:"next"`
|
|
} `json:"paging"`
|
|
Season struct {
|
|
Year int `json:"year"`
|
|
Season string `json:"season"`
|
|
} `json:"season"`
|
|
}
|
|
|
|
type SeasonAnimeJikan struct {
|
|
MalID int64 `json:"mal_id"`
|
|
URL string `json:"url"`
|
|
Images struct {
|
|
Jpg struct {
|
|
ImageURL string `json:"image_url"`
|
|
SmallImageURL string `json:"small_image_url"`
|
|
LargeImageURL string `json:"large_image_url"`
|
|
} `json:"jpg"`
|
|
Webp struct {
|
|
ImageURL string `json:"image_url"`
|
|
SmallImageURL string `json:"small_image_url"`
|
|
LargeImageURL string `json:"large_image_url"`
|
|
} `json:"webp"`
|
|
} `json:"images"`
|
|
Trailer struct {
|
|
YoutubeID string `json:"youtube_id"`
|
|
URL string `json:"url"`
|
|
EmbedURL string `json:"embed_url"`
|
|
Images struct {
|
|
ImageURL string `json:"image_url"`
|
|
SmallImageURL string `json:"small_image_url"`
|
|
MediumImageURL string `json:"medium_image_url"`
|
|
LargeImageURL string `json:"large_image_url"`
|
|
MaximumImageURL string `json:"maximum_image_url"`
|
|
} `json:"images"`
|
|
} `json:"trailer"`
|
|
Title string `json:"title"`
|
|
TitleEnglish string `json:"title_english"`
|
|
TitleJapanese string `json:"title_japanese"`
|
|
TitleSynonyms []string `json:"title_synonyms"`
|
|
Type string `json:"type"`
|
|
Source string `json:"source"`
|
|
Episodes int `json:"episodes"`
|
|
Status string `json:"status"`
|
|
Airing bool `json:"airing"`
|
|
Aired struct {
|
|
From time.Time `json:"from"`
|
|
To time.Time `json:"to"`
|
|
Prop struct {
|
|
From struct {
|
|
Day int `json:"day"`
|
|
Month int `json:"month"`
|
|
Year int `json:"year"`
|
|
} `json:"from"`
|
|
To struct {
|
|
Day int `json:"day"`
|
|
Month int `json:"month"`
|
|
Year int `json:"year"`
|
|
} `json:"to"`
|
|
} `json:"prop"`
|
|
String string `json:"string"`
|
|
} `json:"aired"`
|
|
Duration string `json:"duration"`
|
|
Rating string `json:"rating"`
|
|
Score float64 `json:"score"`
|
|
ScoredBy int `json:"scored_by"`
|
|
Rank int `json:"rank"`
|
|
Popularity int `json:"popularity"`
|
|
Members int `json:"members"`
|
|
Favorites int `json:"favorites"`
|
|
Synopsis string `json:"synopsis"`
|
|
Background string `json:"background"`
|
|
Season string `json:"season"`
|
|
Year int `json:"year"`
|
|
Broadcast struct {
|
|
Day string `json:"day"`
|
|
Time string `json:"time"`
|
|
Timezone string `json:"timezone"`
|
|
String string `json:"string"`
|
|
} `json:"broadcast"`
|
|
Producers []struct {
|
|
MalID int `json:"mal_id"`
|
|
Type string `json:"type"`
|
|
Name string `json:"name"`
|
|
URL string `json:"url"`
|
|
} `json:"producers"`
|
|
Licensors []struct {
|
|
MalID int `json:"mal_id"`
|
|
Type string `json:"type"`
|
|
Name string `json:"name"`
|
|
URL string `json:"url"`
|
|
} `json:"licensors"`
|
|
Studios []struct {
|
|
MalID int `json:"mal_id"`
|
|
Type string `json:"type"`
|
|
Name string `json:"name"`
|
|
URL string `json:"url"`
|
|
} `json:"studios"`
|
|
Genres []struct {
|
|
MalID int `json:"mal_id"`
|
|
Type string `json:"type"`
|
|
Name string `json:"name"`
|
|
URL string `json:"url"`
|
|
} `json:"genres"`
|
|
ExplicitGenres []interface{} `json:"explicit_genres"`
|
|
Themes []struct {
|
|
MalID int `json:"mal_id"`
|
|
Type string `json:"type"`
|
|
Name string `json:"name"`
|
|
URL string `json:"url"`
|
|
} `json:"themes"`
|
|
Demographics []struct {
|
|
MalID int `json:"mal_id"`
|
|
Type string `json:"type"`
|
|
Name string `json:"name"`
|
|
URL string `json:"url"`
|
|
} `json:"demographics"`
|
|
}
|
|
|
|
type SeasonJikan struct {
|
|
Pagination struct {
|
|
LastVisiblePage int `json:"last_visible_page"`
|
|
HasNextPage bool `json:"has_next_page"`
|
|
CurrentPage int `json:"current_page"`
|
|
Items struct {
|
|
Count int `json:"count"`
|
|
Total int `json:"total"`
|
|
PerPage int `json:"per_page"`
|
|
} `json:"items"`
|
|
} `json:"pagination"`
|
|
Data []SeasonAnimeJikan `json:"data"`
|
|
}
|
|
|
|
type MmOracle struct {
|
|
Id int `json:"id"`
|
|
Title string `json:"title"`
|
|
Anime int64 `json:"anime"`
|
|
AvgScore int `json:"avgScore"`
|
|
}
|
|
|
|
type MovieChart struct {
|
|
MmId int `json:"mmId"`
|
|
Anime int64 `json:"anime"`
|
|
Title string `json:"title"`
|
|
AvgScore float64 `json:"avgScore"`
|
|
UserCount int `json:"userCount"`
|
|
}
|