From cf93d3af0ace59fa618a51537a77f7912e5f1610 Mon Sep 17 00:00:00 2001 From: tobi Date: Tue, 6 May 2025 09:58:47 +0000 Subject: [feature] Add `description_limit` to `/api/v2/instance`, increase default limit to 5k (#4140) Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4131 by adding `description_limit` to the `api/v2/instance` response. Also increases default sizes to default status length to allow people to more easily describe things like screenshots of text. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4140 Co-authored-by: tobi Co-committed-by: tobi --- internal/api/model/instance.go | 11 +++++++++++ internal/typeutils/internaltofrontend.go | 2 ++ internal/typeutils/internaltofrontend_test.go | 3 ++- 3 files changed, 15 insertions(+), 1 deletion(-) (limited to 'internal') diff --git a/internal/api/model/instance.go b/internal/api/model/instance.go index 2a085c082..73aa8ef82 100644 --- a/internal/api/model/instance.go +++ b/internal/api/model/instance.go @@ -120,6 +120,17 @@ type InstanceConfigurationMediaAttachments struct { // // example: 16777216 VideoMatrixLimit int `json:"video_matrix_limit"` + // The maximum size of a description, in characters. + // Omitted for /api/v1/instance response. + // + // example: 5000 + DescriptionLimit int `json:"description_limit,omitempty"` + // The minimum size required for a description, in characters. + // Omitted if zero/not set. + // Omitted for /api/v1/instance response. + // + // example: 200 + DescriptionMinimum int `json:"description_minimum,omitempty"` } // InstanceConfigurationPolls models instance poll config parameters. diff --git a/internal/typeutils/internaltofrontend.go b/internal/typeutils/internaltofrontend.go index 659f47ab4..ffd971040 100644 --- a/internal/typeutils/internaltofrontend.go +++ b/internal/typeutils/internaltofrontend.go @@ -1966,6 +1966,8 @@ func (c *Converter) InstanceToAPIV2Instance(ctx context.Context, i *gtsmodel.Ins instance.Configuration.Statuses.CharactersReservedPerURL = instanceStatusesCharactersReservedPerURL instance.Configuration.Statuses.SupportedMimeTypes = instanceStatusesSupportedMimeTypes instance.Configuration.MediaAttachments.SupportedMimeTypes = media.SupportedMIMETypes + instance.Configuration.MediaAttachments.DescriptionLimit = config.GetMediaDescriptionMaxChars() + instance.Configuration.MediaAttachments.DescriptionMinimum = config.GetMediaDescriptionMinChars() // NOTE: we use the local max sizes here // as it hints to apps like Tusky for image diff --git a/internal/typeutils/internaltofrontend_test.go b/internal/typeutils/internaltofrontend_test.go index f38e815f9..63e242f79 100644 --- a/internal/typeutils/internaltofrontend_test.go +++ b/internal/typeutils/internaltofrontend_test.go @@ -2501,7 +2501,8 @@ func (suite *InternalToFrontendTestSuite) TestInstanceV2ToFrontend() { "image_matrix_limit": 2147483647, "video_size_limit": 41943040, "video_frame_rate_limit": 2147483647, - "video_matrix_limit": 2147483647 + "video_matrix_limit": 2147483647, + "description_limit": 500 }, "polls": { "max_options": 6, -- cgit v1.2.3