diff --git a/honk.go b/honk.go index cd9a729..e8bf09b 100644 --- a/honk.go +++ b/honk.go @@ -25,6 +25,7 @@ import ( "log" notrand "math/rand" "net/http" + "net/url" "os" "sort" "strconv" @@ -378,6 +379,32 @@ func inbox(w http.ResponseWriter, r *http.Request) { } } +func ximport(w http.ResponseWriter, r *http.Request) { + xid := r.FormValue("xid") + j, err := GetJunk(xid) + if err != nil { + log.Printf("error getting external object: %s", err) + return + } + u := login.GetUserInfo(r) + user, _ := butwhatabout(u.Username) + xonk := xonkxonk(user, j, originate(xid)) + convoy := "" + if xonk != nil { + convoy = xonk.Convoy + savexonk(user, xonk) + } + http.Redirect(w, r, "/t?c="+url.QueryEscape(convoy), http.StatusSeeOther) +} + +func xzone(w http.ResponseWriter, r *http.Request) { + templinfo := getInfo(r) + templinfo["XCSRF"] = login.GetCSRF("ximport", r) + err := readviews.Execute(w, r.URL.Path[1:]+".html", templinfo) + if err != nil { + log.Print(err) + } +} func outbox(w http.ResponseWriter, r *http.Request) { name := mux.Vars(r)["name"] user, err := butwhatabout(name) @@ -1275,6 +1302,7 @@ func serve() { "views/account.html", "views/about.html", "views/login.html", + "views/xzone.html", "views/header.html", ) if !debug { @@ -1321,11 +1349,13 @@ func serve() { loggedin.HandleFunc("/chpass", dochpass) loggedin.HandleFunc("/atme", homepage) loggedin.HandleFunc("/zonkzone", zonkzone) + loggedin.HandleFunc("/xzone", xzone) loggedin.Handle("/honk", login.CSRFWrap("honkhonk", http.HandlerFunc(savehonk))) loggedin.Handle("/bonk", login.CSRFWrap("honkhonk", http.HandlerFunc(savebonk))) loggedin.Handle("/zonkit", login.CSRFWrap("honkhonk", http.HandlerFunc(zonkit))) loggedin.Handle("/zonkzonk", login.CSRFWrap("zonkzonk", http.HandlerFunc(zonkzonk))) loggedin.Handle("/saveuser", login.CSRFWrap("saveuser", http.HandlerFunc(saveuser))) + loggedin.Handle("/ximport", login.CSRFWrap("ximport", http.HandlerFunc(ximport))) loggedin.HandleFunc("/honkers", showhonkers) loggedin.HandleFunc("/h/{name:[[:alnum:]]+}", showhonker) loggedin.HandleFunc("/c/{name:[[:alnum:]]+}", showcombo) diff --git a/views/header.html b/views/header.html index a471496..544940c 100644 --- a/views/header.html +++ b/views/header.html @@ -17,8 +17,12 @@ {{ .UserInfo.Username }} honkers combos +
+more +xzone zonkzone account +
{{ else }} about {{ if .ShowRSS }} diff --git a/views/style.css b/views/style.css index 8c1a238..26a9232 100644 --- a/views/style.css +++ b/views/style.css @@ -44,6 +44,12 @@ body > header { body > header span { margin-right: 2em; } +header details { + display: inline; +} +header details[open] summary { + display: none; +} main { max-width: 1200px; margin: auto; @@ -162,7 +168,7 @@ button a { } .inlineform select { } -details summary { +.honk details summary { color: #aab; } .limited details summary { diff --git a/views/xzone.html b/views/xzone.html new file mode 100644 index 0000000..ddb86f1 --- /dev/null +++ b/views/xzone.html @@ -0,0 +1,11 @@ +{{ template "header.html" . }} +
+
+
+ +

import +

- xid +

+

+
+