diff options
Diffstat (limited to 'activitypub')
-rw-r--r-- | activitypub/actor.go | 12 | ||||
-rw-r--r-- | activitypub/object.go | 33 |
2 files changed, 39 insertions, 6 deletions
diff --git a/activitypub/actor.go b/activitypub/actor.go index 3fbcb75..757f6bf 100644 --- a/activitypub/actor.go +++ b/activitypub/actor.go @@ -339,7 +339,7 @@ func GetActorFollowTotal(id string) (int, int, error) { return following, followers, nil } -func GetActorFollowers(w http.ResponseWriter, id string) error { +func GetActorFollowers(ctx *fiber.Ctx, id string) error { var following Collection var err error @@ -356,12 +356,12 @@ func GetActorFollowers(w http.ResponseWriter, id string) error { } enc, _ := json.MarshalIndent(following, "", "\t") - w.Header().Set("Content-Type", config.ActivityStreams) - _, err = w.Write(enc) + ctx.Response().Header.Set("Content-Type", config.ActivityStreams) + _, err = ctx.Write(enc) return err } -func GetActorFollowing(w http.ResponseWriter, id string) error { +func GetActorFollowing(ctx *fiber.Ctx, id string) error { var following Collection var err error @@ -378,8 +378,8 @@ func GetActorFollowing(w http.ResponseWriter, id string) error { } enc, _ := json.MarshalIndent(following, "", "\t") - w.Header().Set("Content-Type", config.ActivityStreams) - _, err = w.Write(enc) + ctx.Response().Header.Set("Content-Type", config.ActivityStreams) + _, err = ctx.Write(enc) return err } 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 +} |