From 2f006df7a6aff97bb69bb2b6ffd607890863ebf9 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 10 Oct 2024 10:34:26 +0300 Subject: initial timestamp package --- internal/timestamp/timestamp.go | 41 ++++++++++++++++++++++++++++++++++++ internal/timestamp/timestamp_test.go | 23 ++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 internal/timestamp/timestamp.go create mode 100644 internal/timestamp/timestamp_test.go (limited to 'internal/timestamp') diff --git a/internal/timestamp/timestamp.go b/internal/timestamp/timestamp.go new file mode 100644 index 0000000..8c048df --- /dev/null +++ b/internal/timestamp/timestamp.go @@ -0,0 +1,41 @@ +package timestamp + +import ( + "strings" + "time" +) + +const ( + Format = "20060102-150405" +) + +func Now() string { + return time.Now().Format(Format) +} + +func NowTime() time.Time { + t, err := Parse(Now()) + if err != nil { + panic(err) + } + return t +} + +func Parse(timeStr string) (time.Time, error) { + return time.Parse(Format, timeStr) +} +func OldestValidTime() time.Time { + // The time this code was written a:round, actually. + oldestValidTime, err := Parse("20240912-102800") + if err != nil { + // Never expected + panic(err) + } + return oldestValidTime +} + +func UpdateInFilename(filename string, rIndex int) string { + parts := strings.Split(filename, ".") + parts[len(parts)-rIndex] = Now() + return strings.Join(parts, "-") +} diff --git a/internal/timestamp/timestamp_test.go b/internal/timestamp/timestamp_test.go new file mode 100644 index 0000000..27d0fd4 --- /dev/null +++ b/internal/timestamp/timestamp_test.go @@ -0,0 +1,23 @@ +package timestamp + +import ( + "strings" + "testing" + "time" +) + +func TestUpdateInFilename(t *testing.T) { + var ( + filePath = "gosdir/db/platforms/mastodon/1728240487.txt.20241009-232530.queued" + nowTime = time.Now() + updatedFilePath = UpdateInFilename(filePath, -2) + parts = strings.Split(updatedFilePath, ".") + ) + + updatedTime, err := Parse(parts[len(parts)-2]) + if err != nil { + t.Error(err) + } + + t.Log(filePath, updatedFilePath, nowTime.Sub(updatedTime)) +} -- cgit v1.2.3