Skip to content

Instantly share code, notes, and snippets.

@kantorkel
Created September 13, 2015 11:45
Show Gist options
  • Select an option

  • Save kantorkel/ef7fe70d94be68ef0d0a to your computer and use it in GitHub Desktop.

Select an option

Save kantorkel/ef7fe70d94be68ef0d0a to your computer and use it in GitHub Desktop.
knotenstats.de
package main
import (
"net/http"
"github.com/gorilla/mux"
)
func redirect(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
name := vars["name"]
action := vars["action"]
if action == "" {
action = "knoten"
}
subdomain := vars["subdomain"]
if subdomain == "" {
subdomain = "ffhh"
}
if action == "knoten" {
http.Redirect(w, r, "https://ff.besaid.de/dashboard/db/freifunk-knoteninfo?var-region="+subdomain+"&var-knoten="+name, 302)
} else if action == "group" {
http.Redirect(w, r, "https://ff.besaid.de/dashboard/db/freifunk-gruppen?var-region="+subdomain+"&var-group="+name, 302)
}
}
func info(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("usage:\n"))
w.Write([]byte("({ffhh,ffpi}).knotenstats.de/({knoten,group}/)<name>\n"))
}
func main() {
r := mux.NewRouter()
s := r.Host("{subdomain}.knotenstats.de").Subrouter()
r.HandleFunc("/{action}/{name}", redirect)
s.HandleFunc("/{action}/{name}", redirect)
r.HandleFunc("/{name}", redirect)
s.HandleFunc("/{name}", redirect)
r.HandleFunc("/", info)
s.HandleFunc("/", info)
http.ListenAndServe(":80", r)
// http.ListenAndServeTLS(":443", "cert.pem", "key.pem", nil)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment