package main
import (
"compress/gzip"
"fmt"
"io"
"log"
"net/http"
"os"
"path"
"github.com/julienschmidt/httprouter"
)
func main() {
router := httprouter.New()
router.GET("/", handleIndex)
router.GET("/matokeo/:filename", handleFiles)
log.Print("Listening on 8080")
http.ListenAndServe(":8080", router)
}
func handleIndex(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
file, err := os.Open("./index.html")
if err != nil {
io.WriteString(w, "Kuna tatizo jaribu tena")
return
}
defer file.Close()
w.Header().Set("Content-Encoding", "gzip")
w.Header().Set("Content-Type", "text/html")
gzipWriter := gzip.NewWriter(w)
defer gzipWriter.Close()
io.Copy(gzipWriter, file)
}
func handleFiles(w http.ResponseWriter, r *http.Request, params httprouter.Params) {
filename := params.ByName("filename")
file, err := os.Open(path.Join("matokeo", filename))
if err != nil {
io.WriteString(w, "Kuna tatizo jaribu tena")
return
}
defer file.Close()
w.Header().Set("Content-Encoding", "gzip")
w.Header().Set("Content-Type", "text/html")
w.Header().Del("Content-Length")
gzipWriter := gzip.NewWriter(w)
defer gzipWriter.Close()
io.Copy(gzipWriter, file)
}