diff options
| author | Christine Dodrill <xena@yolo-swag.com> | 2015-06-06 10:16:49 -0700 |
|---|---|---|
| committer | Christine Dodrill <xena@yolo-swag.com> | 2015-06-06 10:16:49 -0700 |
| commit | 88b0c6b5a6a151c9be8f49ef5b477c1d4bd0c7c8 (patch) | |
| tree | d29f6d6554b995db8d80cd8b3496a691fccdde0d | |
| parent | 5d4e0aae410f4c04bc5e93ce13ef1233b12c360b (diff) | |
| download | x-88b0c6b5a6a151c9be8f49ef5b477c1d4bd0c7c8.tar.xz x-88b0c6b5a6a151c9be8f49ef5b477c1d4bd0c7c8.zip | |
only one file at a time
| -rw-r--r-- | dbupload/main.go | 144 |
1 files changed, 69 insertions, 75 deletions
diff --git a/dbupload/main.go b/dbupload/main.go index 7a6f5b1..cc07cd7 100644 --- a/dbupload/main.go +++ b/dbupload/main.go @@ -10,7 +10,6 @@ import ( "log" "net/http" "os" - "path/filepath" "strings" "time" ) @@ -24,7 +23,7 @@ func main() { flag.Parse() if flag.NArg() == 0 { - fmt.Printf("%s: <glob of files to upload>\n", os.Args[0]) + fmt.Printf("%s: <image to upload>\n", os.Args[0]) fmt.Printf("All files must have a manifest json file.\n") flag.Usage() } @@ -41,82 +40,77 @@ func main() { panic(err) } - images, err := filepath.Glob(flag.Arg(0)) + image := flag.Arg(0) + + if strings.HasSuffix(image, ".json") { + log.Printf("Skipped %s...", image) + return + } + + metafin, err := os.Open(image + ".json") + if err != nil { + log.Fatal("image " + image + " MUST have description manifest for derpibooru") + } + defer metafin.Close() + + metabytes, err := ioutil.ReadAll(metafin) + if err != nil { + log.Fatal(err) + } + + var meta UploadImage + err = json.Unmarshal(metabytes, &meta) + if err != nil { + log.Fatal(err) + } + + imfin, err := os.Open(image) + if err != nil { + log.Fatal("cannot open " + image) + } + defer imfin.Close() + + if meta.Image.ImageURL == "" { + panic("need file uploaded somewhere?") + } + + outmetabytes, err := json.Marshal(&meta) + + req, err := http.NewRequest("POST", "https://derpibooru.org/images.json?key="+mydbkey, bytes.NewBuffer(outmetabytes)) if err != nil { panic(err) } - for _, image := range images { - if strings.HasSuffix(image, ".json") { - log.Printf("Skipped %s...", image) - continue - } - - metafin, err := os.Open(image + ".json") - if err != nil { - log.Fatal("image " + image + " MUST have description manifest for derpibooru") - } - defer metafin.Close() - - metabytes, err := ioutil.ReadAll(metafin) - if err != nil { - log.Fatal(err) - } - - var meta UploadImage - err = json.Unmarshal(metabytes, &meta) - if err != nil { - log.Fatal(err) - } - - imfin, err := os.Open(image) - if err != nil { - log.Fatal("cannot open " + image) - } - defer imfin.Close() - - if meta.Image.ImageURL == "" { - panic("need file uploaded somewhere?") - } - - outmetabytes, err := json.Marshal(&meta) - - req, err := http.NewRequest("POST", "https://derpibooru.org/images.json?key="+mydbkey, bytes.NewBuffer(outmetabytes)) - if err != nil { - panic(err) - } - - c := &http.Client{} - - req.Header = http.Header{ - "User-Agent": {"Xena's crappy upload tool"}, - "Cookie": {string(cookie)}, - "Content-Type": {"application/json"}, - } - - resp, err := c.Do(req) - if err != nil { - log.Printf("%#v", err) - fmt.Printf("Request ID: %s\n", resp.Header.Get("X-Request-Id")) - continue - } - - if resp.StatusCode != 201 { - io.Copy(os.Stdout, resp.Body) - continue - } - - respbytes, err := ioutil.ReadAll(resp.Body) - if err != nil { - log.Println(err) - continue - } - - var i Image - json.Unmarshal(respbytes, &i) - - fmt.Printf("Uploaded as https://derpibooru.org/%d\n", i.IDNumber) - - time.Sleep(20 * time.Second) + c := &http.Client{} + + req.Header = http.Header{ + "User-Agent": {"Xena's crappy upload tool"}, + "Cookie": {string(cookie)}, + "Content-Type": {"application/json"}, + } + + resp, err := c.Do(req) + if err != nil { + log.Printf("%#v", err) + fmt.Printf("Request ID: %s\n", resp.Header.Get("X-Request-Id")) + return } + + if resp.StatusCode != 201 { + io.Copy(os.Stdout, resp.Body) + return + } + + respbytes, err := ioutil.ReadAll(resp.Body) + if err != nil { + log.Println(err) + return + } + + var i Image + json.Unmarshal(respbytes, &i) + + fmt.Printf("Uploaded as https://derpibooru.org/%d\n", i.IDNumber) + + time.Sleep(20 * time.Second) } |
