Ver código fonte

Fix `calculateImageMd5ByImageId`

Him188 5 anos atrás
pai
commit
bf4b56ab07

+ 5 - 6
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/data/impl.kt

@@ -360,12 +360,11 @@ internal fun String.imageIdToMd5(offset: Int): ByteArray {
 internal fun calculateImageMd5ByImageId(imageId: String): ByteArray {
     @Suppress("DEPRECATION")
     return when {
-        imageId.matches(FRIEND_IMAGE_ID_REGEX_1) -> imageId.imageIdToMd5(imageId.skipToSecondHyphen() + 1)
-        imageId.matches(FRIEND_IMAGE_ID_REGEX_2) ->
-            imageId.imageIdToMd5(1)
-        imageId.matches(GROUP_IMAGE_ID_REGEX) || imageId.matches(GROUP_IMAGE_ID_REGEX_OLD) -> {
-            imageId.imageIdToMd5(1)
-        }
+        imageId matches FRIEND_IMAGE_ID_REGEX_2 -> imageId.imageIdToMd5(imageId.skipToSecondHyphen() + 1)
+        imageId matches FRIEND_IMAGE_ID_REGEX_1 -> imageId.imageIdToMd5(1)
+        imageId matches GROUP_IMAGE_ID_REGEX -> imageId.imageIdToMd5(1)
+        imageId matches GROUP_IMAGE_ID_REGEX_OLD -> imageId.imageIdToMd5(1)
+
         else -> error(
             "illegal imageId: $imageId. $ILLEGAL_IMAGE_ID_EXCEPTION_MESSAGE"
         )

+ 6 - 1
mirai-core/src/commonTest/kotlin/net/mamoe/mirai/message.data/ImageTest.kt

@@ -36,7 +36,12 @@ internal class ImageTest {
     fun testCalculateImageMd5ByImageId() {
         assertEquals(
             "01E9451B-70ED-EAE3-B37C-101F1EEBF5B5".filterNot { it == '-' }.autoHexToBytes().contentToString(),
-            calculateImageMd5ByImageId("{01E9451B-70ED-EAE3-B37C-101F1EEBF5B5}.png").contentToString()
+            calculateImageMd5ByImageId("{01E9451B-70ED-EAE3-B37C-101F1EEBF5B5}.mirai").contentToString()
+        )
+
+        assertEquals(
+            "01E9451B-70ED-EAE3-B37C-101F1EEBF5B5".filterNot { it == '-' }.autoHexToBytes().contentToString(),
+            calculateImageMd5ByImageId("{01E9451B-70ED-EAE3-B37C-101F1EEBF5B5}.gif").contentToString()
         )
 
         assertEquals(