package main

func main() {}

// import (
// 	"time"

// 	"github.com/aerogo/nano"
// 	"github.com/animenotifier/arn"
// 	"github.com/fatih/color"
// )

// func main() {
// 	arn.DB.SetScanPriority("high")

// 	aeroDB := nano.New(5000).Namespace("arn", arn.DBTypes...)
// 	defer aeroDB.Close()

// 	for typeName := range arn.DB.Types() {
// 		count := 0

// 		switch typeName {
// 		case "Anime":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.Anime) {
// 				aeroDB.Set(typeName, obj.ID, obj)
// 				count++
// 			}

// 		case "AnimeEpisodes":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.AnimeEpisodes) {
// 				aeroDB.Set(typeName, obj.AnimeID, obj)
// 				count++
// 			}

// 		case "AnimeList":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.AnimeList) {
// 				aeroDB.Set(typeName, obj.UserID, obj)
// 				count++
// 			}

// 		case "AnimeCharacters":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.AnimeCharacters) {
// 				aeroDB.Set(typeName, obj.AnimeID, obj)
// 				count++
// 			}

// 		case "AnimeRelations":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.AnimeRelations) {
// 				aeroDB.Set(typeName, obj.AnimeID, obj)
// 				count++
// 			}

// 		case "Character":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.Character) {
// 				aeroDB.Set(typeName, obj.ID, obj)
// 				count++
// 			}

// 		case "Purchase":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.Purchase) {
// 				aeroDB.Set(typeName, obj.ID, obj)
// 				count++
// 			}

// 		case "PushSubscriptions":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.PushSubscriptions) {
// 				aeroDB.Set(typeName, obj.UserID, obj)
// 				count++
// 			}

// 		case "User":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.User) {
// 				aeroDB.Set(typeName, obj.ID, obj)
// 				count++
// 			}

// 		case "Post":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.Post) {
// 				aeroDB.Set(typeName, obj.ID, obj)
// 				count++
// 			}

// 		case "Thread":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.Thread) {
// 				aeroDB.Set(typeName, obj.ID, obj)
// 				count++
// 			}

// 		case "Analytics":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.Analytics) {
// 				aeroDB.Set(typeName, obj.UserID, obj)
// 				count++
// 			}

// 		case "SoundTrack":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.SoundTrack) {
// 				aeroDB.Set(typeName, obj.ID, obj)
// 				count++
// 			}

// 		case "Item":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.Item) {
// 				aeroDB.Set(typeName, obj.ID, obj)
// 				count++
// 			}

// 		case "Inventory":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.Inventory) {
// 				aeroDB.Set(typeName, obj.UserID, obj)
// 				count++
// 			}

// 		case "Settings":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.Settings) {
// 				aeroDB.Set(typeName, obj.UserID, obj)
// 				count++
// 			}

// 		case "UserFollows":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.UserFollows) {
// 				aeroDB.Set(typeName, obj.UserID, obj)
// 				count++
// 			}

// 		case "PayPalPayment":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.PayPalPayment) {
// 				aeroDB.Set(typeName, obj.ID, obj)
// 				count++
// 			}

// 		case "AniListToAnime":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.AniListToAnime) {
// 				aeroDB.Set(typeName, obj.ServiceID, obj)
// 				count++
// 			}

// 		case "MyAnimeListToAnime":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.MyAnimeListToAnime) {
// 				aeroDB.Set(typeName, obj.ServiceID, obj)
// 				count++
// 			}

// 		case "SearchIndex":
// 			anime, _ := arn.DB.Get(typeName, "Anime")
// 			aeroDB.Set(typeName, "Anime", anime)

// 			users, _ := arn.DB.Get(typeName, "User")
// 			aeroDB.Set(typeName, "User", users)

// 			posts, _ := arn.DB.Get(typeName, "Post")
// 			aeroDB.Set(typeName, "Post", posts)

// 			threads, _ := arn.DB.Get(typeName, "Thread")
// 			aeroDB.Set(typeName, "Thread", threads)

// 			count += 4

// 		case "DraftIndex":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.DraftIndex) {
// 				aeroDB.Set(typeName, obj.UserID, obj)
// 				count++
// 			}

// 		case "EmailToUser":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.EmailToUser) {
// 				if obj.Email == "" {
// 					continue
// 				}

// 				aeroDB.Set(typeName, obj.Email, obj)
// 				count++
// 			}

// 		case "FacebookToUser":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.FacebookToUser) {
// 				if obj.ID == "" {
// 					continue
// 				}

// 				aeroDB.Set(typeName, obj.ID, obj)
// 				count++
// 			}

// 		case "GoogleToUser":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.GoogleToUser) {
// 				if obj.ID == "" {
// 					continue
// 				}

// 				aeroDB.Set(typeName, obj.ID, obj)
// 				count++
// 			}

// 		case "TwitterToUser":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.TwitterToUser) {
// 				if obj.ID == "" {
// 					continue
// 				}

// 				aeroDB.Set(typeName, obj.ID, obj)
// 				count++
// 			}

// 		case "NickToUser":
// 			channel, _ := arn.DB.All(typeName)

// 			for obj := range channel.(chan *arn.NickToUser) {
// 				if obj.Nick == "" {
// 					continue
// 				}

// 				aeroDB.Set(typeName, obj.Nick, obj)
// 				count++
// 			}

// 		default:
// 			color.Yellow("Skipping %s", typeName)
// 			continue
// 		}

// 		color.Green("Export %d %s", count, typeName)
// 	}

// 	time.Sleep(1 * time.Second)
// }