pdf: add extra time layout for pdfs

This commit is contained in:
Benjamin Hinchley
2019-10-16 12:27:43 +11:00
committed by David Howden
parent e3975370dc
commit 1fd4d7a6c8
+18 -7
View File
@@ -40,16 +40,13 @@ func ConvertPDFText(path string) (BodyResult, MetaResult, error) {
} }
// Convert parsed meta // Convert parsed meta
if tmp, ok := metaResult.meta["Author"]; ok { if x, ok := metaResult.meta["ModDate"]; ok {
metaResult.meta["Author"] = tmp if t, ok := pdfTimeLayouts.Parse(x); ok {
}
if tmp, ok := metaResult.meta["ModDate"]; ok {
if t, err := time.Parse(time.ANSIC, tmp); err == nil {
metaResult.meta["ModifiedDate"] = fmt.Sprintf("%d", t.Unix()) metaResult.meta["ModifiedDate"] = fmt.Sprintf("%d", t.Unix())
} }
} }
if tmp, ok := metaResult.meta["CreationDate"]; ok { if x, ok := metaResult.meta["CreationDate"]; ok {
if t, err := time.Parse(time.ANSIC, tmp); err == nil { if t, ok := pdfTimeLayouts.Parse(x); ok {
metaResult.meta["CreatedDate"] = fmt.Sprintf("%d", t.Unix()) metaResult.meta["CreatedDate"] = fmt.Sprintf("%d", t.Unix())
} }
} }
@@ -71,3 +68,17 @@ func ConvertPDFText(path string) (BodyResult, MetaResult, error) {
return <-br, <-mr, nil return <-br, <-mr, nil
} }
var pdfTimeLayouts = timeLayouts{time.ANSIC, "Mon Jan _2 15:04:05 2006 MST"}
type timeLayouts []string
func (tl timeLayouts) Parse(x string) (time.Time, bool) {
for _, layout := range tl {
t, err := time.Parse(layout, x)
if err == nil {
return t, true
}
}
return time.Time{}, false
}