56 lines
1.1 KiB
Go

package main
import (
"github.com/akyoto/color"
"github.com/animenotifier/notify.moe/arn"
)
func main() {
color.Yellow("Updating user references")
defer arn.Node.Close()
arn.DB.Clear("NickToUser")
arn.DB.Clear("EmailToUser")
arn.DB.Clear("GoogleToUser")
arn.DB.Clear("FacebookToUser")
// Iterate over the stream
count := 0
users, err := arn.AllUsers()
arn.PanicOnError(err)
// Make the most recently seen users overwrite the references of older accounts.
// Some people accidentally created 2 accounts and in case of overlaps we want
// to keep the references for the account that is more likely used.
arn.SortUsersLastSeenLast(users)
// Write new references
for _, user := range users {
count++
println(count, user.Nick)
user.ForceSetNick(user.Nick)
if user.Email != "" {
err := user.SetEmail(user.Email)
if err != nil {
color.Red(err.Error())
}
}
if user.Accounts.Google.ID != "" {
user.ConnectGoogle(user.Accounts.Google.ID)
}
if user.Accounts.Facebook.ID != "" {
user.ConnectFacebook(user.Accounts.Facebook.ID)
}
user.Save()
}
color.Green("Finished.")
}