diff options
Diffstat (limited to 'activitypub/object.go')
-rw-r--r-- | activitypub/object.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/activitypub/object.go b/activitypub/object.go index 1256fac..c461310 100644 --- a/activitypub/object.go +++ b/activitypub/object.go @@ -4,6 +4,7 @@ import ( "encoding/json" "fmt" "io/ioutil" + "log" "mime/multipart" "net/http" "os" @@ -1777,3 +1778,35 @@ func WriteWalletToDB(obj ObjectBase) error { } return nil } + +func GetRecentPostsDB(actorID string) []ObjectBase { + var collection []ObjectBase + + query := `select id, actor, content, published, attachment from activitystream where actor=$1 and type='Note' union select id, actor, content, published, attachment from cacheactivitystream where actor in (select follower from follower where id=$1) and type='Note' order by published desc limit 20` + + rows, err := config.DB.Query(query, actorID) + + if err != nil { + log.Println("Could not get recent posts") + } + + defer rows.Close() + for rows.Next() { + var nObj ObjectBase + var attachmentID string + rows.Scan(&nObj.Id, &nObj.Actor, &nObj.Content, &nObj.Published, &attachmentID) + + isOP, _ := CheckIfObjectOP(nObj.Id) + nObj.Attachment, _ = GetObjectAttachment(attachmentID) + + if !isOP { + var reply ObjectBase + reply.Id = nObj.Id + nObj.InReplyTo = append(nObj.InReplyTo, reply) + } + + collection = append(collection, nObj) + } + + return collection +} |