package main

import (
	"fmt"
	"sort"

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

func main() {
	color.Yellow("Caching list of active users")

	cache := arn.ListOfIDs{}

	// Filter out active users with an avatar
	users, err := arn.FilterUsers(func(user *arn.User) bool {
		return user.IsActive() && user.Avatar != ""
	})

	if err != nil {
		panic(err)
	}

	// Sort
	sort.Slice(users, func(i, j int) bool {
		if users[i].LastSeen < users[j].LastSeen {
			return false
		}

		if users[i].LastSeen > users[j].LastSeen {
			return true
		}

		return users[i].Registered > users[j].Registered
	})

	// Add users to list
	for _, user := range users {
		cache.IDList = append(cache.IDList, user.ID)
	}

	fmt.Println(len(cache.IDList), "users")

	err = arn.DB.Set("Cache", "active users", cache)

	if err != nil {
		panic(err)
	}

	color.Green("Finished.")
}