Compare commits

...

2 Commits
0.1 ... master

Author SHA1 Message Date
Alex D. 4c162a9f75
Add module wrappers for APIs 2022-11-27 14:19:47 +00:00
Alex D. c13d3bcd82
Enable module selection 2022-10-11 07:27:07 +00:00
1 changed files with 22 additions and 3 deletions

25
main.go
View File

@ -13,24 +13,43 @@ import (
"log"
"os"
"strings"
"time"
"git.redxen.eu/caskd/goboru"
"git.redxen.eu/caskd/goboru/modules/e621"
"git.redxen.eu/caskd/goboru/modules/gelbooru"
)
func main() {
var (
jobs uint
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)
)
if media, err = gelbooru.Query(flag.Args(), jobs); err != nil {
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 err != nil {
log.Fatal(err)
}