Fix chapters and manga info not loading at SuperMangas. (#3695)
This commit is contained in:
		
							parent
							
								
									c1b40095a6
								
							
						
					
					
						commit
						877058c301
					
				@ -5,7 +5,7 @@ ext {
 | 
			
		||||
    extName = 'Super Mangás'
 | 
			
		||||
    pkgNameSuffix = 'pt.supermangas'
 | 
			
		||||
    extClass = '.SuperMangasFactory'
 | 
			
		||||
    extVersionCode = 1
 | 
			
		||||
    extVersionCode = 2
 | 
			
		||||
    libVersion = '1.2'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -21,6 +21,7 @@ import eu.kanade.tachiyomi.util.asJsoup
 | 
			
		||||
import okhttp3.FormBody
 | 
			
		||||
import okhttp3.Headers
 | 
			
		||||
import okhttp3.HttpUrl
 | 
			
		||||
import okhttp3.OkHttpClient
 | 
			
		||||
import okhttp3.Request
 | 
			
		||||
import okhttp3.Response
 | 
			
		||||
import org.jsoup.Jsoup
 | 
			
		||||
@ -39,10 +40,14 @@ abstract class SuperMangasGeneric(
 | 
			
		||||
 | 
			
		||||
    override val supportsLatest = true
 | 
			
		||||
 | 
			
		||||
    override val client: OkHttpClient = network.cloudflareClient
 | 
			
		||||
 | 
			
		||||
    override fun headersBuilder(): Headers.Builder = Headers.Builder()
 | 
			
		||||
        .add("User-Agent", USER_AGENT)
 | 
			
		||||
        .add("Origin", baseUrl)
 | 
			
		||||
        .add("Referer", baseUrl)
 | 
			
		||||
        .add("Accept", ACCEPT_COMMON)
 | 
			
		||||
        .add("Accept-Language", ACCEPT_LANGUAGE)
 | 
			
		||||
 | 
			
		||||
    protected open val defaultFilter = mutableMapOf(
 | 
			
		||||
        "filter_display_view" to "lista",
 | 
			
		||||
@ -217,11 +222,13 @@ abstract class SuperMangasGeneric(
 | 
			
		||||
 | 
			
		||||
    override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply {
 | 
			
		||||
        val infoElement = document.select("div.boxAnime").first()!!
 | 
			
		||||
        val infoElementAbout = infoElement.select("ul.boxAnimeSobre")
 | 
			
		||||
 | 
			
		||||
        title = document.select("div.boxBarraInfo h1").first()!!.text()
 | 
			
		||||
        author = infoElement.select("ul.boxAnimeSobre li:contains(Autor) span").first()!!.text()
 | 
			
		||||
        artist = infoElement.select("ul.boxAnimeSobre li:contains(Art) span").first()!!.text()
 | 
			
		||||
        genre = infoElement.select("ul.boxAnimeSobre li.sizeFull span a").joinToString { it.text() }
 | 
			
		||||
        author = infoElementAbout.select("li:contains(Autor) span").first()!!.text()
 | 
			
		||||
        artist = infoElementAbout.select("li:contains(Art:) span").first()!!.text()
 | 
			
		||||
        genre = infoElementAbout.select("li.sizeFull span a").joinToString { it.text() }
 | 
			
		||||
        status = infoElementAbout.select("li:contains(Conteúdo)").first()!!.text().toStatus()
 | 
			
		||||
        description = document.select("p#sinopse").first()!!.text()
 | 
			
		||||
        thumbnail_url = infoElement.select("span.boxAnimeImg img").first()!!.attr("src")
 | 
			
		||||
    }
 | 
			
		||||
@ -255,6 +262,7 @@ abstract class SuperMangasGeneric(
 | 
			
		||||
            .add("limit", "50")
 | 
			
		||||
            .add("total_page", totalPage.toString())
 | 
			
		||||
            .add("order_video", "desc")
 | 
			
		||||
            .add("type", "book")
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun chapterListPaginatedRequest(idCategory: Int, page: Int, totalPage: Int, mangaUrl: String): Request {
 | 
			
		||||
@ -266,6 +274,7 @@ abstract class SuperMangasGeneric(
 | 
			
		||||
            .add("Content-Length", form.contentLength().toString())
 | 
			
		||||
            .add("Host", "www." + baseUrl.substringAfter("//"))
 | 
			
		||||
            .set("Referer", mangaUrl)
 | 
			
		||||
            .set("Accept", ACCEPT_JSON)
 | 
			
		||||
            .build()
 | 
			
		||||
 | 
			
		||||
        return POST("$baseUrl/inc/paginatorVideo.inc.php", newHeaders, form)
 | 
			
		||||
@ -322,6 +331,13 @@ abstract class SuperMangasGeneric(
 | 
			
		||||
 | 
			
		||||
    private fun String.changeSize(): String = substringBefore("&w=280") + "&w512"
 | 
			
		||||
 | 
			
		||||
    private fun String.toStatus() = when {
 | 
			
		||||
        contains("Em lançamento") -> SManga.ONGOING
 | 
			
		||||
        contains("Sendo upado") -> SManga.ONGOING
 | 
			
		||||
        contains("Completo") -> SManga.COMPLETED
 | 
			
		||||
        else -> SManga.UNKNOWN
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun Response.asJsonObject(): JsonObject = JSON_PARSER.parse(body()!!.string()).obj
 | 
			
		||||
 | 
			
		||||
    private fun Map<String, String>.toUrlQueryParams(): String =
 | 
			
		||||
@ -334,7 +350,11 @@ abstract class SuperMangasGeneric(
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    companion object {
 | 
			
		||||
        private const val USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36"
 | 
			
		||||
        private const val ACCEPT_COMMON = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
 | 
			
		||||
        private const val ACCEPT_JSON = "application/json, text/javascript, */*; q=0.01"
 | 
			
		||||
        private const val ACCEPT_LANGUAGE = "pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7,es;q=0.6,gl;q=0.5"
 | 
			
		||||
        private const val USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
 | 
			
		||||
 | 
			
		||||
        private val JSON_PARSER by lazy { JsonParser() }
 | 
			
		||||
 | 
			
		||||
        private val LETTER_LIST = listOf("Todas", "Caracteres Especiais")
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,6 @@ import eu.kanade.tachiyomi.extension.pt.supermangas.SuperMangasGeneric
 | 
			
		||||
import eu.kanade.tachiyomi.network.GET
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.Filter
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.FilterList
 | 
			
		||||
import okhttp3.FormBody
 | 
			
		||||
import okhttp3.HttpUrl
 | 
			
		||||
import okhttp3.Request
 | 
			
		||||
 | 
			
		||||
@ -39,10 +38,6 @@ class SuperHentais : SuperMangasGeneric(
 | 
			
		||||
 | 
			
		||||
    override fun searchMangaSelector(): String = "article.box_view.list div.grid_box:contains(Hentai Manga) div.grid_image.grid_image_vertical a"
 | 
			
		||||
 | 
			
		||||
    override fun chapterListPaginatedBody(idCategory: Int, page: Int, totalPage: Int): FormBody.Builder =
 | 
			
		||||
        super.chapterListPaginatedBody(idCategory, page, totalPage)
 | 
			
		||||
            .add("type", "book")
 | 
			
		||||
 | 
			
		||||
    override fun getFilterList() = FilterList(
 | 
			
		||||
        Filter.Header("Filtros abaixo são ignorados na busca!"),
 | 
			
		||||
        ContentFilter(contentList),
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user