feat: add trailer, characters, and recommendations to anime details

This commit is contained in:
2026-05-04 20:19:58 +02:00
parent d1433f54e2
commit c976e99f5a
5 changed files with 222 additions and 128 deletions

View File

@@ -76,6 +76,18 @@ type Anime struct {
Timezone string `json:"timezone"`
String string `json:"string"`
} `json:"broadcast"`
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"`
Streaming []struct {
Name string `json:"name"`
URL string `json:"url"`
@@ -87,6 +99,62 @@ type Anime struct {
} `json:"external"`
}
type CharacterVoiceActor struct {
Person struct {
MalID int `json:"mal_id"`
URL string `json:"url"`
Images struct {
Jpg struct {
ImageURL string `json:"image_url"`
} `json:"jpg"`
} `json:"images"`
Name string `json:"name"`
} `json:"person"`
Language string `json:"language"`
}
type CharacterEntry struct {
Character struct {
MalID int `json:"mal_id"`
URL string `json:"url"`
Images struct {
Jpg struct {
ImageURL string `json:"image_url"`
} `json:"jpg"`
Webp struct {
ImageURL string `json:"image_url"`
SmallImageURL string `json:"small_image_url"`
} `json:"webp"`
} `json:"images"`
Name string `json:"name"`
} `json:"character"`
Role string `json:"role"`
VoiceActors []CharacterVoiceActor `json:"voice_actors"`
}
type CharactersResponse struct {
Data []CharacterEntry `json:"data"`
}
type RecommendationEntry struct {
Entry struct {
MalID int `json:"mal_id"`
URL string `json:"url"`
Images struct {
Webp struct {
LargeImageURL string `json:"large_image_url"`
} `json:"webp"`
} `json:"images"`
Title string `json:"title"`
} `json:"entry"`
URL string `json:"url"`
Votes int `json:"votes"`
}
type RecommendationsResponse struct {
Data []RecommendationEntry `json:"data"`
}
func (a Anime) ScoredByFormatted() string {
return formatNumber(a.ScoredBy)
}