summaryrefslogtreecommitdiff
path: root/internal/processing/timeline.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/processing/timeline.go')
-rw-r--r--internal/processing/timeline.go27
1 files changed, 25 insertions, 2 deletions
diff --git a/internal/processing/timeline.go b/internal/processing/timeline.go
index b7c8e5dc7..7de2d63a9 100644
--- a/internal/processing/timeline.go
+++ b/internal/processing/timeline.go
@@ -28,13 +28,36 @@ import (
)
func (p *processor) HomeTimelineGet(authed *oauth.Auth, maxID string, sinceID string, minID string, limit int, local bool) ([]apimodel.Status, ErrorWithCode) {
- l := p.log.WithField("func", "HomeTimelineGet")
-
statuses, err := p.db.GetHomeTimelineForAccount(authed.Account.ID, maxID, sinceID, minID, limit, local)
if err != nil {
return nil, NewErrorInternalError(err)
}
+ s, err := p.filterStatuses(authed, statuses)
+ if err != nil {
+ return nil, NewErrorInternalError(err)
+ }
+
+ return s, nil
+}
+
+func (p *processor) PublicTimelineGet(authed *oauth.Auth, maxID string, sinceID string, minID string, limit int, local bool) ([]apimodel.Status, ErrorWithCode) {
+ statuses, err := p.db.GetPublicTimelineForAccount(authed.Account.ID, maxID, sinceID, minID, limit, local)
+ if err != nil {
+ return nil, NewErrorInternalError(err)
+ }
+
+ s, err := p.filterStatuses(authed, statuses)
+ if err != nil {
+ return nil, NewErrorInternalError(err)
+ }
+
+ return s, nil
+}
+
+func (p *processor) filterStatuses(authed *oauth.Auth, statuses []*gtsmodel.Status) ([]apimodel.Status, error) {
+ l := p.log.WithField("func", "filterStatuses")
+
apiStatuses := []apimodel.Status{}
for _, s := range statuses {
targetAccount := &gtsmodel.Account{}