Changeset 488 in code for trunk/msgstore_fs.go
- Timestamp:
- Mar 31, 2021, 3:57:24 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/msgstore_fs.go
r440 r488 10 10 "time" 11 11 12 "git.sr.ht/~sircmpwn/go-bare" 12 13 "gopkg.in/irc.v3" 13 14 ) … … 16 17 17 18 var escapeFilename = strings.NewReplacer("/", "-", "\\", "-") 19 20 type date struct { 21 Year, Month, Day int 22 } 23 24 func newDate(t time.Time) date { 25 year, month, day := t.Date() 26 return date{year, int(month), day} 27 } 28 29 func (d date) Time() time.Time { 30 return time.Date(d.Year, time.Month(d.Month), d.Day, 0, 0, 0, 0, time.Local) 31 } 32 33 type fsMsgID struct { 34 Date date 35 Offset bare.Int 36 } 37 38 func (fsMsgID) msgIDType() msgIDType { 39 return msgIDFS 40 } 41 42 func parseFSMsgID(s string) (netID int64, entity string, t time.Time, offset int64, err error) { 43 var id fsMsgID 44 netID, entity, err = parseMsgID(s, &id) 45 if err != nil { 46 return 0, "", time.Time{}, 0, err 47 } 48 return netID, entity, id.Date.Time(), int64(id.Offset), nil 49 } 50 51 func formatFSMsgID(netID int64, entity string, t time.Time, offset int64) string { 52 id := fsMsgID{ 53 Date: newDate(t), 54 Offset: bare.Int(offset), 55 } 56 return formatMsgID(netID, entity, &id) 57 } 18 58 19 59 // fsMessageStore is a per-user on-disk store for IRC messages. … … 35 75 filename := fmt.Sprintf("%04d-%02d-%02d.log", year, month, day) 36 76 return filepath.Join(ms.root, escapeFilename.Replace(network.GetName()), escapeFilename.Replace(entity), filename) 37 }38 39 func parseFSMsgID(s string) (netID int64, entity string, t time.Time, offset int64, err error) {40 netID, entity, extra, err := parseMsgID(s)41 if err != nil {42 return 0, "", time.Time{}, 0, err43 }44 45 var year, month, day int46 _, err = fmt.Sscanf(extra, "%04d-%02d-%02d %d", &year, &month, &day, &offset)47 if err != nil {48 return 0, "", time.Time{}, 0, fmt.Errorf("invalid message ID %q: %v", s, err)49 }50 t = time.Date(year, time.Month(month), day, 0, 0, 0, 0, time.Local)51 return netID, entity, t, offset, nil52 }53 54 func formatFSMsgID(netID int64, entity string, t time.Time, offset int64) string {55 year, month, day := t.Date()56 extra := fmt.Sprintf("%04d-%02d-%02d %d", year, month, day, offset)57 return formatMsgID(netID, entity, extra)58 77 } 59 78
Note:
See TracChangeset
for help on using the changeset viewer.