48 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Kotlin
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Kotlin
		
	
	
	
	
	
| package eu.kanade.tachiyomi.extension.en.xoxocomics
 | |
| 
 | |
| import eu.kanade.tachiyomi.multisrc.wpcomics.WPComics
 | |
| import eu.kanade.tachiyomi.network.GET
 | |
| import eu.kanade.tachiyomi.source.model.FilterList
 | |
| import eu.kanade.tachiyomi.source.model.SChapter
 | |
| import eu.kanade.tachiyomi.source.model.SManga
 | |
| import eu.kanade.tachiyomi.util.asJsoup
 | |
| import okhttp3.Request
 | |
| import okhttp3.Response
 | |
| import org.jsoup.nodes.Document
 | |
| import org.jsoup.nodes.Element
 | |
| import java.text.SimpleDateFormat
 | |
| import java.util.Locale
 | |
| 
 | |
| class XoxoComics : WPComics("XOXO Comics", "https://xoxocomics.com", "en", SimpleDateFormat("MM/dd/yy", Locale.US), null) {
 | |
|     override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/comic-updates?page=$page", headers)
 | |
|     override fun latestUpdatesSelector() = "li.row"
 | |
|     override fun latestUpdatesFromElement(element: Element): SManga {
 | |
|         return SManga.create().apply {
 | |
|             element.select("h3 a").let {
 | |
|                 title = it.text()
 | |
|                 setUrlWithoutDomain(it.attr("href"))
 | |
|             }
 | |
|             thumbnail_url = element.select("img").attr("data-original")
 | |
|         }
 | |
|     }
 | |
|     override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
 | |
|         return GET("$baseUrl/search?keyword=$query&page=$page", headers)
 | |
|     }
 | |
| 
 | |
|     override fun chapterListParse(response: Response): List<SChapter> {
 | |
|         val chapters = mutableListOf<SChapter>()
 | |
| 
 | |
|         // recursively add chapters from paginated chapter list
 | |
|         fun parseChapters(document: Document) {
 | |
|             document.select(chapterListSelector()).map { chapters.add(chapterFromElement(it)) }
 | |
|             document.select("ul.pagination a[rel=next]").firstOrNull()?.let { a ->
 | |
|                 parseChapters(client.newCall(GET(a.attr("abs:href"), headers)).execute().asJsoup())
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         parseChapters(response.asJsoup())
 | |
|         return chapters
 | |
|     }
 | |
|     override fun pageListRequest(chapter: SChapter): Request = GET(baseUrl + "${chapter.url}/all")
 | |
| }
 | 
