mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[feature] Advertise rich text formats, support content_type field (#1370)
* Advertise rich text formats, support content_type field * Update JSON in instance patch tests * Replace format with content_type everywhere * update migration to work with both pg and sqlite * regenerate swagger docs * update instance serialization + tests * fix up * learn to code tobi please, i'm begging you --------- Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
This commit is contained in:
@@ -46,6 +46,11 @@ const (
|
||||
instanceSourceURL = "https://github.com/superseriousbusiness/gotosocial"
|
||||
)
|
||||
|
||||
var instanceStatusesSupportedMimeTypes = []string{
|
||||
string(apimodel.StatusContentTypePlain),
|
||||
string(apimodel.StatusContentTypeMarkdown),
|
||||
}
|
||||
|
||||
func (c *converter) AccountToAPIAccountSensitive(ctx context.Context, a *gtsmodel.Account) (*apimodel.Account, error) {
|
||||
// we can build this sensitive account easily by first getting the public account....
|
||||
apiAccount, err := c.AccountToAPIAccountPublic(ctx, a)
|
||||
@@ -67,16 +72,16 @@ func (c *converter) AccountToAPIAccountSensitive(ctx context.Context, a *gtsmode
|
||||
frc = len(frs)
|
||||
}
|
||||
|
||||
statusFormat := string(apimodel.StatusFormatDefault)
|
||||
if a.StatusFormat != "" {
|
||||
statusFormat = a.StatusFormat
|
||||
statusContentType := string(apimodel.StatusContentTypeDefault)
|
||||
if a.StatusContentType != "" {
|
||||
statusContentType = a.StatusContentType
|
||||
}
|
||||
|
||||
apiAccount.Source = &apimodel.Source{
|
||||
Privacy: c.VisToAPIVis(ctx, a.Privacy),
|
||||
Sensitive: *a.Sensitive,
|
||||
Language: a.Language,
|
||||
StatusFormat: statusFormat,
|
||||
StatusContentType: statusContentType,
|
||||
Note: a.NoteRaw,
|
||||
Fields: apiAccount.Fields,
|
||||
FollowRequestsCount: frc,
|
||||
@@ -695,6 +700,7 @@ func (c *converter) InstanceToAPIV1Instance(ctx context.Context, i *gtsmodel.Ins
|
||||
instance.Configuration.Statuses.MaxCharacters = config.GetStatusesMaxChars()
|
||||
instance.Configuration.Statuses.MaxMediaAttachments = config.GetStatusesMediaMaxFiles()
|
||||
instance.Configuration.Statuses.CharactersReservedPerURL = instanceStatusesCharactersReservedPerURL
|
||||
instance.Configuration.Statuses.SupportedMimeTypes = instanceStatusesSupportedMimeTypes
|
||||
instance.Configuration.MediaAttachments.SupportedMimeTypes = media.SupportedMIMETypes
|
||||
instance.Configuration.MediaAttachments.ImageSizeLimit = int(config.GetMediaImageMaxSize())
|
||||
instance.Configuration.MediaAttachments.ImageMatrixLimit = instanceMediaAttachmentsImageMatrixLimit
|
||||
@@ -820,6 +826,7 @@ func (c *converter) InstanceToAPIV2Instance(ctx context.Context, i *gtsmodel.Ins
|
||||
instance.Configuration.Statuses.MaxCharacters = config.GetStatusesMaxChars()
|
||||
instance.Configuration.Statuses.MaxMediaAttachments = config.GetStatusesMediaMaxFiles()
|
||||
instance.Configuration.Statuses.CharactersReservedPerURL = instanceStatusesCharactersReservedPerURL
|
||||
instance.Configuration.Statuses.SupportedMimeTypes = instanceStatusesSupportedMimeTypes
|
||||
instance.Configuration.MediaAttachments.SupportedMimeTypes = media.SupportedMIMETypes
|
||||
instance.Configuration.MediaAttachments.ImageSizeLimit = int(config.GetMediaImageMaxSize())
|
||||
instance.Configuration.MediaAttachments.ImageMatrixLimit = instanceMediaAttachmentsImageMatrixLimit
|
||||
|
@@ -198,7 +198,7 @@ func (suite *InternalToFrontendTestSuite) TestAccountToFrontendSensitive() {
|
||||
"privacy": "public",
|
||||
"sensitive": false,
|
||||
"language": "en",
|
||||
"status_format": "plain",
|
||||
"status_content_type": "text/plain",
|
||||
"note": "hey yo this is my profile!",
|
||||
"fields": [],
|
||||
"follow_requests_count": 0
|
||||
@@ -504,7 +504,11 @@ func (suite *InternalToFrontendTestSuite) TestInstanceV1ToFrontend() {
|
||||
"statuses": {
|
||||
"max_characters": 5000,
|
||||
"max_media_attachments": 6,
|
||||
"characters_reserved_per_url": 25
|
||||
"characters_reserved_per_url": 25,
|
||||
"supported_mime_types": [
|
||||
"text/plain",
|
||||
"text/markdown"
|
||||
]
|
||||
},
|
||||
"media_attachments": {
|
||||
"supported_mime_types": [
|
||||
@@ -616,7 +620,11 @@ func (suite *InternalToFrontendTestSuite) TestInstanceV2ToFrontend() {
|
||||
"statuses": {
|
||||
"max_characters": 5000,
|
||||
"max_media_attachments": 6,
|
||||
"characters_reserved_per_url": 25
|
||||
"characters_reserved_per_url": 25,
|
||||
"supported_mime_types": [
|
||||
"text/plain",
|
||||
"text/markdown"
|
||||
]
|
||||
},
|
||||
"media_attachments": {
|
||||
"supported_mime_types": [
|
||||
|
Reference in New Issue
Block a user