summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJackson Taylor <jtaylormuffins@gmail.com>2018-06-20 09:41:35 -0400
committerJackson Taylor <jtaylormuffins@gmail.com>2018-06-20 09:41:35 -0400
commit793bdf72db2bac0d93deffbf46ab32395f4c5ce3 (patch)
tree561732099c678b3c74f2757860374d94bd25ee14
parent047169e92a06de897e019274f0b903b140671655 (diff)
Added gitignore, started adding templates, able to find media from dirs
-rw-r--r--.gitignore4
-rw-r--r--main.go84
-rw-r--r--static/main.css0
-rw-r--r--temp/header-footer.gohtml19
-rw-r--r--temp/home.gohtml (renamed from temp/home.html)8
-rw-r--r--temp/movieIndex.gohtml9
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
diff --git a/main.go b/main.go
index c5a481d..52f4b36 100644
--- a/main.go
+++ b/main.go
@@ -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>