diff --git a/directory.go b/directory.go index ef5b8ea..f05dc27 100644 --- a/directory.go +++ b/directory.go @@ -197,18 +197,32 @@ func CheckLoggedIn() (bool, error) { return false, nil } +func GetFullDirectory() ([]Entry, error) { + entries := make([]Entry, 0, 500) + for letter := 'A'; letter <= 'Z'; letter++ { + letterEntries, err := GetDirectoryCached(string(letter)) + if err != nil { + return nil, errors.Wrap(err, "failed to get directory") + } + + entries = append(entries, letterEntries...) + } + + return entries, nil +} + func GetDirectoryCached(letter string) ([]Entry, error) { key := fmt.Sprintf("directory:%s", letter) // Check if cached var entries []Entry err := db.View(func(txn *badger.Txn) error { - log.Debug().Str("letter", letter).Str("key", key).Msg("Accessing Directory Cache") + log.Debug().Str("key", key).Msg("Accessing Directory Cache") directoryItem, err := txn.Get([]byte(key)) // Check if key was found if err == badger.ErrKeyNotFound { - log.Warn().Str("letter", letter).Str("key", key).Msg("Directory Cache Not Found") + log.Warn().Str("key", key).Msg("Directory Cache Not Found") return nil } else if err != nil { return errors.Wrap(err, "failed to get directory cache") diff --git a/main.go b/main.go index 801812f..4db3a6c 100644 --- a/main.go +++ b/main.go @@ -127,16 +127,12 @@ func main() { log.Info().Msg("Login not required") } - // print directory for Z - for letter := 'A'; letter <= 'Z'; letter++ { - entries, err := GetDirectoryCached(string(letter)) - if err != nil { - log.Fatal().Err(err).Msg("Failed to get directory") - break - } - - log.Info().Str("letter", string(letter)).Int("entries", len(entries)).Msg("Directory") + // Get the directory + directory, err := GetFullDirectory() + if err != nil { + log.Fatal().Err(err).Msg("Failed to get directory") } + log.Info().Int("count", len(directory)).Msg("Directory Loaded") defer db.Close() defer SaveCookies()