]> git.r.bdr.sh - rbdr/mobius/blobdiff - hotline/news.go
patch: v0.10.20
[rbdr/mobius] / hotline / news.go
index 77c66966f9ddf0dde81e15331b0cec87fdae2bb1..38db97af42dee4f11a8731e0cdb740674a01b79b 100644 (file)
@@ -7,6 +7,14 @@ import (
        "sort"
 )
 
+const defaultNewsDateFormat = "Jan02 15:04" // Jun23 20:49
+
+const defaultNewsTemplate = `From %s (%s):
+
+%s
+
+__________________________________________________________`
+
 type ThreadedNews struct {
        Categories map[string]NewsCategoryListData15 `yaml:"Categories"`
 }
@@ -52,6 +60,7 @@ func (newscat *NewsCategoryListData15) GetNewsArtListData() NewsArtListData {
 
        nald := NewsArtListData{
                ID:          []byte{0, 0, 0, 0},
+               Count:       len(newsArts),
                Name:        []byte{},
                Description: []byte{},
                NewsArtList: newsArtsPayload,
@@ -85,11 +94,12 @@ type NewsArtListData struct {
        Name        []byte `yaml:"Name"`
        Description []byte `yaml:"Description"` // not used?
        NewsArtList []byte // List of articles                  Optional (if article count > 0)
+       Count       int
 }
 
 func (nald *NewsArtListData) Payload() []byte {
        count := make([]byte, 4)
-       binary.BigEndian.PutUint32(count, uint32(len(nald.NewsArtList)))
+       binary.BigEndian.PutUint32(count, uint32(nald.Count))
 
        out := append(nald.ID, count...)
        out = append(out, []byte{uint8(len(nald.Name))}...)
@@ -202,6 +212,7 @@ func (newscat *NewsCategoryListData15) nameLen() []byte {
        return []byte{uint8(len(newscat.Name))}
 }
 
+// TODO: re-implement as bufio.Scanner interface
 func ReadNewsPath(newsPath []byte) []string {
        if len(newsPath) == 0 {
                return []string{}