summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/helsinki.at/rhimport/importer.go70
-rw-r--r--src/helsinki.at/rhimportd/ctrlWebSimple.go2
2 files changed, 53 insertions, 19 deletions
diff --git a/src/helsinki.at/rhimport/importer.go b/src/helsinki.at/rhimport/importer.go
index 68b71a6..c7b1a66 100644
--- a/src/helsinki.at/rhimport/importer.go
+++ b/src/helsinki.at/rhimport/importer.go
@@ -114,6 +114,57 @@ func (ctx *ImportContext) getShowInfo() (err error) {
return
}
+func send_post_request(url string, b *bytes.Buffer, contenttype string) (err error) {
+ var req *http.Request
+ if req, err = http.NewRequest("POST", url, b); err != nil {
+ return
+ }
+ if contenttype != "" {
+ req.Header.Set("Content-Type", contenttype)
+ }
+
+ client := &http.Client{}
+ var res *http.Response
+ if res, err = client.Do(req); err != nil {
+ return
+ }
+ defer res.Body.Close()
+
+ if res.StatusCode != http.StatusOK {
+ // TODO: better error output
+ err = fmt.Errorf("bad status: %s", res.Status)
+ }
+ return
+}
+
+func add_cart(ctx *ImportContext) (err error) {
+ var b bytes.Buffer
+ w := multipart.NewWriter(&b)
+
+ if err = w.WriteField("COMMAND", "12"); err != nil {
+ return
+ }
+ if err = w.WriteField("LOGIN_NAME", ctx.UserName); err != nil {
+ return
+ }
+ if err = w.WriteField("PASSWORD", ctx.Password); err != nil {
+ return
+ }
+ if err = w.WriteField("GRPOUP_NAME", ctx.GroupName); err != nil {
+ return
+ }
+ if err = w.WriteField("TYPE", "audio"); err != nil {
+ return
+ }
+ if ctx.Cart != 0 {
+ if err = w.WriteField("CART_NUMBER", fmt.Sprintf("%d", ctx.Cart)); err != nil {
+ return
+ }
+ }
+ w.Close()
+ return send_post_request(ctx.Config.RDXportEndpoint, &b, w.FormDataContentType())
+}
+
func import_audio(ctx *ImportContext) (err error) {
var b bytes.Buffer
w := multipart.NewWriter(&b)
@@ -160,24 +211,7 @@ func import_audio(ctx *ImportContext) (err error) {
f.Close()
w.Close()
- var req *http.Request
- if req, err = http.NewRequest("POST", ctx.Config.RDXportEndpoint, &b); err != nil {
- return
- }
- req.Header.Set("Content-Type", w.FormDataContentType())
-
- client := &http.Client{}
- var res *http.Response
- if res, err = client.Do(req); err != nil {
- return
- }
- defer res.Body.Close()
-
- if res.StatusCode != http.StatusOK {
- // TODO: better error output
- err = fmt.Errorf("bad status: %s", res.Status)
- }
- return
+ return send_post_request(ctx.Config.RDXportEndpoint, &b, w.FormDataContentType())
}
func cleanup_files(ctx *ImportContext) {
diff --git a/src/helsinki.at/rhimportd/ctrlWebSimple.go b/src/helsinki.at/rhimportd/ctrlWebSimple.go
index 1d28818..4cac593 100644
--- a/src/helsinki.at/rhimportd/ctrlWebSimple.go
+++ b/src/helsinki.at/rhimportd/ctrlWebSimple.go
@@ -68,7 +68,7 @@ func webSimpleResponse(w http.ResponseWriter) {
}
func webSimpleProgressCallback(step int, step_name string, progress float64, userdata interface{}) {
- fmt.Printf("Step %d / %s: %3.2f%%\r", step, step_name, progress * 100)
+ fmt.Printf("Step %d / %s: %3.2f%%\r", step, step_name, progress*100)
}
func webSimpleParseRequest(conf *rhimport.Config, rddb *rhimport.RdDb, trusted bool, r *http.Request) (ctx *rhimport.ImportContext, err error) {