[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:
Vyr Cossont
2023-03-02 03:06:40 -08:00
committed by GitHub
parent baf933cb9f
commit e6cde25466
23 changed files with 244 additions and 96 deletions

View File

@ -174,8 +174,8 @@ type UpdateSource struct {
Sensitive *bool `form:"sensitive" json:"sensitive" xml:"sensitive"`
// Default language to use for authored statuses. (ISO 6391)
Language *string `form:"language" json:"language" xml:"language"`
// Default format for authored statuses (plain or markdown).
StatusFormat *string `form:"status_format" json:"status_format" xml:"status_format"`
// Default format for authored statuses (text/plain or text/markdown).
StatusContentType *string `form:"status_content_type" json:"status_content_type" xml:"status_content_type"`
}
// UpdateField is to be used specifically in an UpdateCredentialsRequest.

View File

@ -73,6 +73,10 @@ type InstanceConfigurationStatuses struct {
//
// example: 25
CharactersReservedPerURL int `json:"characters_reserved_per_url"`
// List of mime types that it's possible to use for statuses on this instance.
//
// example: ["text/plain","text/markdown"]
SupportedMimeTypes []string `json:"supported_mime_types,omitempty"`
}
// InstanceConfigurationMediaAttachments models instance media attachment config parameters.

View File

@ -31,8 +31,8 @@ type Source struct {
Sensitive bool `json:"sensitive"`
// The default posting language for new statuses.
Language string `json:"language"`
// The default posting format for new statuses.
StatusFormat string `json:"status_format"`
// The default posting content type for new statuses.
StatusContentType string `json:"status_content_type"`
// Profile bio.
Note string `json:"note"`
// Metadata about the account.

View File

@ -179,9 +179,9 @@ type StatusCreateRequest struct {
// ISO 639 language code for this status.
// in: formData
Language string `form:"language" json:"language" xml:"language"`
// Format to use when parsing this status.
// Content type to use when parsing this status.
// in: formData
Format StatusFormat `form:"format" json:"format" xml:"format"`
ContentType StatusContentType `form:"content_type" json:"content_type" xml:"content_type"`
}
// Visibility models the visibility of a status.
@ -227,16 +227,16 @@ type AdvancedVisibilityFlagsForm struct {
Likeable *bool `form:"likeable" json:"likeable" xml:"likeable"`
}
// StatusFormat is the format in which to parse the submitted status.
// Can be either plain or markdown. Empty will default to plain.
// StatusContentType is the content type with which to parse the submitted status.
// Can be either text/plain or text/markdown. Empty will default to text/plain.
//
// swagger:enum statusFormat
// swagger:enum statusContentType
// swagger:type string
type StatusFormat string
type StatusContentType string
// Format to use when parsing submitted status into an html-formatted status
// Content type to use when parsing submitted status into an html-formatted status
const (
StatusFormatPlain StatusFormat = "plain"
StatusFormatMarkdown StatusFormat = "markdown"
StatusFormatDefault StatusFormat = StatusFormatPlain
StatusContentTypePlain StatusContentType = "text/plain"
StatusContentTypeMarkdown StatusContentType = "text/markdown"
StatusContentTypeDefault = StatusContentTypePlain
)