fiddle-de-dee!

This commit is contained in:
tsmethurst
2021-04-03 19:40:15 +02:00
parent 74bc0feee7
commit 23e2c4a567
9 changed files with 360 additions and 40 deletions

View File

@ -18,7 +18,12 @@
package util
import "fmt"
import (
"fmt"
"github.com/superseriousbusiness/gotosocial/internal/db/model"
"github.com/superseriousbusiness/gotosocial/pkg/mastotypes"
)
type URIs struct {
HostURL string
@ -48,7 +53,7 @@ func GenerateURIs(username string, protocol string, host string) *URIs {
HostURL: hostURL,
UserURL: userURL,
StatusesURL: statusesURL,
UserURI: userURI,
StatusesURI: statusesURI,
InboxURI: inboxURI,
@ -57,3 +62,13 @@ func GenerateURIs(username string, protocol string, host string) *URIs {
CollectionURI: collectionURI,
}
}
func ParseGTSVisFromMastoVis(m mastotypes.Visibility) model.Visibility {
// TODO: convert a masto vis into a gts vis
return ""
}
func ParseMastoVisFromGTSVis(m model.Visibility) mastotypes.Visibility {
// TODO: convert a gts vis into a masto vis
return ""
}

View File

@ -37,35 +37,32 @@ var (
// It will look for fully-qualified account names in the form "@user@example.org".
// Mentions that are just in the form "@username" will not be detected.
func DeriveMentions(status string) []string {
menchies := []string{}
for _, match := range mentionRegex.FindAllStringSubmatch(status, -1) {
menchies = append(menchies, match[1])
mentionedAccounts := []string{}
for _, m := range mentionRegex.FindAllStringSubmatch(status, -1) {
mentionedAccounts = append(mentionedAccounts, m[1])
}
return Unique(menchies)
return Unique(mentionedAccounts)
}
// Unique returns a deduplicated version of a given string slice.
func Unique(s []string) []string {
keys := make(map[string]bool)
list := []string{}
for _, entry := range s {
if _, value := keys[entry]; !value {
keys[entry] = true
list = append(list, entry)
}
}
return list
keys := make(map[string]bool)
list := []string{}
for _, entry := range s {
if _, value := keys[entry]; !value {
keys[entry] = true
list = append(list, entry)
}
}
return list
}
// HTMLFormat takes a plaintext formatted status string, and converts it into
// a nice HTML-formatted string.
//
// This includes:
//
// - Replacing line-breaks with <p>
//
// - Replacing URLs with hrefs.
//
// - Replacing mentions with links to that account's URL as stored in the database.
func HTMLFormat(status string) string {
// TODO: write proper HTML formatting logic for a status