From 24cec4e7aab33b6c44ba6d1ecf16895f254351b8 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Wed, 1 Mar 2023 18:52:44 +0100 Subject: [feature] Federate pinned posts (aka `featuredCollection`) in and out (#1560) * start fiddling * the ol' fiddle + update * start working on fetching statuses * poopy doopy doo where r u uwu * further adventures in featuring statuses * finishing up * fmt * simply status unpin loop * move empty featured check back to caller function * remove unnecessary log.WithContext calls * remove unnecessary IsIRI() checks * add explanatory comment about status URIs * change log level to error * better test names --- internal/typeutils/astointernal.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'internal/typeutils/astointernal.go') diff --git a/internal/typeutils/astointernal.go b/internal/typeutils/astointernal.go index 11633ad4e..4e1b59613 100644 --- a/internal/typeutils/astointernal.go +++ b/internal/typeutils/astointernal.go @@ -181,9 +181,14 @@ func (c *converter) ASRepresentationToAccount(ctx context.Context, accountable a acct.FollowersURI = accountable.GetActivityStreamsFollowers().GetIRI().String() } - // FeaturedURI - if accountable.GetTootFeatured() != nil && accountable.GetTootFeatured().GetIRI() != nil { - acct.FeaturedCollectionURI = accountable.GetTootFeatured().GetIRI().String() + // FeaturedURI aka pinned collection: + // Only trust featured URI if it has at least two domains, + // from the right, in common with the domain of the account + if featured := accountable.GetTootFeatured(); featured != nil && featured.IsIRI() { + if featuredURI := featured.GetIRI(); // nocollapse + featuredURI != nil && dns.CompareDomainName(acct.Domain, featuredURI.Host) >= 2 { + acct.FeaturedCollectionURI = featuredURI.String() + } } // TODO: FeaturedTagsURI -- cgit v1.2.3