From 5f5e69a298dad638722119ccc86fc280ffa83dbc Mon Sep 17 00:00:00 2001 From: Dan Ballard Date: Sun, 3 May 2015 09:31:36 -0700 Subject: [PATCH] work on /add - start fetching and trying to parse ?url= --- route_handlers.go | 29 ++++++++++++++++++++++------- templates/pages/add.html | 4 ++-- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/route_handlers.go b/route_handlers.go index 169052d..737970b 100644 --- a/route_handlers.go +++ b/route_handlers.go @@ -7,6 +7,8 @@ import ( "github.com/dballard/transmet/user" "fmt" "time" + "io/ioutil" + "regexp" ) func GetFlashes(session *sessions.Session) map[string]interface{} { @@ -53,8 +55,8 @@ func getPostHandler(getFn, postFn func(http.ResponseWriter, *http.Request)) func } } -func ShowTemplate(template string, w http.ResponseWriter, r *http.Request, user *user.User) { -err := templates[template].Execute(w, map[string]interface{}{"user": user}) +func ShowTemplate(template string, w http.ResponseWriter, data map[string]interface{}) { + err := templates[template].Execute(w, data) if err != nil { fmt.Println("Exec err: ", err) } @@ -66,10 +68,8 @@ func LoginFormHandler(w http.ResponseWriter, r *http.Request) { session, _ := store.Get(r, "c_user") flashes := GetFlashes(session) session.Save(r, w) - err := templates["login"].Execute(w, map[string]interface{}{"flashes": flashes}) - if err != nil { - fmt.Println("Exec err: ", err) - } + + ShowTemplate("login", w, map[string]interface{}{"flashes": flashes}) } // handler for login POST @@ -101,7 +101,22 @@ func LoginPostHandler(w http.ResponseWriter, r *http.Request) { // ?url= func addFormHandler(w http.ResponseWriter, r *http.Request, user *user.User) { - ShowTemplate("add", w, r, user) + var url = r.URL.Query().Get("url") + resp, err := http.Get(url) + if err != nil { + fmt.Println("Error looking up link", url, ":", err) + } else { + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + fmt.Println("Error reading link", url, ":", err) + } else { + re := regexp.MustCompile("< *[Tt][Ii][Tt][Ll][Ee] *>(.*)< *[Tt][Ii][Tt][Ll][Ee] *>") + title := re.FindStringSubmatch(string(body)) + fmt.Println(title) + } + } + + ShowTemplate("add", w, map[string]interface{}{"user": user, "link": url}) } func addPostHandler(w http.ResponseWriter, r *http.Request, user *user.User) { diff --git a/templates/pages/add.html b/templates/pages/add.html index dbff2af..b999f4a 100644 --- a/templates/pages/add.html +++ b/templates/pages/add.html @@ -3,7 +3,7 @@ {{template "flashes" .}}
-
Link:
+
Link:
Title:
Path:
Description:
@@ -11,4 +11,4 @@
-{{end}} +{{end}} \ No newline at end of file