package main import ( "encoding/json" "log" "net/http" ) func IndexHandler(w http.ResponseWriter, r *http.Request) { log.Println("Wrong URL.") w.WriteHeader(400) w.Write([]byte("Wrong URL.")) } func WebhookFailureHandler(w http.ResponseWriter, r *http.Request) { log.Println("Getting not-Post request on /webhook") w.WriteHeader(400) w.Write([]byte("Accepts only POST requests.")) } func WebhookHandler(w http.ResponseWriter, r *http.Request) { decoder := json.NewDecoder(r.Body) var hook Webhook err := decoder.Decode(&hook) if err != nil { log.Print("Wrong JSON.", err) w.WriteHeader(400) w.Write([]byte("Wrong JSON.")) return } if hook.Join != "" { log.Println("Joining #" + hook.Join) con.Join("#" + hook.Join) log.Println("Sending private message to " + hook.Join + ": " + hook.Message) con.Privmsg("#"+hook.Join, hook.Message) if fjoin := os.Getenv("WEB2IRC_IRC_JOIN"); fjoin != hook.Join { log.Println("Leaving #" + hook.Join) con.Part("#" + hook.Join) } if hook.Target != "" { log.Println("Sending private message to " + hook.Target + ": " + hook.Message) con.Privmsg(hook.Target, hook.Message) } } else { log.Println("Sending private message to " + hook.Target + ": " + hook.Message) con.Privmsg(hook.Target, hook.Message) } }