Remove two sources due to cat and mouse game (#18500)

* Remove two sources due to cat and mouse game.

* Add to the autocloser and removed sources file.
This commit is contained in:
Alessandro Jean 2023-10-11 23:07:02 -03:00 committed by GitHub
parent fb799a1f6c
commit 5a85451248
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 2 additions and 217 deletions

View File

@ -43,7 +43,7 @@ jobs:
}, },
{ {
"type": "both", "type": "both",
"regex": ".*(hq\\s*dragon|manga\\s*host|supermangas|superhentais|union\\s*mangas|yes\\s*mangas|manhuascan|manhwahot|leitor\\.?net|manga\\s*livre|tsuki\\s*mangas|manga\\s*yabu|mangas\\.in|mangas\\.pw|hentaikai|toptoon\\+?|colamanhua|mangadig|hitomi\\.la|copymanga|neox|1manga\\.co|mangafox\\.fun|mangahere\\.onl|mangakakalot\\.fun|manganel(?!o)|mangaonline\\.fun|mangatoday|manga\\.town|onemanga\\.info|koushoku|ksk\\.moe|comikey|leercapitulo|c[uứ]u\\s*truy[eệ]n|day\\s*comics?|reaper\\s*scans|constellar\\s*scans|mode\\s*scanlator|bakai|japscan).*", "regex": ".*(hq\\s*dragon|manga\\s*host|supermangas|superhentais|union\\s*mangas|yes\\s*mangas|manhuascan|manhwahot|leitor\\.?net|manga\\s*livre|tsuki\\s*mangas|manga\\s*yabu|mangas\\.in|mangas\\.pw|hentaikai|toptoon\\+?|colamanhua|mangadig|hitomi\\.la|copymanga|neox|1manga\\.co|mangafox\\.fun|mangahere\\.onl|mangakakalot\\.fun|manganel(?!o)|mangaonline\\.fun|mangatoday|manga\\.town|onemanga\\.info|koushoku|ksk\\.moe|comikey|leercapitulo|c[uứ]u\\s*truy[eệ]n|day\\s*comics?|reaper\\s*scans|constellar\\s*scans|mode\\s*scanlator|bakai|japscan|izakaya|blackout\\s*comics).*",
"ignoreCase": true, "ignoreCase": true,
"labels": ["invalid"], "labels": ["invalid"],
"message": "{match} will not be added back as it is too difficult to maintain. Read [this](https://github.com/tachiyomiorg/tachiyomi-extensions/blob/master/REMOVED_SOURCES.md) for more information." "message": "{match} will not be added back as it is too difficult to maintain. Read [this](https://github.com/tachiyomiorg/tachiyomi-extensions/blob/master/REMOVED_SOURCES.md) for more information."

View File

@ -11,6 +11,7 @@ Here is a list of known sources that were removed.
### Too difficult to maintain ### Too difficult to maintain
- Bakai https://github.com/tachiyomiorg/tachiyomi-extensions/pull/17890 - Bakai https://github.com/tachiyomiorg/tachiyomi-extensions/pull/17890
- Blackout Comics and Izakaya https://github.com/tachiyomiorg/tachiyomi-extensions/pull/18500
- ColaManhua (COLA漫画) https://github.com/tachiyomiorg/tachiyomi-extensions/pull/11445 - ColaManhua (COLA漫画) https://github.com/tachiyomiorg/tachiyomi-extensions/pull/11445
- Comikey https://github.com/tachiyomiorg/tachiyomi-extensions/pull/11971 - Comikey https://github.com/tachiyomiorg/tachiyomi-extensions/pull/11971
- Constellar Scans https://github.com/tachiyomiorg/tachiyomi-extensions/pull/17277 - Constellar Scans https://github.com/tachiyomiorg/tachiyomi-extensions/pull/17277

View File

@ -1,47 +0,0 @@
package eu.kanade.tachiyomi.extension.pt.izakaya
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.interceptor.rateLimit
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter
import okhttp3.OkHttpClient
import okhttp3.Request
import java.text.SimpleDateFormat
import java.util.Locale
import java.util.concurrent.TimeUnit
class Izakaya : Madara(
"Izakaya",
"https://leitorizakaya.net",
"pt-BR",
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()
.rateLimit(1, 3, TimeUnit.SECONDS)
.build()
override val useNewChapterEndpoint = true
override val chapterUrlSuffix = ""
override fun pageListRequest(chapter: SChapter): Request {
val fixedUrl = chapter.url.substringBeforeLast("?style=")
if (fixedUrl.startsWith("http")) {
return GET(fixedUrl, headers)
}
return GET(baseUrl + fixedUrl, headers)
}
override fun imageRequest(page: Page): Request {
val newHeaders = headersBuilder()
.set("Referer", page.url)
.set("Accept", "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8")
.build()
return GET(page.imageUrl!!, newHeaders)
}
}

View File

@ -166,7 +166,6 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("IsekaiScan.top (unoriginal)", "https://isekaiscan.top", "en", pkgName = "isekaiscantop", className = "IsekaiScanTop", overrideVersionCode = 1), SingleLang("IsekaiScan.top (unoriginal)", "https://isekaiscan.top", "en", pkgName = "isekaiscantop", className = "IsekaiScanTop", overrideVersionCode = 1),
SingleLang("IsekaiScanManga (unoriginal)", "https://isekaiscanmanga.com", "en", className = "IsekaiScanManga", overrideVersionCode = 1), SingleLang("IsekaiScanManga (unoriginal)", "https://isekaiscanmanga.com", "en", className = "IsekaiScanManga", overrideVersionCode = 1),
SingleLang("Its Your Right Manhua", "https://itsyourightmanhua.com", "en", className = "ItsYourRightManhua", overrideVersionCode = 2), SingleLang("Its Your Right Manhua", "https://itsyourightmanhua.com", "en", className = "ItsYourRightManhua", overrideVersionCode = 2),
SingleLang("Izakaya", "https://leitorizakaya.net", "pt-BR", isNsfw = true, overrideVersionCode = 2),
SingleLang("Jiangzaitoon", "https://jiangzaitoon.co", "tr", isNsfw = true, overrideVersionCode = 2), SingleLang("Jiangzaitoon", "https://jiangzaitoon.co", "tr", isNsfw = true, overrideVersionCode = 2),
SingleLang("Jimanga", "https://jimanga.com", "en", isNsfw = false), SingleLang("Jimanga", "https://jimanga.com", "en", isNsfw = false),
SingleLang("Kakusei Project", "https://kakuseiproject.com.br", "pt-BR"), SingleLang("Kakusei Project", "https://kakuseiproject.com.br", "pt-BR"),

View File

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest />

View File

@ -1,12 +0,0 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
ext {
extName = 'Blackout Comics'
pkgNameSuffix = 'pt.blackoutcomics'
extClass = '.BlackoutComics'
extVersionCode = 2
isNsfw = true
}
apply from: "$rootDir/common.gradle"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

View File

@ -1,154 +0,0 @@
package eu.kanade.tachiyomi.extension.pt.blackoutcomics
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.interceptor.rateLimit
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import okhttp3.Headers
import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.OkHttpClient
import okhttp3.Request
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import java.text.SimpleDateFormat
import java.util.Locale
import java.util.concurrent.TimeUnit
class BlackoutComics : ParsedHttpSource() {
override val name = "Blackout Comics"
override val baseUrl = "https://blackoutcomics.com"
override val lang = "pt-BR"
override val supportsLatest = true
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.rateLimit(1, 3, TimeUnit.SECONDS)
.build()
override fun headersBuilder(): Headers.Builder = Headers.Builder()
.add("Accept", ACCEPT)
.add("Accept-Language", ACCEPT_LANGUAGE)
.add("Referer", "$baseUrl/")
override fun popularMangaRequest(page: Int): Request = GET(baseUrl, headers)
override fun popularMangaSelector(): String = "h3:contains(Mais Lidos) ~ div.anime-box a"
override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
title = element.selectFirst("div.anime-blog p")!!.text()
thumbnail_url = element.selectFirst("img")!!.absUrl("src")
url = element.attr("href")
}
override fun popularMangaNextPageSelector(): String? = null
override fun latestUpdatesRequest(page: Int) = popularMangaRequest(page)
override fun latestUpdatesSelector() = "div:contains(Atualizados Recentemente) + div.row div.anime-blog"
override fun latestUpdatesFromElement(element: Element): SManga = SManga.create().apply {
title = element.selectFirst("a p")!!.text()
thumbnail_url = element.selectFirst("img")!!.absUrl("src")
url = element.selectFirst("a")!!.attr("href")
}
override fun latestUpdatesNextPageSelector(): String? = null
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
val url = "$baseUrl/comics".toHttpUrl().newBuilder()
.addQueryParameter("search", query)
.build()
return GET(url, headers)
}
override fun searchMangaSelector() = "section.anime div.anime-box"
override fun searchMangaFromElement(element: Element): SManga = SManga.create().apply {
title = element.selectFirst("p")!!.text()
thumbnail_url = element.selectFirst("img")!!.absUrl("src")
url = element.selectFirst("[onclick]")!!.attr("onclick")
.substringAfter("'")
.substringBeforeLast("'")
}
override fun searchMangaNextPageSelector(): String? = null
override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply {
val infoElement = document.selectFirst("section.video")!!
title = infoElement.selectFirst("h2")!!.text()
author = infoElement.selectFirst("div.trailer-content p:contains(Autor:) b")!!.text()
artist = infoElement.selectFirst("div.trailer-content p:contains(Artista:) b")!!.text()
genre = infoElement.selectFirst("div.trailer-content p:contains(Genêros:)")!!.ownText()
status = infoElement.selectFirst("div.trailer-content p:contains(Status:) b")!!.text().toStatus()
description = infoElement.selectFirst("h3:contains(Descrição) + p")!!.text()
thumbnail_url = infoElement.selectFirst("img")!!.absUrl("src")
}
override fun chapterListSelector() = "section.relese h5:not(:has(img.vip))"
override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply {
name = element.selectFirst("a")!!.ownText()
date_upload = element.select("span:last-of-type").text().toDate()
url = element.selectFirst("a")!!.attr("href")
}
override fun pageListRequest(chapter: SChapter): Request {
val newHeaders = headersBuilder()
.set("Referer", baseUrl + chapter.url.substringBeforeLast("/ler"))
.add("Sec-Fetch-Dest", "document")
.add("Sec-Fetch-Mode", "navigate")
.add("Sec-Fetch-Site", "same-origin")
.add("Sec-Fetch-User", "?1")
.build()
return GET(baseUrl + chapter.url, newHeaders)
}
override fun pageListParse(document: Document): List<Page> {
return document.select("div.chapter-image canvas")
.mapIndexed { index, element ->
Page(index, document.location(), element.absUrl("data-src"))
}
}
override fun imageUrlParse(document: Document) = ""
override fun imageRequest(page: Page): Request {
val newHeaders = headersBuilder()
.set("Referer", page.url)
.set("Accept", "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8")
.build()
return GET(page.imageUrl!!, newHeaders)
}
private fun String.toDate(): Long {
return runCatching { DATE_FORMATTER.parse(trim())?.time }
.getOrNull() ?: 0L
}
private fun String.toStatus() = when (this) {
"Em Lançamento" -> SManga.ONGOING
"Completo" -> SManga.COMPLETED
"Cancelado" -> SManga.CANCELLED
"Em Espera" -> SManga.ON_HIATUS
else -> SManga.UNKNOWN
}
companion object {
private const val ACCEPT = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"
private const val ACCEPT_LANGUAGE = "pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3"
private val DATE_FORMATTER by lazy {
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
}
}
}