Add fix thumb url

This commit is contained in:
seven332 committed 2016-12-29 21:50:26 +08:00
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>
+1
View File
@@ -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>
+5
View File
@@ -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"