From b5b096aeaecad63da609cb6710ece1a5d8416461 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Fri, 30 Jun 2023 17:24:21 +0800 Subject: [PATCH] Add option to force e-hentai thumb server --- app/src/main/java/com/hippo/ehviewer/Settings.kt | 1 + .../hippo/ehviewer/client/EhCacheKeyFactory.kt | 16 ++++++++++------ .../com/hippo/ehviewer/ui/settings/EhScreen.kt | 5 +++++ app/src/main/res/values-zh-rCN/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/Settings.kt b/app/src/main/java/com/hippo/ehviewer/Settings.kt index 6e07bdda9..49d7a6b0f 100755 --- a/app/src/main/java/com/hippo/ehviewer/Settings.kt +++ b/app/src/main/java/com/hippo/ehviewer/Settings.kt @@ -32,6 +32,7 @@ object Settings : DataStorePreferences(null) { var thumbResolution by intFromStrPref("thumb_resolution", 0) var readCacheSize by intFromStrPref("read_cache_size", 640) var launchPage by intFromStrPref("launch_page", 0) + var forceEhThumb by boolPref("force_eh_thumb", false) var showComments by boolPref("show_gallery_comments", true) var requestNews by boolPref("request_news", false).observed { updateWhenRequestNewsChanges() } var hideHvEvents by boolPref("hide_hv_events", false) diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhCacheKeyFactory.kt b/app/src/main/java/com/hippo/ehviewer/client/EhCacheKeyFactory.kt index 8fcbab9cb..37dcf5453 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhCacheKeyFactory.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/EhCacheKeyFactory.kt @@ -15,6 +15,7 @@ */ package com.hippo.ehviewer.client +import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.data.GalleryInfo import com.hippo.ehviewer.client.data.GalleryPreview import com.hippo.ehviewer.client.data.NormalGalleryPreview @@ -26,21 +27,24 @@ import com.hippo.ehviewer.client.data.NormalGalleryPreview private const val URL_PREFIX_THUMB_E = "https://ehgt.org/" private const val URL_PREFIX_THUMB_EX = "https://s.exhentai.org/" +private const val URL_PREFIX_LARGE_THUMB_EX = URL_PREFIX_THUMB_EX + "t/" fun getImageKey(gid: Long, index: Int): String { return "image:$gid:$index" } fun getThumbKey(url: String): String { - return url.removePrefix(URL_PREFIX_THUMB_E).removePrefix(URL_PREFIX_THUMB_EX).removePrefix("t/") + return url.removePrefix(URL_PREFIX_THUMB_E).removePrefix(URL_PREFIX_LARGE_THUMB_EX).removePrefix(URL_PREFIX_THUMB_EX) } val GalleryPreview.url - get() = if (this is NormalGalleryPreview) { - if (EhUtils.isExHentai) URL_PREFIX_THUMB_EX + imageKey else URL_PREFIX_THUMB_E + imageKey + get() = if (exThumb) { + if (this is NormalGalleryPreview) URL_PREFIX_THUMB_EX else URL_PREFIX_LARGE_THUMB_EX } else { - if (EhUtils.isExHentai) URL_PREFIX_THUMB_EX + "t/" + imageKey else URL_PREFIX_THUMB_E + imageKey - } + URL_PREFIX_THUMB_E + } + imageKey val GalleryInfo.thumbUrl - get() = if (EhUtils.isExHentai) URL_PREFIX_THUMB_EX + "t/" + thumbKey!! else URL_PREFIX_THUMB_E + thumbKey!! + get() = (if (exThumb) URL_PREFIX_LARGE_THUMB_EX else URL_PREFIX_THUMB_E) + thumbKey!! + +val exThumb get() = EhUtils.isExHentai && !Settings.forceEhThumb diff --git a/app/src/main/java/com/hippo/ehviewer/ui/settings/EhScreen.kt b/app/src/main/java/com/hippo/ehviewer/ui/settings/EhScreen.kt index 00ae89d56..5d7d5495e 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/settings/EhScreen.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/settings/EhScreen.kt @@ -240,6 +240,11 @@ fun EhScreen() { entryValueRes = R.array.thumb_resolution_entry_values, value = thumbResolution, ) + SwitchPreference( + title = stringResource(id = R.string.settings_eh_force_eh_thumb), + summary = stringResource(id = R.string.settings_eh_force_eh_thumb_summary), + value = Settings::forceEhThumb, + ) SwitchPreference( title = stringResource(id = R.string.settings_eh_show_gallery_pages), summary = stringResource(id = R.string.settings_eh_show_gallery_pages_summary), diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index c0923d365..978971fb3 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -321,6 +321,8 @@ 缩略图分辨率 %s,指定分辨率可能使获取缩略图失败 自动 + 强制使用 e-hentai 缩略图服务器 + 若 exhentai 缩略图加载失败可尝试此项 显示日文标题 需同时在 EHentai 网站设置中启用 Japanese Title 显示画廊页数 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4862f669a..ee3ff5c71 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -363,6 +363,8 @@ Thumb resolution Currently %s. Certain resolutions might cause getting thumb failed Auto + Force e-hentai thumb server + Try this if you have trouble loading thumbs from exhentai Show Japanese title Require enabling Japanese Title in Settings on EHentai website Show gallery pages