Documentation
¶
Overview ¶
Package filedate extracts dates from filenames using patterns common to Google Photos exports (Pixel, Samsung, WhatsApp, Telegram, Facebook, etc.).
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Patterns = []Pattern{ { Name: "PXL", Re: regexp.MustCompile(`(?i)^PXL_(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2})`), Extract: func(m []string) time.Time { return dateFromParts(m[1], m[2], m[3], m[4], m[5], m[6]) }, }, { Name: "IMG_", Re: regexp.MustCompile(`(?i)^IMG_(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2})`), Extract: func(m []string) time.Time { return dateFromParts(m[1], m[2], m[3], m[4], m[5], m[6]) }, }, { Name: "IMGcompact", Re: regexp.MustCompile(`(?i)^IMG(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})`), Extract: func(m []string) time.Time { return dateFromParts(m[1], m[2], m[3], m[4], m[5], m[6]) }, }, { Name: "VID_", Re: regexp.MustCompile(`(?i)^VID_(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2})`), Extract: func(m []string) time.Time { return dateFromParts(m[1], m[2], m[3], m[4], m[5], m[6]) }, }, { Name: "Screenshot_", Re: regexp.MustCompile(`(?i)^Screenshot_(\d{4})(\d{2})(\d{2})-(\d{2})(\d{2})(\d{2})`), Extract: func(m []string) time.Time { return dateFromParts(m[1], m[2], m[3], m[4], m[5], m[6]) }, }, { Name: "Screenshot_dash", Re: regexp.MustCompile(`(?i)^Screenshot_(\d{4})-(\d{2})-(\d{2})-(\d{2})-(\d{2})-(\d{2})`), Extract: func(m []string) time.Time { return dateFromParts(m[1], m[2], m[3], m[4], m[5], m[6]) }, }, { Name: "screen-", Re: regexp.MustCompile(`(?i)^screen-(\d{4})(\d{2})(\d{2})-(\d{2})(\d{2})(\d{2})`), Extract: func(m []string) time.Time { return dateFromParts(m[1], m[2], m[3], m[4], m[5], m[6]) }, }, { Name: "WhatsApp", Re: regexp.MustCompile(`(?i)^IMG-(\d{4})(\d{2})(\d{2})-WA`), Extract: func(m []string) time.Time { return dateFromParts(m[1], m[2], m[3], "12", "0", "0") }, }, { Name: "Telegram", Re: regexp.MustCompile(`(?i)^photo_(\d{4})-(\d{2})-(\d{2})[ _](\d{2})[._](\d{2})[._](\d{2})`), Extract: func(m []string) time.Time { return dateFromParts(m[1], m[2], m[3], m[4], m[5], m[6]) }, }, { Name: "YYYYMMDD_HHMMSS", Re: regexp.MustCompile(`^(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2})`), Extract: func(m []string) time.Time { return dateFromParts(m[1], m[2], m[3], m[4], m[5], m[6]) }, }, { Name: "YYYY-MM-DD", Re: regexp.MustCompile(`^(\d{4})-(\d{2})-(\d{2})[ _](\d{2})[._](\d{2})[._](\d{2})`), Extract: func(m []string) time.Time { return dateFromParts(m[1], m[2], m[3], m[4], m[5], m[6]) }, }, { Name: "Facebook", Re: regexp.MustCompile(`(?i)^FB_IMG_(\d{10,13})`), Extract: func(m []string) time.Time { ms, err := strconv.ParseInt(m[1], 10, 64) if err != nil { return time.Time{} } if ms > 1e12 { ms /= 1000 } return time.Unix(ms, 0).Local() }, }, }
Patterns is the ordered list of filename date patterns, most specific first.
Functions ¶
Types ¶
Click to show internal directories.
Click to hide internal directories.