Fix deserialization of the response from friendica on api/v2/instance (#4103)

Fixes #4100

---------

Co-authored-by: Konrad Pozniak <connyduck@users.noreply.github.com>
This commit is contained in:
Levi Bard 2023-11-13 10:05:28 +01:00 committed by GitHub
commit 21a4308fef
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 109 additions and 18 deletions

View file

@ -64,17 +64,17 @@ class InstanceInfoRepository @Inject constructor(
{ instance ->
val instanceEntity = InstanceInfoEntity(
instance = instanceName,
maximumTootCharacters = instance.configuration.statuses.maxCharacters,
maxPollOptions = instance.configuration.polls.maxOptions,
maxPollOptionLength = instance.configuration.polls.maxCharactersPerOption,
minPollDuration = instance.configuration.polls.minExpirationSeconds,
maxPollDuration = instance.configuration.polls.maxExpirationSeconds,
charactersReservedPerUrl = instance.configuration.statuses.charactersReservedPerUrl,
maximumTootCharacters = instance.configuration.statuses?.maxCharacters ?: DEFAULT_CHARACTER_LIMIT,
maxPollOptions = instance.configuration.polls?.maxOptions ?: DEFAULT_MAX_OPTION_COUNT,
maxPollOptionLength = instance.configuration.polls?.maxCharactersPerOption ?: DEFAULT_MAX_OPTION_LENGTH,
minPollDuration = instance.configuration.polls?.minExpirationSeconds ?: DEFAULT_MIN_POLL_DURATION,
maxPollDuration = instance.configuration.polls?.maxExpirationSeconds ?: DEFAULT_MAX_POLL_DURATION,
charactersReservedPerUrl = instance.configuration.statuses?.charactersReservedPerUrl ?: DEFAULT_CHARACTERS_RESERVED_PER_URL,
version = instance.version,
videoSizeLimit = instance.configuration.mediaAttachments.videoSizeLimitBytes.toInt(),
imageSizeLimit = instance.configuration.mediaAttachments.imageSizeLimitBytes.toInt(),
imageMatrixLimit = instance.configuration.mediaAttachments.imagePixelCountLimit.toInt(),
maxMediaAttachments = instance.configuration.statuses.maxMediaAttachments,
videoSizeLimit = instance.configuration.mediaAttachments?.videoSizeLimitBytes?.toInt() ?: DEFAULT_VIDEO_SIZE_LIMIT,
imageSizeLimit = instance.configuration.mediaAttachments?.imageSizeLimitBytes?.toInt() ?: DEFAULT_IMAGE_SIZE_LIMIT,
imageMatrixLimit = instance.configuration.mediaAttachments?.imagePixelCountLimit?.toInt() ?: DEFAULT_IMAGE_MATRIX_LIMIT,
maxMediaAttachments = instance.configuration.statuses?.maxMediaAttachments ?: DEFAULT_MAX_MEDIA_ATTACHMENTS,
maxFields = instance.pleroma?.metadata?.fieldLimits?.maxFields,
maxFieldNameLength = instance.pleroma?.metadata?.fieldLimits?.nameLength,
maxFieldValueLength = instance.pleroma?.metadata?.fieldLimits?.valueLength,

View file

@ -31,12 +31,12 @@ data class Instance(
)
}
data class Configuration(
val urls: Urls,
val accounts: Accounts,
val statuses: Statuses,
@SerializedName("media_attachments") val mediaAttachments: MediaAttachments,
val polls: Polls,
val translation: Translation,
val urls: Urls?,
val accounts: Accounts?,
val statuses: Statuses?,
@SerializedName("media_attachments") val mediaAttachments: MediaAttachments?,
val polls: Polls?,
val translation: Translation?,
) {
data class Urls(@SerializedName("streaming_api") val streamingApi: String)
data class Accounts(@SerializedName("max_featured_tags") val maxFeaturedTags: Int)
@ -46,7 +46,8 @@ data class Instance(
@SerializedName("characters_reserved_per_url") val charactersReservedPerUrl: Int,
)
data class MediaAttachments(
@SerializedName("supported_mime_types") val supportedMimeTypes: List<String>,
// Warning: This is an array in mastodon and a dictionary in friendica
// @SerializedName("supported_mime_types") val supportedMimeTypes: List<String>,
@SerializedName("image_size_limit") val imageSizeLimitBytes: Long,
@SerializedName("image_matrix_limit") val imagePixelCountLimit: Long,
@SerializedName("video_size_limit") val videoSizeLimitBytes: Long,