function for requesting full directory

This commit is contained in:
2023-12-29 18:14:38 -06:00
parent e549a3c014
commit 88e3cbec24
2 changed files with 21 additions and 11 deletions

View File

@@ -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")

10
main.go
View File

@@ -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))
// Get the directory
directory, err := GetFullDirectory()
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")
}
log.Info().Int("count", len(directory)).Msg("Directory Loaded")
defer db.Close()
defer SaveCookies()