Fix batoto parser
This commit is contained in:
parent
c7e9016ad7
commit
e857a44987
2 changed files with 28 additions and 2 deletions
|
@ -28,6 +28,7 @@ public class Batoto extends Source {
|
||||||
public static final String INITIAL_UPDATE_URL =
|
public static final String INITIAL_UPDATE_URL =
|
||||||
"http://bato.to/search_ajax?order_cond=views&order=desc&p=";
|
"http://bato.to/search_ajax?order_cond=views&order=desc&p=";
|
||||||
public static final String INITIAL_SEARCH_URL = "http://bato.to/search_ajax?";
|
public static final String INITIAL_SEARCH_URL = "http://bato.to/search_ajax?";
|
||||||
|
public static final String INITIAL_PAGE_URL = "http://bato.to/areader?";
|
||||||
|
|
||||||
|
|
||||||
public Batoto(NetworkHelper networkService, CacheManager cacheManager) {
|
public Batoto(NetworkHelper networkService, CacheManager cacheManager) {
|
||||||
|
@ -43,6 +44,7 @@ public class Batoto extends Source {
|
||||||
protected Headers.Builder headersBuilder() {
|
protected Headers.Builder headersBuilder() {
|
||||||
Headers.Builder builder = super.headersBuilder();
|
Headers.Builder builder = super.headersBuilder();
|
||||||
builder.add("Cookie", "lang_option=English");
|
builder.add("Cookie", "lang_option=English");
|
||||||
|
builder.add("Referer", "http://bato.to/reader");
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,6 +114,20 @@ public class Batoto extends Source {
|
||||||
return "http://bato.to/comic_pop?id=" + mangaId;
|
return "http://bato.to/comic_pop?id=" + mangaId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getChapterPageUrl(String defaultPageUrl) {
|
||||||
|
String id = defaultPageUrl.substring(defaultPageUrl.indexOf("#") + 1);
|
||||||
|
return INITIAL_PAGE_URL + "id=" + id + "&p=1";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getRemainingPagesUrl(String defaultPageUrl) {
|
||||||
|
int start = defaultPageUrl.indexOf("#") + 1;
|
||||||
|
int end = defaultPageUrl.indexOf("_", start);
|
||||||
|
String id = defaultPageUrl.substring(start, end);
|
||||||
|
return INITIAL_PAGE_URL + "id=" + id + "&p=" + defaultPageUrl.substring(end+1);
|
||||||
|
}
|
||||||
|
|
||||||
private List<Manga> parseMangasFromHtml(String unparsedHtml) {
|
private List<Manga> parseMangasFromHtml(String unparsedHtml) {
|
||||||
if (unparsedHtml.contains("No (more) comics found!")) {
|
if (unparsedHtml.contains("No (more) comics found!")) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
|
|
|
@ -38,6 +38,16 @@ public abstract class Source {
|
||||||
return defaultMangaUrl;
|
return defaultMangaUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get the URL of the first page that contains a source image and the page list
|
||||||
|
protected String getChapterPageUrl(String defaultPageUrl) {
|
||||||
|
return defaultPageUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the URL of the remaining pages that contains source images
|
||||||
|
protected String getRemainingPagesUrl(String defaultPageUrl) {
|
||||||
|
return defaultPageUrl;
|
||||||
|
}
|
||||||
|
|
||||||
// Default headers, it can be overriden by children or just add new keys
|
// Default headers, it can be overriden by children or just add new keys
|
||||||
protected Headers.Builder headersBuilder() {
|
protected Headers.Builder headersBuilder() {
|
||||||
Headers.Builder builder = new Headers.Builder();
|
Headers.Builder builder = new Headers.Builder();
|
||||||
|
@ -97,7 +107,7 @@ public abstract class Source {
|
||||||
return mCacheManager.getPageUrlsFromDiskCache(chapterUrl)
|
return mCacheManager.getPageUrlsFromDiskCache(chapterUrl)
|
||||||
.onErrorResumeNext(throwable -> {
|
.onErrorResumeNext(throwable -> {
|
||||||
return mNetworkService
|
return mNetworkService
|
||||||
.getStringResponse(chapterUrl, mNetworkService.NULL_CACHE_CONTROL, mRequestHeaders)
|
.getStringResponse(getChapterPageUrl(chapterUrl), mNetworkService.NULL_CACHE_CONTROL, mRequestHeaders)
|
||||||
.flatMap(unparsedHtml -> {
|
.flatMap(unparsedHtml -> {
|
||||||
List<String> pageUrls = parseHtmlToPageUrls(unparsedHtml);
|
List<String> pageUrls = parseHtmlToPageUrls(unparsedHtml);
|
||||||
return Observable.just(getFirstImageFromPageUrls(pageUrls, unparsedHtml));
|
return Observable.just(getFirstImageFromPageUrls(pageUrls, unparsedHtml));
|
||||||
|
@ -119,7 +129,7 @@ public abstract class Source {
|
||||||
|
|
||||||
private Observable<Page> getImageUrlFromPage(final Page page) {
|
private Observable<Page> getImageUrlFromPage(final Page page) {
|
||||||
return mNetworkService
|
return mNetworkService
|
||||||
.getStringResponse(page.getUrl(), mNetworkService.NULL_CACHE_CONTROL, mRequestHeaders)
|
.getStringResponse(getRemainingPagesUrl(page.getUrl()), mNetworkService.NULL_CACHE_CONTROL, mRequestHeaders)
|
||||||
.flatMap(unparsedHtml -> Observable.just(parseHtmlToImageUrl(unparsedHtml)))
|
.flatMap(unparsedHtml -> Observable.just(parseHtmlToImageUrl(unparsedHtml)))
|
||||||
.flatMap(imageUrl -> {
|
.flatMap(imageUrl -> {
|
||||||
page.setImageUrl(imageUrl);
|
page.setImageUrl(imageUrl);
|
||||||
|
|
Reference in a new issue