From 2796a2e82f16ade9872008878cf88299bd66b4e7 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Mon, 31 Jul 2023 15:47:35 +0200 Subject: [feature] Hashtag federation (in/out), hashtag client API endpoints (#2032) * update go-fed * do the things * remove unused columns from tags * update to latest lingo from main * further tag shenanigans * serve stub page at tag endpoint * we did it lads * tests, oh tests, ohhh tests, oh tests (doo doo doo doo) * swagger docs * document hashtag usage + federation * instanceGet * don't bother parsing tag href * rename whereStartsWith -> whereStartsLike * remove GetOrCreateTag * dont cache status tag timelineability --- internal/uris/uri.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'internal/uris/uri.go') diff --git a/internal/uris/uri.go b/internal/uris/uri.go index 8a8968f38..1e631bcbc 100644 --- a/internal/uris/uri.go +++ b/internal/uris/uri.go @@ -20,6 +20,7 @@ package uris import ( "fmt" "net/url" + "strings" "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/regexes" @@ -43,6 +44,7 @@ const ( ConfirmEmailPath = "confirm_email" // ConfirmEmailPath is used to generate the URI for an email confirmation link FileserverPath = "fileserver" // FileserverPath is a path component for serving attachments + media EmojiPath = "emoji" // EmojiPath represents the activitypub emoji location + TagsPath = "tags" // TagsPath represents the activitypub tags location ) // UserURIs contains a bunch of UserURIs and URLs for a user, host, account, etc. @@ -178,6 +180,13 @@ func GenerateURIForEmoji(emojiID string) string { return fmt.Sprintf("%s://%s/%s/%s", protocol, host, EmojiPath, emojiID) } +// GenerateURIForTag generates an activitypub uri for a tag. +func GenerateURIForTag(name string) string { + protocol := config.GetProtocol() + host := config.GetHost() + return fmt.Sprintf("%s://%s/%s/%s", protocol, host, TagsPath, strings.ToLower(name)) +} + // IsUserPath returns true if the given URL path corresponds to eg /users/example_username func IsUserPath(id *url.URL) bool { return regexes.UserPath.MatchString(id.Path) -- cgit v1.2.3