소스 검색

Fix image extension. fix #635

Karlatemp 5 년 전
부모
커밋
d1bd88c001
2개의 변경된 파일5개의 추가작업 그리고 2개의 파일을 삭제
  1. 1 1
      mirai-core-api/src/commonMain/kotlin/utils/ExternalImage.kt
  2. 4 1
      mirai-core/src/commonMain/kotlin/message/imagesImpl.kt

+ 1 - 1
mirai-core-api/src/commonMain/kotlin/utils/ExternalImage.kt

@@ -87,7 +87,7 @@ public class ExternalImage internal constructor(
         return "ExternalImage(${generateUUID(md5)})"
     }
 
-    internal fun calculateImageResourceId(): String = generateImageId(md5)
+    internal fun calculateImageResourceId(): String = """{${generateUUID(md5)}}.$formatName"""
 
     private fun String.detectFormatName(): String = when {
         startsWith("FFD8") -> "jpg"

+ 4 - 1
mirai-core/src/commonMain/kotlin/message/imagesImpl.kt

@@ -26,7 +26,10 @@ internal class OnlineGroupImageImpl(
     internal val delegate: ImMsgBody.CustomFace
 ) : @Suppress("DEPRECATION")
 OnlineGroupImage() {
-    override val imageId: String = ExternalImage.generateImageId(delegate.md5)
+    override val imageId: String = delegate.filePath.takeIf {
+        GROUP_IMAGE_ID_REGEX.matches(it)
+    } ?: ExternalImage.generateImageId(delegate.md5)
+
     override val originUrl: String
         get() = if (delegate.origUrl.isBlank()) {
             "http://gchat.qpic.cn/gchatpic_new/0/0-0-${