diff options
author | Jackson Taylor <jtaylormuffins@gmail.com> | 2018-06-20 09:41:35 -0400 |
---|---|---|
committer | Jackson Taylor <jtaylormuffins@gmail.com> | 2018-06-20 09:41:35 -0400 |
commit | 793bdf72db2bac0d93deffbf46ab32395f4c5ce3 (patch) | |
tree | 561732099c678b3c74f2757860374d94bd25ee14 | |
parent | 047169e92a06de897e019274f0b903b140671655 (diff) |
Added gitignore, started adding templates, able to find media from dirs
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | main.go | 84 | ||||
-rw-r--r-- | static/main.css | 0 | ||||
-rw-r--r-- | temp/header-footer.gohtml | 19 | ||||
-rw-r--r-- | temp/home.gohtml (renamed from temp/home.html) | 8 | ||||
-rw-r--r-- | temp/movieIndex.gohtml | 9 |
6 files changed, 102 insertions, 22 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..379dd13 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.mkv +*.mp4 +*.avi +*.mpg
\ No newline at end of file @@ -4,38 +4,94 @@ import ( "fmt" "html/template" "net/http" + "os" + "path/filepath" + "strings" ) -type HomePage struct { - Title string +const ( + moviesDirectory = "./media/movies/" +) + +type Page struct { + Title string + MovieTitleAndSource map[string]string +} + +var tmpl *template.Template + +func init() { + tmpl = template.Must(template.ParseGlob("./temp/*.gohtml")) } func main() { + moviesFileServer := http.FileServer(http.Dir(moviesDirectory)) http.HandleFunc("/", index) - //http.HandleFunc("/movies/", movieIndex) + http.HandleFunc("/movies/", movieIndex) + http.Handle("/movies/files/", moviesFileServer) http.ListenAndServe(":8080", nil) - } func index(w http.ResponseWriter, req *http.Request) { - //w.Header().Set("Content-Type", "text/html") - p := HomePage{Title: "Home"} + w.Header().Set("Content-Type", "text/html") - t, err := template.ParseFiles("./temp/home.html") + p := Page{ + Title: "Home", + } - if err != nil { - fmt.Println(err) + err := tmpl.ExecuteTemplate(w, "header", p) + check(err, w) + + err = tmpl.ExecuteTemplate(w, "home.gohtml", nil) + check(err, w) + + err = tmpl.ExecuteTemplate(w, "footer", nil) + check(err, w) +} + +// /movies handler +func movieIndex(w http.ResponseWriter, req *http.Request) { + w.Header().Set("Content-type", "text/html") + + movMap := getMovieInformation(w) + p := Page{ + Title: "Movies", + MovieTitleAndSource: movMap, } - err = t.Execute(w, p) + err := tmpl.ExecuteTemplate(w, "header", p) + check(err, w) + err = tmpl.ExecuteTemplate(w, "movieIndex.gohtml", p) + check(err, w) + + err = tmpl.ExecuteTemplate(w, "footer", nil) + check(err, w) + +} + +func check(err error, w http.ResponseWriter) { if err != nil { fmt.Println(err) fmt.Fprintf(w, "%s", err) } } -// func movieIndex(w http.ResponseWriter, req *http.Request) { -// w.Header().Set("Content-type", "text/html") -// -// } +func getMovieInformation(w http.ResponseWriter) map[string]string { + m := make(map[string]string) + + err := filepath.Walk(moviesDirectory, func(path string, info os.FileInfo, err error) (er error) { + if !info.IsDir() { + src := info.Name() + name := strings.TrimSuffix(src, filepath.Ext(src)) + fmt.Println(src) + src = "/movies/files/" + src + m[name] = src + } + return nil + }) + + check(err, w) + + return m +} diff --git a/static/main.css b/static/main.css new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/static/main.css diff --git a/temp/header-footer.gohtml b/temp/header-footer.gohtml new file mode 100644 index 0000000..c8d7a67 --- /dev/null +++ b/temp/header-footer.gohtml @@ -0,0 +1,19 @@ +{{define "header"}} +<!DOCTYPE html> +<html> + <head> + <title>JAMA | {{.Title}}</title> + <link rel="stylesheet" href="/static/main.css"> + </head> + <body> +{{end}} + +{{define "footer"}} + <div id="footerDiv"> + <p> + Some footer Text + </p> + </div> + </body> + </html> +{{end}} diff --git a/temp/home.html b/temp/home.gohtml index 747dacd..c754085 100644 --- a/temp/home.html +++ b/temp/home.gohtml @@ -1,9 +1,3 @@ -<!DOCTYPE html> -<html> - <head> - <title>JAMA | {{ .Title}}</title> - </head> - <body> <h1>JAMA</h1> <div id="movieSection"> <a href="/movies">Movies</a> @@ -11,5 +5,3 @@ <div id="showSection"> <a href="/shows">Shows</a> </div> - </body> -</html> diff --git a/temp/movieIndex.gohtml b/temp/movieIndex.gohtml new file mode 100644 index 0000000..5b63c46 --- /dev/null +++ b/temp/movieIndex.gohtml @@ -0,0 +1,9 @@ +<table border="1px solid black"> + {{ range $key, $value := .MovieTitleAndSource}} + <tr> + <td> + <a href="{{ $value }}">{{ $key }}</a> + </td> + </tr> + {{ end}} +</table> |