summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Pointner <equinox@helsinki.at>2015-12-03 18:59:01 (GMT)
committerChristian Pointner <equinox@helsinki.at>2015-12-03 18:59:01 (GMT)
commitece69efd67af2982cac882b9192872c7ff6957bb (patch)
tree3b4eed7f1566516597a73818dbef332b493da145 /src
parent96f34d1d2eb0617ce832eb60325360ed208db5e0 (diff)
moved control interface back to main package
added importer at rhimport package
Diffstat (limited to 'src')
-rw-r--r--src/helsinki.at/rhimport/importer.go99
-rw-r--r--src/helsinki.at/rhimportd/ctrlWeb.go (renamed from src/helsinki.at/rhimport/srvWeb.go)7
-rw-r--r--src/helsinki.at/rhimportd/log.go38
-rw-r--r--src/helsinki.at/rhimportd/rhimportd.go6
4 files changed, 143 insertions, 7 deletions
diff --git a/src/helsinki.at/rhimport/importer.go b/src/helsinki.at/rhimport/importer.go
new file mode 100644
index 0000000..5da6075
--- /dev/null
+++ b/src/helsinki.at/rhimport/importer.go
@@ -0,0 +1,99 @@
+//
+// rhimportd
+//
+// The Radio Helsinki Rivendell Import Daemon
+//
+//
+// Copyright (C) 2015 Christian Pointner <equinox@helsinki.at>
+//
+// This file is part of rhimportd.
+//
+// rhimportd is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// rhimportd is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with rhimportd. If not, see <http://www.gnu.org/licenses/>.
+//
+
+package rhimport
+
+import (
+ // "bytes"
+ "fmt"
+ // "io"
+ // "mime/multipart"
+ // "net/http"
+ // "os"
+)
+
+type ImportContext struct {
+ username string
+ groupname string
+ // TODO: password channel
+ cart int
+ channels int
+ normalization_level int
+ autotrim_level int
+ use_meta_data bool
+ source_file string
+ delete_source_file bool
+}
+
+// func import_audio(url, file string) (err error) {
+
+// var b bytes.Buffer
+// w := multipart.NewWriter(&b)
+
+// if err = w.WriteField("COMMAND", "2"); err != nil {
+// return
+// }
+// if err = w.WriteField("LOGIN_NAME", "<username>"); err != nil {
+// return
+// }
+// if err = w.WriteField("PASSWORD", "<password>"); err != nil {
+// return
+// }
+
+// f, err := os.Open(file)
+// if err != nil {
+// return
+// }
+// fw, err := w.CreateFormFile("FILENAME", file)
+// if err != nil {
+// return
+// }
+// if _, err = io.Copy(fw, f); err != nil {
+// return
+// }
+// f.Close()
+
+// w.Close()
+
+// req, err := http.NewRequest("POST", url, &b)
+// if err != nil {
+// return
+// }
+// req.Header.Set("Content-Type", w.FormDataContentType())
+
+// client := &http.Client{}
+// res, err := client.Do(req)
+// if err != nil {
+// return
+// }
+// if res.StatusCode != http.StatusOK {
+// err = fmt.Errorf("bad status: %s", res.Status)
+// }
+// return
+// }
+
+func ImportFile(ctx *ImportContext) (err error) {
+ err = fmt.Errorf("not yet implemented")
+ return
+}
diff --git a/src/helsinki.at/rhimport/srvWeb.go b/src/helsinki.at/rhimportd/ctrlWeb.go
index f51c8e8..04180ae 100644
--- a/src/helsinki.at/rhimport/srvWeb.go
+++ b/src/helsinki.at/rhimportd/ctrlWeb.go
@@ -22,18 +22,21 @@
// along with rhimportd. If not, see <http://www.gnu.org/licenses/>.
//
-package rhimport
+package main
import (
"fmt"
+ "helsinki.at/rhimport"
"html"
"net/http"
_ "net/http/pprof"
)
-func ServeWeb(addr_s string) {
+func StartControlWeb(addr_s string) {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path))
+ ctx := new(rhimport.ImportContext)
+ rhimport.ImportFile(ctx)
})
rhl.Println("listening on", addr_s)
diff --git a/src/helsinki.at/rhimportd/log.go b/src/helsinki.at/rhimportd/log.go
new file mode 100644
index 0000000..5ff3e6d
--- /dev/null
+++ b/src/helsinki.at/rhimportd/log.go
@@ -0,0 +1,38 @@
+//
+// rhimportd
+//
+// The Radio Helsinki Rivendell Import Daemon
+//
+//
+// Copyright (C) 2015 Christian Pointner <equinox@helsinki.at>
+//
+// This file is part of rhimportd.
+//
+// rhimportd is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// rhimportd is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with rhimportd. If not, see <http://www.gnu.org/licenses/>.
+//
+
+package main
+
+import (
+ "io/ioutil"
+ "log"
+ "os"
+)
+
+var (
+ rhl = log.New(os.Stderr, "[rhimport]\t", log.LstdFlags)
+ // use ioutil.Discard to switch that thing off
+ // rhtl = log.New(os.Stderr, "[rhdbg]\t", log.LstdFlags)
+ rhtl = log.New(ioutil.Discard, "[rhimport-dbg]\t", log.LstdFlags)
+)
diff --git a/src/helsinki.at/rhimportd/rhimportd.go b/src/helsinki.at/rhimportd/rhimportd.go
index a2bce7b..b73df95 100644
--- a/src/helsinki.at/rhimportd/rhimportd.go
+++ b/src/helsinki.at/rhimportd/rhimportd.go
@@ -26,15 +26,11 @@ package main
import (
"flag"
- "helsinki.at/rhimport"
- "log"
"os"
"os/signal"
"sync"
)
-var rhl = log.New(os.Stderr, "[rhimportd]\t", log.LstdFlags)
-
func main() {
addr_s := flag.String("addr", ":4000", "addr:port to listen on, default: ':4000'")
help := flag.Bool("help", false, "show usage")
@@ -51,7 +47,7 @@ func main() {
go func() {
defer wg.Done()
rhl.Println("start web-srv")
- rhimport.ServeWeb(*addr_s)
+ StartControlWeb(*addr_s)
rhl.Println("web finished")
}()