Generate new character IDs
This commit is contained in:
parent
c3b21a4bc7
commit
3cf7523d13
85
patches/generate-character-ids/generate-character-ids.go
Normal file
85
patches/generate-character-ids/generate-character-ids.go
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"sort"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/animenotifier/arn"
|
||||||
|
"github.com/fatih/color"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
color.Yellow("Generating character IDs")
|
||||||
|
|
||||||
|
defer color.Green("Finished")
|
||||||
|
defer arn.Node.Close()
|
||||||
|
|
||||||
|
allCharacters := arn.FilterCharacters(func(character *arn.Character) bool {
|
||||||
|
return len(character.ID) < len("hw5heOmiR")
|
||||||
|
})
|
||||||
|
|
||||||
|
sort.Slice(allCharacters, func(i, j int) bool {
|
||||||
|
aID, _ := strconv.Atoi(allCharacters[i].ID)
|
||||||
|
bID, _ := strconv.Atoi(allCharacters[j].ID)
|
||||||
|
|
||||||
|
return aID < bID
|
||||||
|
})
|
||||||
|
|
||||||
|
// Create map of old IDs to new IDs
|
||||||
|
idMap := map[string]string{}
|
||||||
|
|
||||||
|
for counter, character := range allCharacters {
|
||||||
|
newID := arn.GenerateID("Character")
|
||||||
|
|
||||||
|
if character.GetMapping("myanimelist/character") == "" {
|
||||||
|
fmt.Printf("[%d / %d] Old [%s] New [%s] %s\n", counter+1, len(allCharacters), color.YellowString(character.ID), color.GreenString(newID), character)
|
||||||
|
}
|
||||||
|
|
||||||
|
idMap[character.ID] = newID
|
||||||
|
character.ID = newID
|
||||||
|
character.Save()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update quotes
|
||||||
|
for quote := range arn.StreamQuotes() {
|
||||||
|
newID, exists := idMap[quote.CharacterID]
|
||||||
|
|
||||||
|
if exists {
|
||||||
|
quote.CharacterID = newID
|
||||||
|
quote.Save()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update log
|
||||||
|
for entry := range arn.StreamEditLogEntries() {
|
||||||
|
if entry.ObjectType != "Character" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
newID, exists := idMap[entry.ObjectID]
|
||||||
|
|
||||||
|
if exists {
|
||||||
|
entry.ObjectID = newID
|
||||||
|
entry.Save()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update anime characters
|
||||||
|
for list := range arn.StreamAnimeCharacters() {
|
||||||
|
modified := false
|
||||||
|
|
||||||
|
for _, animeCharacter := range list.Items {
|
||||||
|
newID, exists := idMap[animeCharacter.CharacterID]
|
||||||
|
|
||||||
|
if exists {
|
||||||
|
animeCharacter.CharacterID = newID
|
||||||
|
modified = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if modified {
|
||||||
|
list.Save()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user