fix(media_downloader): partial compat for story replies

This commit is contained in:
rhunk
2023-08-18 15:26:54 +02:00
parent b0dfcd5470
commit 11b7119f8b
2 changed files with 16 additions and 2 deletions

View File

@ -464,7 +464,11 @@ class MediaDownloader : Feature("MediaDownloader", loadParams = FeatureLoadParam
val messageReader = ProtoReader(messageContent)
val urlProto: ByteArray = if (isArroyoMessage) {
messageReader.getByteArray(*ARROYO_URL_KEY_PROTO_PATH)!!
var finalProto: ByteArray? = null
messageReader.readPath(4)?.each(5) {
finalProto = getByteArray(1, 3)
}
finalProto!!
} else {
deletedMediaReference!!
}

View File

@ -25,7 +25,17 @@ object MediaDownloaderHelper {
return when (contentType) {
ContentType.NOTE -> messageContainerPath.readPath(*mediaContainerPath)
ContentType.SNAP -> messageContainerPath.readPath(*(intArrayOf(11) + mediaContainerPath))
ContentType.EXTERNAL_MEDIA -> messageContainerPath.readPath(*(intArrayOf(3, 3) + mediaContainerPath))
ContentType.EXTERNAL_MEDIA -> {
val externalMediaTypes = arrayOf(
intArrayOf(3, 3), //normal external media
intArrayOf(7, 12, 3), //attached story reply
intArrayOf(7, 3) //original story reply
)
externalMediaTypes.forEach { path ->
messageContainerPath.readPath(*(path + mediaContainerPath))?.also { return it }
}
null
}
else -> null
}
}