summaryrefslogtreecommitdiff
path: root/pages.go
diff options
context:
space:
mode:
Diffstat (limited to 'pages.go')
-rw-r--r--pages.go22
1 files changed, 20 insertions, 2 deletions
diff --git a/pages.go b/pages.go
index 886f1d6..ebe284a 100644
--- a/pages.go
+++ b/pages.go
@@ -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"]})
}