From 9c878f5e44da04e90c74cfff49a112081e4d3494 Mon Sep 17 00:00:00 2001 From: tom5079 <7948651+tom5079@users.noreply.github.com> Date: Sun, 23 Mar 2025 10:13:41 -0700 Subject: [PATCH] fix image loading --- app/build.gradle.kts | 2 +- app/release/baselineProfiles/0/app-release.dm | Bin 3983 -> 3993 bytes app/release/baselineProfiles/1/app-release.dm | Bin 3935 -> 3938 bytes app/release/output-metadata.json | 2 +- .../java/xyz/quaver/pupil/hitomi/common.kt | 40 ++++++++++++------ 5 files changed, 30 insertions(+), 14 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5efe84d3..495392af 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -19,7 +19,7 @@ android { minSdk = 21 targetSdk = 35 versionCode = 70 - versionName = "5.3.19" + versionName = "5.3.20" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true } diff --git a/app/release/baselineProfiles/0/app-release.dm b/app/release/baselineProfiles/0/app-release.dm index 68f6ae9eed3f093834071fabf8c4d109d72d97f8..0d4588ab6a9f92455bb54b45d7974eb6c2062c69 100644 GIT binary patch delta 2971 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 F002}N?y&#> diff --git a/app/release/baselineProfiles/1/app-release.dm b/app/release/baselineProfiles/1/app-release.dm index 2f93153b4df86ddaf82622a07b75f2294785b0eb..fa0903d2197bcefe997f164867d65726f38201cc 100644 GIT binary patch delta 3392 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 diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index 763a239e..52b3d2b2 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -12,7 +12,7 @@ "filters": [], "attributes": [], "versionCode": 70, - "versionName": "5.3.19", + "versionName": "5.3.20", "outputFile": "app-release.apk" } ], diff --git a/app/src/main/java/xyz/quaver/pupil/hitomi/common.kt b/app/src/main/java/xyz/quaver/pupil/hitomi/common.kt index 7e747875..a7b21861 100644 --- a/app/src/main/java/xyz/quaver/pupil/hitomi/common.kt +++ b/app/src/main/java/xyz/quaver/pupil/hitomi/common.kt @@ -218,30 +218,38 @@ object gg { } } -suspend fun subdomainFromURL(url: String, base: String? = null): String { - var retval = "b" +suspend fun subdomainFromURL(url: String, base: String? = null, dir: String? = null): String { + var retval = "" - if (!base.isNullOrBlank()) - retval = base + if (!base.isNullOrBlank()) { + when { + dir == "webp" -> retval = "w" + dir == "avif" -> retval = "a" + } + } val b = 16 val r = Regex("""/[0-9a-f]{61}([0-9a-f]{2})([0-9a-f])""") - val m = r.find(url) ?: return "a" + val m = r.find(url) ?: return "" val g = m.groupValues.let { it[2] + it[1] }.toIntOrNull(b) if (g != null) { - retval = (97 + gg.m(g)).toChar().toString() + retval + retval = if (base.isNullOrEmpty()) { + (97 + gg.m(g)).toChar().toString() + base + } else { + retval + (1 + gg.m(g)).toString() + } } return retval } -suspend fun urlFromUrl(url: String, base: String? = null): String { +suspend fun urlFromUrl(url: String, base: String? = null, dir: String? = null): String { return url.replace( Regex("""//..?\.(?:gold-usergeneratedcontent\.net|hitomi\.la)/"""), - "//${subdomainFromURL(url, base)}.gold-usergeneratedcontent.net/" + "//${subdomainFromURL(url, base, dir)}.gold-usergeneratedcontent.net/" ) } @@ -258,8 +266,16 @@ suspend fun urlFromHash( ext: String? = null, ): String { val ext = ext ?: dir ?: image.name.takeLastWhile { it != '.' } - val dir = dir ?: "images" - return "https://a.gold-usergeneratedcontent.net/$dir/${fullPathFromHash(image.hash)}.$ext" + return buildString { + append("https://a.gold-usergeneratedcontent.net/") + if (dir != "webp" && dir != "avif") { + append(dir) + append("/") + } + append(fullPathFromHash(image.hash)) + append(".") + append(ext) + } } suspend fun urlFromUrlFromHash( @@ -272,10 +288,10 @@ suspend fun urlFromUrlFromHash( if (base == "tn") urlFromUrl( "https://a.gold-usergeneratedcontent.net/$dir/${realFullPathFromHash(image.hash)}.$ext", - base + base, ) else - urlFromUrl(urlFromHash(galleryID, image, dir, ext), base) + urlFromUrl(urlFromHash(galleryID, image, dir, ext), base, dir) suspend fun imageUrlFromImage(galleryID: Int, image: GalleryFiles, noWebp: Boolean): String { return urlFromUrlFromHash(galleryID, image, "webp", null, "a")