porting all github actions from bluesky-social/indigo to tangled CI

util: remove ParseTimestamp (use syntax.ParseDatetime instead)

Changed files
-69
util
-49
util/time.go
··· 1 1 package util 2 2 3 - import ( 4 - "fmt" 5 - "time" 6 - ) 7 - 8 3 const ISO8601 = "2006-01-02T15:04:05.000Z" 9 - 10 - const ISO8601_milli = "2006-01-02T15:04:05.000000Z" 11 - 12 - const ISO8601_numtz = "2006-01-02T15:04:05.000-07:00" 13 - 14 - const ISO8601_numtz_milli = "2006-01-02T15:04:05.000000-07:00" 15 - 16 - const ISO8601_sec = "2006-01-02T15:04:05Z" 17 - 18 - const ISO8601_numtz_sec = "2006-01-02T15:04:05-07:00" 19 - 20 - func ParseTimestamp(s string) (time.Time, error) { 21 - t, err := time.Parse(ISO8601, s) 22 - if err == nil { 23 - return t, nil 24 - } 25 - 26 - t, err = time.Parse(ISO8601_milli, s) 27 - if err == nil { 28 - return t, nil 29 - } 30 - 31 - t, err = time.Parse(ISO8601_numtz, s) 32 - if err == nil { 33 - return t, nil 34 - } 35 - 36 - t, err = time.Parse(ISO8601_numtz_milli, s) 37 - if err == nil { 38 - return t, nil 39 - } 40 - 41 - t, err = time.Parse(ISO8601_sec, s) 42 - if err == nil { 43 - return t, nil 44 - } 45 - 46 - t, err = time.Parse(ISO8601_numtz_sec, s) 47 - if err == nil { 48 - return t, nil 49 - } 50 - 51 - return time.Time{}, fmt.Errorf("failed to parse %q as timestamp", s) 52 - }
-20
util/time_test.go
··· 1 - package util 2 - 3 - import "testing" 4 - 5 - func TestTimeParsing(t *testing.T) { 6 - good := []string{ 7 - "2023-07-19T21:54:14.165300Z", 8 - "2023-07-19T21:54:14.163Z", 9 - "2023-07-19T21:52:02.000+00:00", 10 - "2023-07-19T21:52:02.123456+00:00", 11 - "2023-09-13T11:23:33+09:00", 12 - } 13 - 14 - for _, g := range good { 15 - _, err := ParseTimestamp(g) 16 - if err != nil { 17 - t.Fatal(err) 18 - } 19 - } 20 - }