diff --git a/bigbone/src/main/kotlin/social/bigbone/api/entity/MediaAttachment.kt b/bigbone/src/main/kotlin/social/bigbone/api/entity/MediaAttachment.kt index 60ba2434..56dd62ac 100644 --- a/bigbone/src/main/kotlin/social/bigbone/api/entity/MediaAttachment.kt +++ b/bigbone/src/main/kotlin/social/bigbone/api/entity/MediaAttachment.kt @@ -139,13 +139,13 @@ data class MediaAttachment( * Width of this media attachment. */ @SerialName("width") - val width: Int, + val width: Int? = null, /** * Height of this media attachment. */ @SerialName("height") - val height: Int, + val height: Int? = null, /** * Size of this media attachment. diff --git a/bigbone/src/test/assets/media_attachment_audio.json b/bigbone/src/test/assets/media_attachment_audio.json new file mode 100644 index 00000000..290e6798 --- /dev/null +++ b/bigbone/src/test/assets/media_attachment_audio.json @@ -0,0 +1,21 @@ +{ + "id": "21165404", + "type": "audio", + "url": "https://files.mastodon.social/media_attachments/files/021/165/404/original/a31a4a46cd713cd2.mp3", + "preview_url": "https://files.mastodon.social/media_attachments/files/021/165/404/small/a31a4a46cd713cd2.mp3", + "remote_url": null, + "text_url": "https://mastodon.social/media/5O4uILClVqBWx0NNgvo", + "meta": { + "length": "0:06:42.86", + "duration": 402.86, + "audio_encode": "mp3", + "audio_bitrate": "44100 Hz", + "audio_channels": "stereo", + "original": { + "duration": 402.860408, + "bitrate": 166290 + } + }, + "description": null, + "blurhash": null +} \ No newline at end of file diff --git a/bigbone/src/test/kotlin/social/bigbone/api/entity/MediaAttachmentTest.kt b/bigbone/src/test/kotlin/social/bigbone/api/entity/MediaAttachmentTest.kt index 57057674..8d130b72 100644 --- a/bigbone/src/test/kotlin/social/bigbone/api/entity/MediaAttachmentTest.kt +++ b/bigbone/src/test/kotlin/social/bigbone/api/entity/MediaAttachmentTest.kt @@ -17,4 +17,17 @@ class MediaAttachmentTest { mediaAttachment.previewUrl shouldBeEqualTo "preview" mediaAttachment.type shouldBeEqualTo MediaAttachment.MediaType.VIDEO } + + @Test + fun deserializeAudio() { + val json = AssetsUtil.readFromAssets("media_attachment_audio.json") + val mediaAttachment: MediaAttachment = JSON_SERIALIZER.decodeFromString(json) + mediaAttachment.id shouldBeEqualTo "21165404" + mediaAttachment.url shouldBeEqualTo "https://files.mastodon.social/media_attachments/files/021/165/404/original/a31a4a46cd713cd2.mp3" + mediaAttachment.previewUrl shouldBeEqualTo "https://files.mastodon.social/media_attachments/files/021/165/404/small/a31a4a46cd713cd2.mp3" + mediaAttachment.type shouldBeEqualTo MediaAttachment.MediaType.AUDIO + mediaAttachment.meta?.length shouldBeEqualTo "0:06:42.86" + mediaAttachment.meta?.original?.width shouldBeEqualTo null + mediaAttachment.meta?.original?.height shouldBeEqualTo null + } }