diff options
author | Kevin Chabowski <kevin@kch42.de> | 2014-03-27 23:48:11 +0100 |
---|---|---|
committer | Kevin Chabowski <kevin@kch42.de> | 2014-03-27 23:51:08 +0100 |
commit | feb228c1fc35aae543d369012994eac7a1dca90f (patch) | |
tree | d2a9b7cf449b3e1e8d48e2bc36b0b383ee5f658a /pages.go | |
parent | 5c45b0e3e5fbe479155ad403b4936d2485a028bd (diff) | |
download | simplechat-feb228c1fc35aae543d369012994eac7a1dca90f.tar.gz simplechat-feb228c1fc35aae543d369012994eac7a1dca90f.tar.bz2 simplechat-feb228c1fc35aae543d369012994eac7a1dca90f.zip |
Homepage done
Diffstat (limited to 'pages.go')
-rw-r--r-- | pages.go | 22 |
1 files changed, 20 insertions, 2 deletions
@@ -3,8 +3,10 @@ package main import ( "github.com/gorilla/mux" "html/template" + "math/rand" "net/http" "path" + "strings" ) var ( @@ -15,16 +17,32 @@ type ChatpageData struct { Websock, Roomname string } +type HomeData struct { + RandomChat string +} + +var randroomAlphabet = []rune("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLNOPQRSTUVWXYZ") + +const randroomLen = 10 + +func randomRoom() string { + name := make([]rune, randroomLen) + for i := 0; i < randroomLen; i++ { + name[i] = randroomAlphabet[rand.Intn(len(randroomAlphabet))] + } + return string(name) +} + func PrepTemplates() { TplHome = template.Must(template.ParseFiles(path.Join(*tplpath, "home.html"))) TplChat = template.Must(template.ParseFiles(path.Join(*tplpath, "chat.html"))) } func Home(rw http.ResponseWriter, req *http.Request) { - TplHome.Execute(rw, nil) // TODO: Should we log the error? + TplHome.Execute(rw, HomeData{randomRoom()}) } func Chatpage(rw http.ResponseWriter, req *http.Request) { vars := mux.Vars(req) - TplChat.Execute(rw, ChatpageData{"ws://" + req.Host + req.URL.Path + "socket", vars["chatroom"]}) + TplChat.Execute(rw, ChatpageData{"ws://" + req.Host + strings.Replace(req.URL.Path+"/socket", "//", "/", -1), vars["chatroom"]}) } |