From f8faf6b7ada4b73434cf8af71274f3ef82ac9861 Mon Sep 17 00:00:00 2001 From: Hamish Date: Mon, 1 May 2017 20:44:39 +1000 Subject: [PATCH] Change meta to pass back all original meta --- doc.go | 7 +++---- docx.go | 6 +++--- pdf.go | 12 ++++-------- rtf.go | 11 +++++------ 4 files changed, 15 insertions(+), 21 deletions(-) diff --git a/doc.go b/doc.go index 3ff0c60..e46d852 100644 --- a/doc.go +++ b/doc.go @@ -31,20 +31,19 @@ func ConvertDoc(r io.Reader) (string, map[string]string, error) { } // Parse meta output - info := make(map[string]string) for _, line := range strings.Split(string(metaStr), "\n") { if parts := strings.SplitN(line, "=", 2); len(parts) > 1 { - info[strings.TrimSpace(parts[0])] = strings.TrimSpace(parts[1]) + meta[strings.TrimSpace(parts[0])] = strings.TrimSpace(parts[1]) } } // Convert parsed meta - if tmp, ok := info["Last Modified"]; ok { + if tmp, ok := meta["Last Modified"]; ok { if t, err := time.Parse(time.RFC3339, tmp); err == nil { meta["ModifiedDate"] = fmt.Sprintf("%d", t.Unix()) } } - if tmp, ok := info["Created"]; ok { + if tmp, ok := meta["Created"]; ok { if t, err := time.Parse(time.RFC3339, tmp); err == nil { meta["CreatedDate"] = fmt.Sprintf("%d", t.Unix()) } diff --git a/docx.go b/docx.go index 01d0690..059b2d2 100644 --- a/docx.go +++ b/docx.go @@ -37,17 +37,17 @@ func ConvertDocx(r io.Reader) (string, map[string]string, error) { } defer rc.Close() - info, err := XMLToMap(rc) + meta, err = XMLToMap(rc) if err != nil { return "", nil, fmt.Errorf("error parsing '%v': %v", f.Name, err) } - if tmp, ok := info["modified"]; ok { + if tmp, ok := meta["modified"]; ok { if t, err := time.Parse(time.RFC3339, tmp); err == nil { meta["ModifiedDate"] = fmt.Sprintf("%d", t.Unix()) } } - if tmp, ok := info["created"]; ok { + if tmp, ok := meta["created"]; ok { if t, err := time.Parse(time.RFC3339, tmp); err == nil { meta["CreatedDate"] = fmt.Sprintf("%d", t.Unix()) } diff --git a/pdf.go b/pdf.go index 76270fd..d65b71e 100644 --- a/pdf.go +++ b/pdf.go @@ -28,23 +28,19 @@ func ConvertPDF(r io.Reader) (string, map[string]string, error) { } // Parse meta output - info := make(map[string]string) for _, line := range strings.Split(string(metaStr), "\n") { if parts := strings.SplitN(line, ":", 2); len(parts) > 1 { - info[strings.TrimSpace(parts[0])] = strings.TrimSpace(parts[1]) + meta[strings.TrimSpace(parts[0])] = strings.TrimSpace(parts[1]) } } - // Convert parsed meta - if tmp, ok := info["Author"]; ok { - meta["Author"] = tmp - } - if tmp, ok := info["ModDate"]; ok { + // Convert parsed dates into unix timestamps + if tmp, ok := meta["ModDate"]; ok { if t, err := time.Parse(time.ANSIC, tmp); err == nil { meta["ModifiedDate"] = fmt.Sprintf("%d", t.Unix()) } } - if tmp, ok := info["CreationDate"]; ok { + if tmp, ok := meta["CreationDate"]; ok { if t, err := time.Parse(time.ANSIC, tmp); err == nil { meta["CreatedDate"] = fmt.Sprintf("%d", t.Unix()) } diff --git a/rtf.go b/rtf.go index a5e4c17..37ac873 100644 --- a/rtf.go +++ b/rtf.go @@ -23,10 +23,10 @@ func ConvertRTF(r io.Reader) (string, map[string]string, error) { } // Step through content looking for meta data and stripping out comments - info := make(map[string]string) + meta := make(map[string]string) for _, line := range strings.Split(string(tmpOutput), "\n") { if parts := strings.SplitN(line, ":", 2); len(parts) > 1 { - info[strings.TrimSpace(parts[0])] = strings.TrimSpace(parts[1]) + meta[strings.TrimSpace(parts[0])] = strings.TrimSpace(parts[1]) } if len(line) > 4 && line[:4] != "### " { output += line + "\n" @@ -34,16 +34,15 @@ func ConvertRTF(r io.Reader) (string, map[string]string, error) { } // Identify meta data - meta := make(map[string]string) - if tmp, ok := info["AUTHOR"]; ok { + if tmp, ok := meta["AUTHOR"]; ok { meta["Author"] = tmp } - if tmp, ok := info["### creation date"]; ok { + if tmp, ok := meta["### creation date"]; ok { if t, err := time.Parse("02 January 2006 15:04", tmp); err == nil { meta["CreatedDate"] = fmt.Sprintf("%d", t.Unix()) } } - if tmp, ok := info["### revision date"]; ok { + if tmp, ok := meta["### revision date"]; ok { if t, err := time.Parse("02 January 2006 15:04", tmp); err == nil { meta["ModifiedDate"] = fmt.Sprintf("%d", t.Unix()) }