mirror of
https://github.com/Xevion/scla-unsubscribe.git
synced 2025-12-11 08:08:34 -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
|
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) {
|
func GetDirectoryCached(letter string) ([]Entry, error) {
|
||||||
key := fmt.Sprintf("directory:%s", letter)
|
key := fmt.Sprintf("directory:%s", letter)
|
||||||
|
|
||||||
// Check if cached
|
// Check if cached
|
||||||
var entries []Entry
|
var entries []Entry
|
||||||
err := db.View(func(txn *badger.Txn) error {
|
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))
|
directoryItem, err := txn.Get([]byte(key))
|
||||||
|
|
||||||
// Check if key was found
|
// Check if key was found
|
||||||
if err == badger.ErrKeyNotFound {
|
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
|
return nil
|
||||||
} else if err != nil {
|
} else if err != nil {
|
||||||
return errors.Wrap(err, "failed to get directory cache")
|
return errors.Wrap(err, "failed to get directory cache")
|
||||||
|
|||||||
14
main.go
14
main.go
@@ -127,16 +127,12 @@ func main() {
|
|||||||
log.Info().Msg("Login not required")
|
log.Info().Msg("Login not required")
|
||||||
}
|
}
|
||||||
|
|
||||||
// print directory for Z
|
// Get the directory
|
||||||
for letter := 'A'; letter <= 'Z'; letter++ {
|
directory, err := GetFullDirectory()
|
||||||
entries, err := GetDirectoryCached(string(letter))
|
if err != nil {
|
||||||
if err != nil {
|
log.Fatal().Err(err).Msg("Failed to get directory")
|
||||||
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 db.Close()
|
||||||
defer SaveCookies()
|
defer SaveCookies()
|
||||||
|
|||||||
Reference in New Issue
Block a user