From 78d9bb5fc2a03fdbd20adcc8f2c09531d18d7dca Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Fri, 14 Mar 2025 23:07:56 +0800 Subject: [PATCH] :bug: Allow masotdon fetch to decide to use trending or not --- pkg/internal/services/fediverse.go | 10 +++++----- pkg/internal/services/mastodon/fetch.go | 12 ++++++++++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/pkg/internal/services/fediverse.go b/pkg/internal/services/fediverse.go index ff56d12..0ef1b5e 100644 --- a/pkg/internal/services/fediverse.go +++ b/pkg/internal/services/fediverse.go @@ -17,10 +17,10 @@ type FromFediversePost interface { } type FediverseFriendConfig struct { - ID string `json:"id"` - URL string `json:"url"` - Type string `json:"type"` - BatchSize int `json:"batch_size" toml:"batch_size"` + ID string `json:"id"` + URL string `json:"url"` + Type string `json:"type"` + Trending bool `json:"trending"` } var fediverseFriends []FediverseFriendConfig @@ -35,7 +35,7 @@ func ReadFriendConfig() { func FetchFediversePost(cfg FediverseFriendConfig) ([]models.FediversePost, error) { switch cfg.Type { case "mastodon": - data, err := mastodon.FetchTimeline(cfg.URL, 50) + data, err := mastodon.FetchTimeline(cfg.URL, 50, cfg.Trending) if err != nil { return nil, err } diff --git a/pkg/internal/services/mastodon/fetch.go b/pkg/internal/services/mastodon/fetch.go index a4e1e32..92a9bac 100644 --- a/pkg/internal/services/mastodon/fetch.go +++ b/pkg/internal/services/mastodon/fetch.go @@ -59,8 +59,16 @@ func (v MastodonPost) ToFediversePost() models.FediversePost { } } -func FetchTimeline(server string, limit int) ([]MastodonPost, error) { - url := fmt.Sprintf("%s/api/v1/trends/statuses?limit=%d", server, limit) +func FetchTimeline(server string, limit int, useTrend bool) ([]MastodonPost, error) { + url := fmt.Sprintf( + lo.Ternary( + useTrend, + "%s/api/v1/trends/statuses?limit=%d", + "%s/api/v1/timelines/public?limit=%s", + ), + server, + limit, + ) log.Debug().Str("url", url).Msg("Fetching mastodon timeline...") resp, err := http.Get(url)