From 2374ba4cc16fdb8f1c8c9f2993f93a1aede70dcc Mon Sep 17 00:00:00 2001 From: Guillermo Serrahima Date: Wed, 18 Mar 2026 16:17:38 +0100 Subject: added profile caching --- backend/fetchers/profiles.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'backend/fetchers/profiles.go') diff --git a/backend/fetchers/profiles.go b/backend/fetchers/profiles.go index 01a27c0..3c0154a 100644 --- a/backend/fetchers/profiles.go +++ b/backend/fetchers/profiles.go @@ -128,7 +128,7 @@ func FetchHandleAndPDS(did string) (string, string, error) { return handle, pds, nil } -func FetchProfile(did string, pdsURL string) (*general.Profile, error) { +func FetchProfile(did, pdsURL string, cache *Cache) (*general.Profile, error) { recordURL := fmt.Sprintf("%s/xrpc/com.atproto.repo.getRecord?repo=%s&collection=app.bsky.actor.profile&rkey=self", pdsURL, did) resp, err := http.Get(recordURL) @@ -159,20 +159,24 @@ func FetchProfile(did string, pdsURL string) (*general.Profile, error) { bannerURL = fmt.Sprintf("https://cdn.bsky.app/img/banner/plain/%s/%s@jpeg", did, response.Value.Banner.Ref.Link) } - return &general.Profile{ + profile := &general.Profile{ Handle: handle, DisplayName: response.Value.DisplayName, AvatarURL: avatarURL, BannerURL: bannerURL, Pronouns: response.Value.Pronouns, - }, nil + } + + cache.SetProfile(handle, profile) + return profile, nil } -func FetchProfiles(dids []string, pdsURL string) map[string]general.Profile { +func FetchProfiles(dids []string, pdsURL string, cache *Cache) map[string]general.Profile { profiles := make(map[string]general.Profile) for _, did := range dids { - profile, err := FetchProfile(did, pdsURL) + profile, err := FetchProfile(did, pdsURL, cache) if err == nil { + cache.SetProfile(did, profile) profiles[did] = *profile } } -- cgit v1.2.3