Add fix thumb url
This commit is contained in:
1 parent
ee5062d4c7
commit
befbcd6720
8 files changed
+76
-2
No files matched your search
@@ -300,6 +300,13 @@ public class Settings {
|
||||
return getIntFromStr(KEY_THUMB_RESOLUTION, DEFAULT_THUMB_RESOLUTION);
|
||||
}
|
||||
|
||||
private static final String KEY_FIX_THUMB_URL = "fix_thumb_url";
|
||||
private static final boolean DEFAULT_FIX_THUMB_URL = false;
|
||||
|
||||
public static boolean getFixThumbUrl() {
|
||||
return getBoolean(KEY_FIX_THUMB_URL, DEFAULT_FIX_THUMB_URL);
|
||||
}
|
||||
|
||||
private static final String KEY_SHOW_JPN_TITLE = "show_jpn_title";
|
||||
private static final boolean DEFAULT_SHOW_JPN_TITLE = false;
|
||||
|
||||
|
||||
@@ -21,6 +21,11 @@ import android.support.annotation.NonNull;
|
||||
import com.hippo.ehviewer.Settings;
|
||||
import com.hippo.network.UrlBuilder;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
|
||||
import okhttp3.HttpUrl;
|
||||
|
||||
public class EhUrl {
|
||||
|
||||
public static final int SITE_G = 0;
|
||||
@@ -49,6 +54,9 @@ public class EhUrl {
|
||||
public static final String URL_FAVORITES_EX = HOST_EX + "favorites.php";
|
||||
public static final String URL_FORUMS = "https://forums.e-hentai.org/";
|
||||
|
||||
private static final String URL_PREFIX_THUMB_G = "http://ehgt.org/t/";
|
||||
private static final String URL_PREFIX_THUMB_EX = "http://exhentai.org/t/";
|
||||
|
||||
public static String getGalleryDetailUrl(long gid, String token) {
|
||||
return getGalleryDetailUrl(gid, token, 0, false);
|
||||
}
|
||||
@@ -116,4 +124,44 @@ public class EhUrl {
|
||||
return URL_IMAGE_SEARCH_EX;
|
||||
}
|
||||
}
|
||||
|
||||
public static String getThumbUrlPrefix() {
|
||||
switch (Settings.getGallerySite()) {
|
||||
default:
|
||||
case SITE_G:
|
||||
return URL_PREFIX_THUMB_G;
|
||||
case SITE_EX:
|
||||
return URL_PREFIX_THUMB_EX;
|
||||
}
|
||||
}
|
||||
|
||||
public static String getFixedPreviewThumbUrl(String originUrl) {
|
||||
HttpUrl url = HttpUrl.parse(originUrl);
|
||||
if (url == null) return originUrl;
|
||||
List<String> pathSegments = url.pathSegments();
|
||||
if (pathSegments == null || pathSegments.size() < 3) return originUrl;
|
||||
|
||||
ListIterator<String> iterator = pathSegments.listIterator(pathSegments.size());
|
||||
// The last segments, like
|
||||
// 317a1a254cd9c3269e71b2aa2671fe8d28c91097-260198-640-480-png_250.jpg
|
||||
if (!iterator.hasPrevious()) return originUrl;
|
||||
String lastSegment = iterator.previous();
|
||||
// The second last segments, like
|
||||
// 7a
|
||||
if (!iterator.hasPrevious()) return originUrl;
|
||||
String secondLastSegment = iterator.previous();
|
||||
// The third last segments, like
|
||||
// 31
|
||||
if (!iterator.hasPrevious()) return originUrl;
|
||||
String thirdLastSegment = iterator.previous();
|
||||
// Check path segments
|
||||
if (lastSegment != null && secondLastSegment != null
|
||||
&& thirdLastSegment != null
|
||||
&& lastSegment.startsWith(thirdLastSegment)
|
||||
&& lastSegment.startsWith(secondLastSegment, thirdLastSegment.length())) {
|
||||
return getThumbUrlPrefix() + thirdLastSegment + "/" + secondLastSegment + "/" + lastSegment;
|
||||
} else {
|
||||
return originUrl;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,8 @@ import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.hippo.ehviewer.Settings;
|
||||
import com.hippo.ehviewer.client.EhUrl;
|
||||
import com.hippo.ehviewer.client.EhUtils;
|
||||
import com.hippo.ehviewer.client.data.GalleryComment;
|
||||
import com.hippo.ehviewer.client.data.GalleryDetail;
|
||||
@@ -511,6 +513,9 @@ public class GalleryDetailParser {
|
||||
String pageUrl = element.attr("href");
|
||||
element = element.child(0);
|
||||
String imageUrl = element.attr("src");
|
||||
if (Settings.getFixThumbUrl()) {
|
||||
imageUrl = EhUrl.getFixedPreviewThumbUrl(imageUrl);
|
||||
}
|
||||
int index = Integer.parseInt(element.attr("alt")) - 1;
|
||||
largePreviewSet.addItem(index, imageUrl, pageUrl);
|
||||
}
|
||||
@@ -529,8 +534,13 @@ public class GalleryDetailParser {
|
||||
LargePreviewSet largePreviewSet = new LargePreviewSet();
|
||||
|
||||
while (m.find()) {
|
||||
largePreviewSet.addItem(ParserUtils.parseInt(m.group(2)) - 1,
|
||||
ParserUtils.trim(m.group(3)), ParserUtils.trim(m.group(1)));
|
||||
int index = ParserUtils.parseInt(m.group(2)) - 1;
|
||||
String imageUrl = ParserUtils.trim(m.group(3));
|
||||
String pageUrl = ParserUtils.trim(m.group(1));
|
||||
if (Settings.getFixThumbUrl()) {
|
||||
imageUrl = EhUrl.getFixedPreviewThumbUrl(imageUrl);
|
||||
}
|
||||
largePreviewSet.addItem(index, imageUrl, pageUrl);
|
||||
}
|
||||
|
||||
if (largePreviewSet.size() == 0) {
|
||||
|
||||
@@ -373,6 +373,7 @@
|
||||
<string name="settings_eh_thumb_resolution">缩略图分辨率</string>
|
||||
<string name="settings_eh_thumb_resolution_summary">%s,指定分辨率可能使获取缩略图失败</string>
|
||||
<string name="settings_eh_thumb_resolution_auto">自动</string>
|
||||
<string name="settings_eh_fix_thumb_url">修正缩略图链接</string>
|
||||
<string name="settings_eh_default_categories">主页分类显示</string>
|
||||
<string name="settings_eh_default_categories_summary">默认在主页所显示的分类</string>
|
||||
<string name="settings_eh_excluded_tag_namespaces">排除标签组</string>
|
||||
|
||||
@@ -373,6 +373,7 @@
|
||||
<string name="settings_eh_thumb_resolution">縮略圖分辨率</string>
|
||||
<string name="settings_eh_thumb_resolution_summary">%s,指定分辨率可能使獲取縮略圖失敗</string>
|
||||
<string name="settings_eh_thumb_resolution_auto">自動</string>
|
||||
<string name="settings_eh_fix_thumb_url">修正縮略圖鏈接</string>
|
||||
<string name="settings_eh_default_categories">主頁分類顯示</string>
|
||||
<string name="settings_eh_default_categories_summary">默認在主頁所顯示的分類</string>
|
||||
<string name="settings_eh_excluded_tag_namespaces">排除標籤組</string>
|
||||
|
||||
@@ -373,6 +373,7 @@
|
||||
<string name="settings_eh_thumb_resolution">縮圖解析度</string>
|
||||
<string name="settings_eh_thumb_resolution_summary">%s,指定解析度可能使獲取縮圖失敗</string>
|
||||
<string name="settings_eh_thumb_resolution_auto">自動</string>
|
||||
<string name="settings_eh_fix_thumb_url">修正縮圖連結</string>
|
||||
<string name="settings_eh_default_categories">主頁分類顯示</string>
|
||||
<string name="settings_eh_default_categories_summary">預設在主頁所顯示的分類</string>
|
||||
<string name="settings_eh_excluded_tag_namespaces">排除標籤組</string>
|
||||
|
||||
@@ -416,6 +416,7 @@
|
||||
<string name="settings_eh_thumb_resolution">Thumb resolution</string>
|
||||
<string name="settings_eh_thumb_resolution_summary">%s, special resolutions might cause getting thumb failed</string>
|
||||
<string name="settings_eh_thumb_resolution_auto">Auto</string>
|
||||
<string name="settings_eh_fix_thumb_url">Fix thumb url</string>
|
||||
<string name="settings_eh_default_categories">Categories on Homepage</string>
|
||||
<string name="settings_eh_default_categories_summary">The categories shown as default on Homepage</string>
|
||||
<string name="settings_eh_excluded_languages">Excluded languages</string>
|
||||
|
||||
@@ -64,6 +64,11 @@
|
||||
app:entryValues="@array/thumb_resolution_entry_values"
|
||||
android:defaultValue="0"/>
|
||||
|
||||
<com.hippo.preference.SwitchPreference
|
||||
android:key="fix_thumb_url"
|
||||
android:title="@string/settings_eh_fix_thumb_url"
|
||||
android:defaultValue="false"/>
|
||||
|
||||
<com.hippo.ehviewer.preference.DefaultCategoryPreference
|
||||
android:key="default_categories"
|
||||
android:title="@string/settings_eh_default_categories"
|
||||
|
||||
Reference in new issue
Block a user