additional work on reading posts - still not quite there yet but getting closer

This commit is contained in:
2025-12-19 23:23:58 -07:00
parent 57d664dcb1
commit 80bd0e03fd
11 changed files with 325 additions and 151 deletions
+9
View File
@@ -49,3 +49,12 @@ func AmGetPost(postId int64) (*PostHeader, error) {
}
return &(dbdata[0]), nil
}
func AmGetPostRange(topic *Topic, first, last int32) ([]PostHeader, error) {
var rc []PostHeader
err := amdb.Select(&rc, "SELECT * FROM posts WHERE topicid = ? AND num >= ? AND num <= ? ORDER BY num", topic.TopicId, first, last)
if err != nil {
return nil, err
}
return rc, nil
}
+38
View File
@@ -11,6 +11,7 @@ package database
import (
"errors"
"fmt"
"math"
"strconv"
"strings"
@@ -53,6 +54,43 @@ func (d *PostLinkData) VerifyNames() error {
return nil
}
// AsString converts the post link data to a string reference.
func (d *PostLinkData) AsString() string {
var b strings.Builder
if d.Community != "" {
b.WriteString(d.Community)
b.WriteString("!")
}
wrote := false
if d.Conference != "" {
b.WriteString(d.Conference)
b.WriteString(".")
wrote = true
}
needDot := false
if d.Topic > 0 {
needDot = true
b.WriteString(fmt.Sprintf("%d", d.Topic))
if !wrote {
b.WriteString(".")
needDot = false
}
}
if d.FirstPost >= 0 {
s := ""
if d.LastPost < 0 || d.LastPost == d.FirstPost {
s = fmt.Sprintf("%d", d.FirstPost)
} else {
s = fmt.Sprintf("%d-%d", d.FirstPost, d.LastPost)
}
if needDot {
b.WriteString(".")
}
b.WriteString(s)
}
return b.String()
}
// Maximum lengths of the components.
const (
maxLinkLength = 130