diff options
Diffstat (limited to 'post')
-rw-r--r-- | post/post.go | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/post/post.go b/post/post.go index 5d24af9..c43b9e3 100644 --- a/post/post.go +++ b/post/post.go @@ -18,7 +18,7 @@ import ( "path/filepath" "strconv" "strings" - "time" + "time" ) var Template = "post" @@ -59,10 +59,10 @@ type Post struct { Date string RssDate string - FileInfo os.FileInfo - Extension string + FileInfo os.FileInfo + Extension string ContentType string - + Site sitemeta } @@ -100,29 +100,30 @@ func (p *Post) Read(fi os.FileInfo) { p.SourceFile = p.FileInfo.Name() var err error - // this is an abominaion - + ext := filepath.Ext(fi.Name()) // ext includes the '.' - if len(ext)>1 { + if len(ext) > 1 { p.Extension = strings.ToLower(ext[1:]) } + // TODO: use MIMETYPE instead of just extension switch p.Extension { - case "bmp", "gif", "jpg", "jpeg", "png", "tiff": + case "bmp", "gif", "jpg", "jpeg", "png", "tiff": p.ContentType = "image" p.Unparsed = "" p.parseExif() - case "mp4", "mpeg": + case "mp4", "mpeg": p.ContentType = "video" p.Unparsed = "" // TODO: parse video headers - case "mp3": + case "mp3": p.ContentType = "audio" p.Unparsed = "" // TODO: mp3/id3 extraction default: + // TODO: sanity check text vs. binary p.ContentType = "text" p.Raw, err = ioutil.ReadFile(path.Join(config.Config.TxtDir, p.FileInfo.Name())) if err != nil { @@ -143,9 +144,10 @@ Try to extract metadata from EXIF */ func (p *Post) parseExif() { // TODO: full exif parsing / metadata propogation - f,_ := os.Open(p.AbsoluteFilePath()) - x,_ := exif.Decode(f) - tm,_ := x.DateTime() + // TODO: error checking + f, _ := os.Open(p.AbsoluteFilePath()) + x, _ := exif.Decode(f) + tm, _ := x.DateTime() p.Time = tm } @@ -241,11 +243,11 @@ func (p *Post) ParseFmt(s string) string { func (p *Post) parseDates() { // in the case of exif - if (p.Time != time.Time{} ) { + if (p.Time != time.Time{}) { p.fillDates() return } - + // // Dates // @@ -346,7 +348,7 @@ func (posts Posts) Limit(limit int) Posts { } func (p *Post) ContainsTag(tag string) bool { - for _,t := range p.Tags { + for _, t := range p.Tags { if t == tag { return true } |