mirror of
https://github.com/Xevion/scla-unsubscribe.git
synced 2025-12-08 16:08:26 -06:00
function for requesting full directory
This commit is contained in:
18
directory.go
18
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")
|
||||
|
||||
10
main.go
10
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))
|
||||
// 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()
|
||||
|
||||
Reference in New Issue
Block a user