Merge pull request #32 from tom5079/Pupil-31

This commit is contained in:
Pupil
2019-12-11 20:08:45 +09:00
committed by GitHub
3 changed files with 19 additions and 20 deletions

View File

@@ -187,15 +187,11 @@ class GalleryDownloader(
async(Dispatchers.IO) { async(Dispatchers.IO) {
val url = when(useHiyobi) { val url = when(useHiyobi) {
true -> createImgList(galleryID, reader)[index].path true -> createImgList(galleryID, reader)[index].path
false -> when (galleryInfo.haswebp) { false -> when {
1 -> webpUrlFromUrl( (!galleryInfo.hash.isNullOrBlank()) and (galleryInfo.haswebp == 1) ->
urlFromUrlFromHash( urlFromUrlFromHash(galleryID, galleryInfo, "webp")
galleryID, else ->
galleryInfo, urlFromUrlFromHash(galleryID, galleryInfo)
true
)
)
else -> urlFromUrlFromHash(galleryID, galleryInfo)
} }
} }

View File

@@ -51,7 +51,7 @@ fun subdomainFromGalleryID(g: Int) : String {
fun subdomainFromURL(url: String, base: String? = null) : String { fun subdomainFromURL(url: String, base: String? = null) : String {
var retval = "a" var retval = "a"
if (!base.isNullOrEmpty()) if (!base.isNullOrBlank())
retval = base retval = base
val r = Regex("""/galleries/\d*(\d)/""") val r = Regex("""/galleries/\d*(\d)/""")
@@ -60,7 +60,7 @@ fun subdomainFromURL(url: String, base: String? = null) : String {
if (m == null) { if (m == null) {
b = 16 b = 16
val r2 = Regex("""/images/[0-9a-f]/([0-9a-f]{2})/""") val r2 = Regex("""/[0-9a-f]/([0-9a-f]{2})/""")
m = r2.find(url) m = r2.find(url)
if (m == null) if (m == null)
return retval return retval
@@ -79,17 +79,20 @@ fun urlFromURL(url: String, base: String? = null) : String {
fun fullPathFromHash(hash: String?) : String? { fun fullPathFromHash(hash: String?) : String? {
return when { return when {
hash?.length ?: 0 < 3 -> hash (hash?.length ?: 0) < 3 -> hash
else -> hash!!.replace(Regex("^.*(..)(.)$"), "$2/$1/$hash") else -> hash!!.replace(Regex("^.*(..)(.)$"), "$2/$1/$hash")
} }
} }
fun urlFromHash(galleryID: Int, image: GalleryInfo, oldMethod: Boolean) : String { fun urlFromHash(galleryID: Int, image: GalleryInfo, webp: String? = null) : String {
val ext = webp ?: image.name.split('.').last()
return when { return when {
oldMethod or image.hash.isNullOrEmpty() -> "$protocol//a.hitomi.la/galleries/$galleryID/${image.name}" image.hash.isNullOrBlank() ->
else -> "$protocol//a.hitomi.la/images/${fullPathFromHash(image.hash)}.${image.name.split('.').last()}" "$protocol//a.hitomi.la/galleries/$galleryID/${image.name}"
else ->
"$protocol//a.hitomi.la/${webp?:"images"}/${fullPathFromHash(image.hash)}.$ext"
} }
} }
fun urlFromUrlFromHash(galleryID: Int, image: GalleryInfo, oldMethod: Boolean = false) = fun urlFromUrlFromHash(galleryID: Int, image: GalleryInfo, webp: String? = null) =
urlFromURL(urlFromHash(galleryID, image, oldMethod)) urlFromURL(urlFromHash(galleryID, image, webp))

View File

@@ -87,9 +87,9 @@ class UnitTest {
@Test @Test
fun test_urlFromUrlFromHash() { fun test_urlFromUrlFromHash() {
val url = urlFromUrlFromHash(1510702, GalleryInfo( val url = urlFromUrlFromHash(1531795, GalleryInfo(
210, "56e9e1b8bb72194777ed93fee11b06070b905039dd11348b070bcf1793aaed7b", 1, "6.jpg", 300 212, "719d46a7556be0d0021c5105878507129b5b3308b02cf67f18901b69dbb3b5ef", 1, "00.jpg", 300
)) ), "webp")
print(url) print(url)
} }