From 4c162a9f75103546860fd2914bc5b3d939692649 Mon Sep 17 00:00:00 2001 From: Alex Denes Date: Sun, 27 Nov 2022 14:19:47 +0000 Subject: [PATCH] Add module wrappers for APIs --- main.go | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/main.go b/main.go index 78690e1..86ee306 100644 --- a/main.go +++ b/main.go @@ -13,6 +13,7 @@ import ( "log" "os" "strings" + "time" "git.redxen.eu/caskd/goboru" "git.redxen.eu/caskd/goboru/modules/e621" @@ -21,27 +22,34 @@ import ( func main() { var ( - jobs uint - module string + ji uint + tout uint + api_key, uname, module string ) - flag.UintVar(&jobs, "maxjobs", 10, "Maximum concurrent page fetch jobs") + flag.UintVar(&ji, "maxjobs", 10, "Maximum concurrent page fetch jobs") + flag.UintVar(&tout, "timeout", 10, "Seconds to time out page fetches") flag.StringVar(&module, "module", "gelbooru", "Module to use") + flag.StringVar(&api_key, "api_key", "", "API Key for requests") + flag.StringVar(&uname, "username", "", "Username for requests") flag.Parse() var ( media []goboru.Media err error + rtout time.Duration = time.Duration(tout) * time.Second + tags []string = flag.Args() + jobs = goboru.Jobs(ji) ) - qFunc := map[string](goboru.QueryFunc){ - "e621": e621.Query, - "gelbooru": gelbooru.Query, - }[module] - if qFunc == nil { - qFunc = gelbooru.Query + switch module { + case "e621": + media, err = e621.Query(uname, api_key, tags, jobs, rtout) + case "gelbooru": + fallthrough + default: // Fallback to gelbooru + media, err = gelbooru.Query(tags, jobs) } - - if media, err = qFunc(flag.Args(), goboru.Jobs(jobs)); err != nil { + if err != nil { log.Fatal(err) }