diff options
author | 2023-07-31 15:47:35 +0200 | |
---|---|---|
committer | 2023-07-31 15:47:35 +0200 | |
commit | 2796a2e82f16ade9872008878cf88299bd66b4e7 (patch) | |
tree | 76f7b69cc1da57ca10b71c57abf1892575bea100 /internal/uris/uri.go | |
parent | [performance] cache follow, follow request and block ID lists (#2027) (diff) | |
download | gotosocial-2796a2e82f16ade9872008878cf88299bd66b4e7.tar.xz |
[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
Diffstat (limited to 'internal/uris/uri.go')
-rw-r--r-- | internal/uris/uri.go | 9 |
1 files changed, 9 insertions, 0 deletions
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) |