package activitypub import ( "fmt" "strings" "git.mstar.dev/mstar/linstrom/config" ) type InvalidFullHandleError struct { Raw string } func (i InvalidFullHandleError) Error() string { return "Invalid full handle" } func SplitFullHandle(full string) (string, string, error) { splits := strings.Split(strings.TrimPrefix(full, "@"), "@") if len(splits) != 2 { return "", "", InvalidFullHandleError{full} } return splits[0], splits[1], nil } func UserIdToApUrl(id string) string { return fmt.Sprintf( "%s/api/activitypub/user/%s", config.GlobalConfig.General.GetFullPublicUrl(), id, ) }