[slog backend] re-ordering for readability

This commit is contained in:
tjpcc 2023-08-30 10:31:28 -06:00
parent 77ac83e700
commit 985651bbab
1 changed files with 48 additions and 48 deletions

View File

@ -39,7 +39,7 @@ func NewBackend(logger log.Logger, waitTime time.Duration) (nntpserver.Backend,
waitTime = DefaultWaitTime
}
b := &backend{logger: logger, waitTime: waitTime, index: make([]indexEntry, 0)}
b := &backend{logger: logger, waitTime: waitTime, index: []indexEntry{}}
if err := b.refreshIndex(); err != nil {
return nil, err
}
@ -53,11 +53,6 @@ type backend struct {
index []indexEntry
}
func (b backend) debug(keyvals ...any) error { return level.Debug(b.logger).Log(keyvals...) }
func (b backend) info(keyvals ...any) error { return level.Info(b.logger).Log(keyvals...) }
func (b backend) warn(keyvals ...any) error { return level.Warn(b.logger).Log(keyvals...) }
func (b backend) err(keyvals ...any) error { return level.Error(b.logger).Log(keyvals...) }
func (b backend) ListGroups(max int) ([]*nntp.Group, error) {
return []*nntp.Group{group}, nil
}
@ -158,48 +153,10 @@ func (b backend) Authorized() bool { return
func (b backend) AllowPost() bool { return true }
func (b backend) Authenticate(_, _ string) (nntpserver.Backend, error) { return nil, nil }
type indexEntry struct {
id string
ts time.Time
title string
user string
author string
}
const indexTimeFmt = "2006-01-02 15:04:05.999999"
func (ie *indexEntry) UnmarshalJSON(b []byte) error {
var tgt struct {
Timestamp string
Id string
Title string
}
if err := json.Unmarshal(b, &tgt); err != nil {
return err
}
ts, err := time.Parse(indexTimeFmt, tgt.Timestamp)
if err != nil {
return err
}
ie.id = tgt.Id
ie.ts = ts
ie.title = tgt.Title
return nil
}
func (ie *indexEntry) MarshalJSON() ([]byte, error) {
return json.Marshal(map[string]any{
"id": ie.id,
"timestamp": ie.ts.Format(indexTimeFmt),
"title": ie.title,
})
}
func (ie indexEntry) messageID() string {
return fmt.Sprintf("<%s.%s>", ie.id, ie.author)
}
func (b backend) debug(keyvals ...any) error { return level.Debug(b.logger).Log(keyvals...) }
func (b backend) info(keyvals ...any) error { return level.Info(b.logger).Log(keyvals...) }
func (b backend) warn(keyvals ...any) error { return level.Warn(b.logger).Log(keyvals...) }
func (b backend) err(keyvals ...any) error { return level.Error(b.logger).Log(keyvals...) }
func (b *backend) refreshIndex() error {
now := time.Now()
@ -255,6 +212,49 @@ func (b *backend) refreshIndex() error {
return nil
}
type indexEntry struct {
id string
ts time.Time
title string
user string
author string
}
const indexTimeFmt = "2006-01-02 15:04:05.999999"
func (ie *indexEntry) UnmarshalJSON(b []byte) error {
var tgt struct {
Timestamp string
Id string
Title string
}
if err := json.Unmarshal(b, &tgt); err != nil {
return err
}
ts, err := time.Parse(indexTimeFmt, tgt.Timestamp)
if err != nil {
return err
}
ie.id = tgt.Id
ie.ts = ts
ie.title = tgt.Title
return nil
}
func (ie *indexEntry) MarshalJSON() ([]byte, error) {
return json.Marshal(map[string]any{
"id": ie.id,
"timestamp": ie.ts.Format(indexTimeFmt),
"title": ie.title,
})
}
func (ie indexEntry) messageID() string {
return fmt.Sprintf("<%s.%s>", ie.id, ie.author)
}
func myIndexPath() string {
return path.Join(os.Getenv("HOME"), ".slog", "index")
}