Added arn to the main repository
This commit is contained in:
30
arn/AnimeFinder.go
Normal file
30
arn/AnimeFinder.go
Normal file
@ -0,0 +1,30 @@
|
||||
package arn
|
||||
|
||||
// AnimeFinder holds an internal map of ID to anime mappings
|
||||
// and is therefore very efficient to use when trying to find
|
||||
// anime by a given service and ID.
|
||||
type AnimeFinder struct {
|
||||
idToAnime map[string]*Anime
|
||||
}
|
||||
|
||||
// NewAnimeFinder creates a new finder for external anime.
|
||||
func NewAnimeFinder(mappingName string) *AnimeFinder {
|
||||
finder := &AnimeFinder{
|
||||
idToAnime: map[string]*Anime{},
|
||||
}
|
||||
|
||||
for anime := range StreamAnime() {
|
||||
id := anime.GetMapping(mappingName)
|
||||
|
||||
if id != "" {
|
||||
finder.idToAnime[id] = anime
|
||||
}
|
||||
}
|
||||
|
||||
return finder
|
||||
}
|
||||
|
||||
// GetAnime tries to find an external anime in our anime database.
|
||||
func (finder *AnimeFinder) GetAnime(id string) *Anime {
|
||||
return finder.idToAnime[id]
|
||||
}
|
Reference in New Issue
Block a user