- h.response <- extractFromFragment(r.URL.Fragment)
- h.passThrough.ServeHTTP(w, r)
- close(h.response)
- (*h.server).Close()
+ // Redirect from twitch to forward.html
+ if r.Method == http.MethodGet {
+ w.Write(forwardPage)
+ return
+ }
+ // Receive post from forward.html
+ if r.Method == http.MethodPost {
+ err := r.ParseForm()
+ if err != nil { // try again
+ fmt.Fprintln(os.Stderr, err)
+ w.Write(forwardPage)
+ return
+ }
+ fragment, ok := r.PostForm["hash"]
+ if !ok || len(fragment) == 0 { // try again
+ fmt.Fprintln(os.Stderr, err)
+ w.Write(forwardPage)
+ return
+ }
+
+ h.response <- h.extractFromFragment(fragment[0])
+ h.passThrough.ServeHTTP(w, r)
+ if f, ok := w.(http.Flusher); ok {
+ f.Flush()
+ } else {
+ w.WriteHeader(http.StatusOK)
+ }
+
+ close(h.response)
+ (*h.server).Close()
+ }