From 02e5d46ed214d0efbc3fc566dea7f10415e3fadf Mon Sep 17 00:00:00 2001 From: FChannel <=> Date: Mon, 18 Jan 2021 13:02:03 -0800 Subject: fix for syncing local and remote post count totals --- Database.go | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'Database.go') diff --git a/Database.go b/Database.go index f7b011d..7f69efe 100644 --- a/Database.go +++ b/Database.go @@ -531,7 +531,45 @@ func GetObjectRepliesDBCount(db *sql.DB, parent ObjectBase) (int, int) { rows.Next() rows.Scan(&countImg) - return countId, countImg + post, img := GetObjectRepliesRemoteCount(db, parent) + + return countId + post, countImg + img +} + +func GetObjectRepliesRemoteCount(db *sql.DB, parent ObjectBase) (int, int) { + var nColl CollectionBase + var result []ObjectBase + query := `select id from replies where id not in (select id from activitystream) and inreplyto=$1` + + rows, err := db.Query(query, parent.Id) + + CheckError(err, "could not get remote id query") + + defer rows.Close() + for rows.Next() { + var id string + rows.Scan(&id) + + coll := GetCollectionFromID(id) + + for _, e := range coll.OrderedItems { + result = append(result, e) + } + } + + nColl.OrderedItems = result + + var posts int + var imgs int + + for _, e := range nColl.OrderedItems { + posts = posts + 1 + if len(e.Attachment) > 0 { + imgs = imgs + 1 + } + } + + return posts, imgs } func GetObjectAttachment(db *sql.DB, id string) []ObjectBase { -- cgit v1.2.3