Update MangaHost url. (#4250)
This commit is contained in:
		
							parent
							
								
									08e4481f5d
								
							
						
					
					
						commit
						29c3798c2a
					
				@ -5,7 +5,7 @@ ext {
 | 
			
		||||
    extName = 'MangaHost'
 | 
			
		||||
    pkgNameSuffix = 'pt.mangahost'
 | 
			
		||||
    extClass = '.MangaHost'
 | 
			
		||||
    extVersionCode = 11
 | 
			
		||||
    extVersionCode = 12
 | 
			
		||||
    libVersion = '1.2'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -24,7 +24,7 @@ class MangaHost : ParsedHttpSource() {
 | 
			
		||||
 | 
			
		||||
    override val name = "Mangá Host"
 | 
			
		||||
 | 
			
		||||
    override val baseUrl = "https://mangahost2.com"
 | 
			
		||||
    override val baseUrl = "https://mangahosted.com"
 | 
			
		||||
 | 
			
		||||
    override val lang = "pt-BR"
 | 
			
		||||
 | 
			
		||||
@ -44,8 +44,9 @@ class MangaHost : ParsedHttpSource() {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    override fun popularMangaRequest(page: Int): Request {
 | 
			
		||||
        val listPath = if (page == 1) "" else "/mais-visualizados/page/${page - 1}"
 | 
			
		||||
        val newHeaders = headersBuilder()
 | 
			
		||||
            .set("Referer", "$baseUrl/mangas" + (if (page == 1) "" else "/mais-visualizados/page/${page - 1}"))
 | 
			
		||||
            .set("Referer", "$baseUrl/mangas$listPath")
 | 
			
		||||
            .build()
 | 
			
		||||
 | 
			
		||||
        val pageStr = if (page != 1) "/page/$page" else ""
 | 
			
		||||
@ -59,8 +60,9 @@ class MangaHost : ParsedHttpSource() {
 | 
			
		||||
    override fun popularMangaNextPageSelector() = "div.wp-pagenavi:has(a.nextpostslink)"
 | 
			
		||||
 | 
			
		||||
    override fun latestUpdatesRequest(page: Int): Request {
 | 
			
		||||
        val listPath = if (page == 1) "" else "/lancamentos/page/${page - 1}"
 | 
			
		||||
        val newHeaders = headersBuilder()
 | 
			
		||||
            .set("Referer", baseUrl + (if (page == 1) "" else "/lancamentos/page/${page - 1}"))
 | 
			
		||||
            .set("Referer", baseUrl + listPath)
 | 
			
		||||
            .build()
 | 
			
		||||
 | 
			
		||||
        val pageStr = if (page != 1) "/page/$page" else ""
 | 
			
		||||
@ -82,23 +84,22 @@ class MangaHost : ParsedHttpSource() {
 | 
			
		||||
 | 
			
		||||
    override fun searchMangaSelector() = "table.table-search > tbody > tr > td:eq(0) > a"
 | 
			
		||||
 | 
			
		||||
    override fun searchMangaFromElement(element: Element): SManga = genericMangaFromElement(element, "data-path")
 | 
			
		||||
    override fun searchMangaFromElement(element: Element): SManga =
 | 
			
		||||
        genericMangaFromElement(element, "data-path")
 | 
			
		||||
 | 
			
		||||
    override fun searchMangaNextPageSelector(): String? = null
 | 
			
		||||
 | 
			
		||||
    override fun mangaDetailsParse(document: Document): SManga {
 | 
			
		||||
    override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply {
 | 
			
		||||
        val infoElement = document.select("div.box-content div.w-row div.w-col:eq(1) article")
 | 
			
		||||
 | 
			
		||||
        return SManga.create().apply {
 | 
			
		||||
            author = infoElement.select("div.text li div:contains(Autor:)").textWithoutLabel()
 | 
			
		||||
            artist = infoElement.select("div.text li div:contains(Arte:)").textWithoutLabel()
 | 
			
		||||
            genre = infoElement.select("h3.subtitle + div.tags a").joinToString { it.text() }
 | 
			
		||||
            description = infoElement.select("div.text div.paragraph").first()?.text()
 | 
			
		||||
                ?.substringBefore("Relacionados:")
 | 
			
		||||
            status = infoElement.select("div.text li div:contains(Status:)").text().toStatus()
 | 
			
		||||
            thumbnail_url = document.select("div.box-content div.w-row div.w-col:eq(0) div.widget img")
 | 
			
		||||
                .attr("src")
 | 
			
		||||
        }
 | 
			
		||||
        author = infoElement.select("div.text li div:contains(Autor:)").textWithoutLabel()
 | 
			
		||||
        artist = infoElement.select("div.text li div:contains(Arte:)").textWithoutLabel()
 | 
			
		||||
        genre = infoElement.select("h3.subtitle + div.tags a").joinToString { it.text() }
 | 
			
		||||
        description = infoElement.select("div.text div.paragraph").first()?.text()
 | 
			
		||||
            ?.substringBefore("Relacionados:")
 | 
			
		||||
        status = infoElement.select("div.text li div:contains(Status:)").text().toStatus()
 | 
			
		||||
        thumbnail_url = document.select("div.box-content div.w-row div.w-col:eq(0) div.widget img")
 | 
			
		||||
            .attr("src")
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun chapterListSelector(): String =
 | 
			
		||||
@ -109,7 +110,7 @@ class MangaHost : ParsedHttpSource() {
 | 
			
		||||
        scanlator = element.select("div.pop-content small strong").text()
 | 
			
		||||
        date_upload = element.select("small.clearfix").text()
 | 
			
		||||
            .substringAfter("Adicionado em ")
 | 
			
		||||
            .let { DATE_FORMAT.tryParseTime(it) }
 | 
			
		||||
            .toDate()
 | 
			
		||||
        chapter_number = element.select("div.pop-title span.btn-caps").text()
 | 
			
		||||
            .toFloatOrNull() ?: 1f
 | 
			
		||||
        setUrlWithoutDomain(element.select("div.tags a").attr("href"))
 | 
			
		||||
@ -139,20 +140,20 @@ class MangaHost : ParsedHttpSource() {
 | 
			
		||||
        return GET(page.imageUrl!!, newHeaders)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun String.toDate(): Long {
 | 
			
		||||
        return try {
 | 
			
		||||
            DATE_FORMAT.parse(this)?.time ?: 0L
 | 
			
		||||
        } catch (e: ParseException) {
 | 
			
		||||
            0L
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun String.toStatus() = when {
 | 
			
		||||
        contains("Ativo") -> SManga.ONGOING
 | 
			
		||||
        contains("Completo") -> SManga.COMPLETED
 | 
			
		||||
        else -> SManga.UNKNOWN
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun SimpleDateFormat.tryParseTime(date: String): Long {
 | 
			
		||||
        return try {
 | 
			
		||||
            parse(date)!!.time
 | 
			
		||||
        } catch (e: ParseException) {
 | 
			
		||||
            0L
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun String.withoutLanguage(): String = replace(LANG_REGEX, "")
 | 
			
		||||
 | 
			
		||||
    private fun String.toLargeUrl(): String = replace(IMAGE_REGEX, ".")
 | 
			
		||||
@ -160,11 +161,13 @@ class MangaHost : ParsedHttpSource() {
 | 
			
		||||
    private fun Elements.textWithoutLabel(): String = text()!!.substringAfter(":").trim()
 | 
			
		||||
 | 
			
		||||
    companion object {
 | 
			
		||||
        private const val USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
 | 
			
		||||
        private const val USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36"
 | 
			
		||||
 | 
			
		||||
        private val LANG_REGEX = "( )?\\((PT-)?BR\\)".toRegex()
 | 
			
		||||
        private val IMAGE_REGEX = "_(small|medium|xmedium)\\.".toRegex()
 | 
			
		||||
 | 
			
		||||
        private val DATE_FORMAT by lazy { SimpleDateFormat("MMM dd, yyyy", Locale.ENGLISH) }
 | 
			
		||||
        private val DATE_FORMAT by lazy {
 | 
			
		||||
            SimpleDateFormat("MMM dd, yyyy", Locale.ENGLISH)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user