| 
														
															@@ -25,13 +25,14 @@ import eu.kanade.mangafeed.data.source.SourceManager; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import eu.kanade.mangafeed.data.database.models.Chapter; 
														 | 
														
														 | 
														
															 import eu.kanade.mangafeed.data.database.models.Chapter; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import eu.kanade.mangafeed.data.database.models.Manga; 
														 | 
														
														 | 
														
															 import eu.kanade.mangafeed.data.database.models.Manga; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import eu.kanade.mangafeed.data.source.base.Source; 
														 | 
														
														 | 
														
															 import eu.kanade.mangafeed.data.source.base.Source; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import eu.kanade.mangafeed.data.source.model.MangasPage; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import rx.Observable; 
														 | 
														
														 | 
														
															 import rx.Observable; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 public class Batoto extends Source { 
														 | 
														
														 | 
														
															 public class Batoto extends Source { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     public static final String NAME = "Batoto (EN)"; 
														 | 
														
														 | 
														
															     public static final String NAME = "Batoto (EN)"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     public static final String BASE_URL = "http://bato.to"; 
														 | 
														
														 | 
														
															     public static final String BASE_URL = "http://bato.to"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    public static final String INITIAL_UPDATE_URL = 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    public static final String INITIAL_POPULAR_MANGAS_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 static final String INITIAL_PAGE_URL = "http://bato.to/areader?"; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -112,13 +113,13 @@ public class Batoto extends Source { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Override 
														 | 
														
														 | 
														
															     @Override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    protected String getUrlFromPageNumber(int page) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        return INITIAL_UPDATE_URL + page; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    public String getInitialPopularMangasUrl() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return INITIAL_POPULAR_MANGAS_URL + "1"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Override 
														 | 
														
														 | 
														
															     @Override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    protected String getSearchUrl(String query, int page) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        return INITIAL_SEARCH_URL + "name=" + query + "&p=" + page; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    public String getInitialSearchUrl(String query) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return INITIAL_SEARCH_URL + "name=" + query + "&p=1"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Override 
														 | 
														
														 | 
														
															     @Override 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -141,33 +142,49 @@ public class Batoto extends Source { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return INITIAL_PAGE_URL + "id=" + id + "&p=" + defaultPageUrl.substring(end+1); 
														 | 
														
														 | 
														
															         return INITIAL_PAGE_URL + "id=" + id + "&p=" + defaultPageUrl.substring(end+1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    private List<Manga> parseMangasFromHtml(String unparsedHtml) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if (unparsedHtml.contains("No (more) comics found!")) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    @Override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    protected List<Manga> parsePopularMangasFromHtml(Document parsedHtml) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (parsedHtml.text().contains("No (more) comics found!")) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             return new ArrayList<>(); 
														 | 
														
														 | 
														
															             return new ArrayList<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        Document parsedDocument = Jsoup.parse(unparsedHtml); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        List<Manga> updatedMangaList = new ArrayList<>(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        List<Manga> mangaList = new ArrayList<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        Elements updatedHtmlBlocks = parsedDocument.select("tr:not([id]):not([class])"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        Elements updatedHtmlBlocks = parsedHtml.select("tr:not([id]):not([class])"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         for (Element currentHtmlBlock : updatedHtmlBlocks) { 
														 | 
														
														 | 
														
															         for (Element currentHtmlBlock : updatedHtmlBlocks) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             Manga currentlyUpdatedManga = constructMangaFromHtmlBlock(currentHtmlBlock); 
														 | 
														
														 | 
														
															             Manga currentlyUpdatedManga = constructMangaFromHtmlBlock(currentHtmlBlock); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            updatedMangaList.add(currentlyUpdatedManga); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            mangaList.add(currentlyUpdatedManga); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        return updatedMangaList; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return mangaList; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Override 
														 | 
														
														 | 
														
															     @Override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    public List<Manga> parsePopularMangasFromHtml(String unparsedHtml) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        return parseMangasFromHtml(unparsedHtml); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    protected String parseNextPopularMangasUrl(Document parsedHtml, MangasPage page) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        Element next = parsedHtml.select("#show_more_row").first(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (next == null) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            return null; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return INITIAL_POPULAR_MANGAS_URL + (page.page + 1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Override 
														 | 
														
														 | 
														
															     @Override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    protected List<Manga> parseSearchFromHtml(String unparsedHtml) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        return parseMangasFromHtml(unparsedHtml); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    protected List<Manga> parseSearchFromHtml(Document parsedHtml) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (parsedHtml.text().contains("No (more) comics found!")) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            return new ArrayList<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        List<Manga> mangaList = new ArrayList<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        Elements updatedHtmlBlocks = parsedHtml.select("tr:not([id]):not([class])"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        for (Element currentHtmlBlock : updatedHtmlBlocks) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            Manga currentlyUpdatedManga = constructMangaFromHtmlBlock(currentHtmlBlock); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            mangaList.add(currentlyUpdatedManga); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return mangaList; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private Manga constructMangaFromHtmlBlock(Element htmlBlock) { 
														 | 
														
														 | 
														
															     private Manga constructMangaFromHtmlBlock(Element htmlBlock) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -195,6 +212,15 @@ public class Batoto extends Source { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return mangaFromHtmlBlock; 
														 | 
														
														 | 
														
															         return mangaFromHtmlBlock; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    @Override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    protected String parseNextSearchUrl(Document parsedHtml, MangasPage page, String query) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        Element next = parsedHtml.select("#show_more_row").first(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (next == null) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            return null; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return INITIAL_SEARCH_URL + "name=" + query + "&p=" + (page.page + 1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private long parseUpdateFromElement(Element updateElement) { 
														 | 
														
														 | 
														
															     private long parseUpdateFromElement(Element updateElement) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         String updatedDateAsString = updateElement.text(); 
														 | 
														
														 | 
														
															         String updatedDateAsString = updateElement.text(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 |