53 lines
1.0 KiB
Go
53 lines
1.0 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"strings"
|
||
|
|
||
|
"github.com/animenotifier/arn"
|
||
|
"github.com/fatih/color"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
defer arn.Node.Close()
|
||
|
|
||
|
for anime := range arn.StreamAnime() {
|
||
|
existing := map[string]string{}
|
||
|
|
||
|
for index, mapping := range anime.Mappings {
|
||
|
if mapping.Service != "thetvdb/anime" {
|
||
|
continue
|
||
|
}
|
||
|
|
||
|
serviceID, exists := existing[mapping.Service]
|
||
|
|
||
|
if exists {
|
||
|
fmt.Println("duplicate:", color.YellowString(mapping.ServiceID), "of", color.YellowString(serviceID))
|
||
|
|
||
|
slashPos := strings.Index(serviceID, "/")
|
||
|
|
||
|
if slashPos != -1 {
|
||
|
serviceID = serviceID[:slashPos]
|
||
|
}
|
||
|
|
||
|
slashPos = strings.Index(mapping.ServiceID, "/")
|
||
|
|
||
|
if slashPos != -1 {
|
||
|
mapping.ServiceID = mapping.ServiceID[:slashPos]
|
||
|
}
|
||
|
|
||
|
if serviceID == mapping.ServiceID {
|
||
|
// Remove duplicate
|
||
|
anime.Mappings = append(anime.Mappings[:index], anime.Mappings[index+1:]...)
|
||
|
anime.Save()
|
||
|
break
|
||
|
}
|
||
|
}
|
||
|
|
||
|
existing[mapping.Service] = mapping.ServiceID
|
||
|
}
|
||
|
}
|
||
|
|
||
|
color.Green("Finished.")
|
||
|
}
|