Don't call API if all data is got
This commit is contained in:
1 parent
9208c53d4f
commit
89209a3c44
2 files changed
+57
-91
No files matched your search
@@ -173,6 +173,58 @@ public class EhEngine {
|
||||
}
|
||||
}
|
||||
|
||||
private static void fillGalleryList(@Nullable EhClient.Task task, OkHttpClient okHttpClient, List<GalleryInfo> list, String url, boolean filter) throws Throwable {
|
||||
// Filter title and uploader
|
||||
if (filter) {
|
||||
for (int i = 0, n = list.size(); i < n; i++) {
|
||||
GalleryInfo info = list.get(i);
|
||||
if (!sEhFilter.filterTitle(info) || !sEhFilter.filterUploader(info)) {
|
||||
list.remove(i);
|
||||
i--;
|
||||
n--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean hasTags = false;
|
||||
boolean hasPages = false;
|
||||
boolean hasRated = false;
|
||||
for (GalleryInfo gi : list) {
|
||||
if (gi.simpleTags != null) {
|
||||
hasTags = true;
|
||||
}
|
||||
if (gi.pages != 0) {
|
||||
hasPages = true;
|
||||
}
|
||||
if (gi.rated) {
|
||||
hasRated = true;
|
||||
}
|
||||
}
|
||||
|
||||
boolean needApi = (filter && sEhFilter.needTags() && !hasTags) ||
|
||||
(Settings.getShowGalleryPages() && !hasPages) ||
|
||||
hasRated;
|
||||
if (needApi) {
|
||||
fillGalleryListByApi(task, okHttpClient, list, url);
|
||||
}
|
||||
|
||||
// Filter tag
|
||||
if (filter) {
|
||||
for (int i = 0, n = list.size(); i < n; i++) {
|
||||
GalleryInfo info = list.get(i);
|
||||
if (!sEhFilter.filterTag(info) || !sEhFilter.filterTagNamespace(info)) {
|
||||
list.remove(i);
|
||||
i--;
|
||||
n--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (GalleryInfo info : list) {
|
||||
info.thumb = EhUrl.getFixedPreviewThumbUrl(info.thumb);
|
||||
}
|
||||
}
|
||||
|
||||
public static GalleryListParser.Result getGalleryList(@Nullable EhClient.Task task, OkHttpClient okHttpClient,
|
||||
String url) throws Throwable {
|
||||
String referer = EhUrl.getReferer();
|
||||
@@ -201,50 +253,7 @@ public class EhEngine {
|
||||
throw e;
|
||||
}
|
||||
|
||||
// Filter title and uploader
|
||||
List<GalleryInfo> list = result.galleryInfoList;
|
||||
for (int i = 0, n = list.size(); i < n; i++) {
|
||||
GalleryInfo info = list.get(i);
|
||||
if (!sEhFilter.filterTitle(info) || !sEhFilter.filterUploader(info)) {
|
||||
list.remove(i);
|
||||
i--;
|
||||
n--;
|
||||
}
|
||||
}
|
||||
|
||||
boolean anyRated = false;
|
||||
for (GalleryInfo info : list) {
|
||||
if (info.rated) {
|
||||
anyRated = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
boolean needFillByApi = list.size() > 0
|
||||
&& (TextUtils.isEmpty(list.get(0).uploader)
|
||||
|| anyRated
|
||||
|| Settings.getShowJpnTitle()
|
||||
|| Settings.getShowGalleryPages()
|
||||
|| sEhFilter.needCallApi());
|
||||
|
||||
if (needFillByApi) {
|
||||
// Fill by api
|
||||
fillGalleryListByApi(task, okHttpClient, list, url);
|
||||
|
||||
// Filter tag
|
||||
for (int i = 0, n = list.size(); i < n; i++) {
|
||||
GalleryInfo info = list.get(i);
|
||||
if (!sEhFilter.filterTag(info) || !sEhFilter.filterTagNamespace(info)) {
|
||||
list.remove(i);
|
||||
i--;
|
||||
n--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (GalleryInfo info : list) {
|
||||
info.thumb = EhUrl.getFixedPreviewThumbUrl(info.thumb);
|
||||
}
|
||||
fillGalleryList(task, okHttpClient, result.galleryInfoList, url, true);
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -511,15 +520,7 @@ public class EhEngine {
|
||||
throw e;
|
||||
}
|
||||
|
||||
List<GalleryInfo> list = result.galleryInfoList;
|
||||
|
||||
if (list.size() > 0 && (TextUtils.isEmpty(list.get(0).uploader) || Settings.getShowJpnTitle() || Settings.getShowGalleryPages())) {
|
||||
fillGalleryListByApi(task, okHttpClient, list, url);
|
||||
}
|
||||
|
||||
for (GalleryInfo info : list) {
|
||||
info.thumb = EhUrl.getFixedPreviewThumbUrl(info.thumb);
|
||||
}
|
||||
fillGalleryList(task, okHttpClient, result.galleryInfoList, url, false);
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -628,14 +629,7 @@ public class EhEngine {
|
||||
throw e;
|
||||
}
|
||||
|
||||
List<GalleryInfo> list = result.galleryInfoList;
|
||||
if (list.size() > 0 && (TextUtils.isEmpty(list.get(0).uploader) || Settings.getShowJpnTitle() || Settings.getShowGalleryPages())) {
|
||||
fillGalleryListByApi(task, okHttpClient, list, url);
|
||||
}
|
||||
|
||||
for (GalleryInfo info : list) {
|
||||
info.thumb = EhUrl.getFixedPreviewThumbUrl(info.thumb);
|
||||
}
|
||||
fillGalleryList(task, okHttpClient, result.galleryInfoList, url, false);
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -911,35 +905,7 @@ public class EhEngine {
|
||||
throw e;
|
||||
}
|
||||
|
||||
// Filter title and uploader
|
||||
List<GalleryInfo> list = result.galleryInfoList;
|
||||
for (int i = 0, n = list.size(); i < n; i++) {
|
||||
GalleryInfo info = list.get(i);
|
||||
if (!sEhFilter.filterTitle(info) || !sEhFilter.filterUploader(info)) {
|
||||
list.remove(i);
|
||||
i--;
|
||||
n--;
|
||||
}
|
||||
}
|
||||
|
||||
if (list.size() > 0 && (TextUtils.isEmpty(list.get(0).uploader) || Settings.getShowJpnTitle() || Settings.getShowGalleryPages() || sEhFilter.needCallApi())) {
|
||||
// Fill by api
|
||||
fillGalleryListByApi(task, okHttpClient, list, url);
|
||||
|
||||
// Filter tag
|
||||
for (int i = 0, n = list.size(); i < n; i++) {
|
||||
GalleryInfo info = list.get(i);
|
||||
if (!sEhFilter.filterTag(info) || !sEhFilter.filterTagNamespace(info)) {
|
||||
list.remove(i);
|
||||
i--;
|
||||
n--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (GalleryInfo info : list) {
|
||||
info.thumb = EhUrl.getFixedPreviewThumbUrl(info.thumb);
|
||||
}
|
||||
fillGalleryList(task, okHttpClient, result.galleryInfoList, url, true);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@ public final class EhFilter {
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized boolean needCallApi() {
|
||||
public synchronized boolean needTags() {
|
||||
return 0 != mTagFilterList.size() || 0 != mTagNamespaceFilterList.size();
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user