diff --git a/src/all/kanjiku/build.gradle b/src/all/kanjiku/build.gradle deleted file mode 100644 index dfe9d3cc4..000000000 --- a/src/all/kanjiku/build.gradle +++ /dev/null @@ -1,7 +0,0 @@ -ext { - extName = 'Kanjiku' - extClass = '.KanjikuFactory' - extVersionCode = 1 -} - -apply from: "$rootDir/common.gradle" diff --git a/src/all/kanjiku/res/mipmap-hdpi/ic_launcher.png b/src/all/kanjiku/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 70c0dc5a9..000000000 Binary files a/src/all/kanjiku/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/all/kanjiku/res/mipmap-mdpi/ic_launcher.png b/src/all/kanjiku/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 09d1141ba..000000000 Binary files a/src/all/kanjiku/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/all/kanjiku/res/mipmap-xhdpi/ic_launcher.png b/src/all/kanjiku/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 55c98d7a7..000000000 Binary files a/src/all/kanjiku/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/all/kanjiku/res/mipmap-xxhdpi/ic_launcher.png b/src/all/kanjiku/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 6d3f89be5..000000000 Binary files a/src/all/kanjiku/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/all/kanjiku/res/mipmap-xxxhdpi/ic_launcher.png b/src/all/kanjiku/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 59a8dec5d..000000000 Binary files a/src/all/kanjiku/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/all/kanjiku/src/eu/kanade/tachiyomi/extension/all/kanjiku/Kanjiku.kt b/src/all/kanjiku/src/eu/kanade/tachiyomi/extension/all/kanjiku/Kanjiku.kt deleted file mode 100644 index 2368dbd7f..000000000 --- a/src/all/kanjiku/src/eu/kanade/tachiyomi/extension/all/kanjiku/Kanjiku.kt +++ /dev/null @@ -1,117 +0,0 @@ -package eu.kanade.tachiyomi.extension.all.kanjiku - -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.source.model.FilterList -import eu.kanade.tachiyomi.source.model.MangasPage -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 eu.kanade.tachiyomi.util.asJsoup -import okhttp3.HttpUrl.Companion.toHttpUrl -import okhttp3.Request -import okhttp3.Response -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import rx.Observable - -class Kanjiku( - override val lang: String, - subDomain: String, -) : ParsedHttpSource() { - - override val name = "Kanjiku" - override val baseUrl = "https://${subDomain}kanjiku.net" - override val supportsLatest = true - - override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/mangas", headers) - override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/latest", headers) - - override fun popularMangaSelector(): String = ".manga_box" - - override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply { - setUrlWithoutDomain(element.absUrl("href")) - title = element.selectFirst(".manga_title")!!.text() - thumbnail_url = element.selectFirst("img")?.absUrl("src") - } - - override fun latestUpdatesParse(response: Response): MangasPage { - val mangas = response.asJsoup().select(".manga_overview_box_headline a").map { element -> - SManga.create().apply { - var url = element.absUrl("href").toHttpUrl() - if (url.pathSegments.last() == "") { - // remove empty path segment - url = url.newBuilder().removePathSegment(url.pathSegments.lastIndex).build() - } - setUrlWithoutDomain(url.toString()) - title = element.text() - } - }.distinctBy { it.url } - return MangasPage(mangas, false) - } - - override fun fetchSearchManga( - page: Int, - query: String, - filters: FilterList, - ): Observable { - return Observable.just( - MangasPage( - client.newCall(popularMangaRequest(page)).execute().asJsoup() - .select(popularMangaSelector()).map { popularMangaFromElement(it) } - .filter { query.lowercase() in it.title.lowercase() }, - false, - ), - ) - } - - override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply { - title = document.selectFirst(".manga_page_title")!!.text() - description = document.selectFirst(".manga_description")?.text() - thumbnail_url = document.selectFirst(".manga_page_picture")?.absUrl("src") - status = when ( - document.selectFirst(".tags .tag_container_special .tag")?.absUrl("href") - ?.toHttpUrl()?.pathSegments?.last() - ) { - "47" -> SManga.ONGOING - "48" -> SManga.COMPLETED - "49" -> SManga.ON_HIATUS - "50" -> SManga.CANCELLED - "51" -> SManga.LICENSED - else -> SManga.UNKNOWN // using tag ids so that it works in all languages - } - genre = document.select(".tags .tag_container .tag").joinToString { it.text() } - } - - override fun chapterListSelector(): String = ".manga_chapter a" - - override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply { - setUrlWithoutDomain( - element.absUrl("href").toHttpUrl().run { - newBuilder().setPathSegment(pathSegments.lastIndex, "0").build() - }.toString(), - ) - name = element.text() - } - - override fun pageListParse(document: Document): List = - document.select(".container img").mapIndexed { index, element -> - Page(index, imageUrl = element.absUrl("src")) - } - - override fun latestUpdatesFromElement(element: Element): SManga = - throw UnsupportedOperationException() - - override fun searchMangaFromElement(element: Element): SManga = - throw UnsupportedOperationException() - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request = - throw UnsupportedOperationException() - - override fun searchMangaSelector(): String = throw UnsupportedOperationException() - override fun latestUpdatesSelector(): String = throw UnsupportedOperationException() - override fun searchMangaNextPageSelector(): String? = null - override fun popularMangaNextPageSelector(): String? = null - override fun latestUpdatesNextPageSelector(): String? = null - override fun imageUrlParse(document: Document): String = "" -} diff --git a/src/all/kanjiku/src/eu/kanade/tachiyomi/extension/all/kanjiku/KanjikuFactory.kt b/src/all/kanjiku/src/eu/kanade/tachiyomi/extension/all/kanjiku/KanjikuFactory.kt deleted file mode 100644 index 70408b92a..000000000 --- a/src/all/kanjiku/src/eu/kanade/tachiyomi/extension/all/kanjiku/KanjikuFactory.kt +++ /dev/null @@ -1,11 +0,0 @@ -package eu.kanade.tachiyomi.extension.all.kanjiku - -import eu.kanade.tachiyomi.source.Source -import eu.kanade.tachiyomi.source.SourceFactory - -class KanjikuFactory : SourceFactory { - override fun createSources(): List = listOf( - Kanjiku("de", ""), - Kanjiku("en", "eng."), - ) -} diff --git a/src/en/daycomicsme/build.gradle b/src/en/daycomicsme/build.gradle deleted file mode 100644 index 374e43b0d..000000000 --- a/src/en/daycomicsme/build.gradle +++ /dev/null @@ -1,9 +0,0 @@ -ext { - extName = 'DAYcomics.me' - extClass = '.DAYcomicsMe' - themePkg = 'hotcomics' - overrideVersionCode = 0 - isNsfw = true -} - -apply from: "$rootDir/common.gradle" diff --git a/src/en/daycomicsme/res/mipmap-hdpi/ic_launcher.png b/src/en/daycomicsme/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 70a259cc0..000000000 Binary files a/src/en/daycomicsme/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/daycomicsme/res/mipmap-mdpi/ic_launcher.png b/src/en/daycomicsme/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 209f165ef..000000000 Binary files a/src/en/daycomicsme/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/daycomicsme/res/mipmap-xhdpi/ic_launcher.png b/src/en/daycomicsme/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 7cef3bc08..000000000 Binary files a/src/en/daycomicsme/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/daycomicsme/res/mipmap-xxhdpi/ic_launcher.png b/src/en/daycomicsme/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 58d60537c..000000000 Binary files a/src/en/daycomicsme/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/daycomicsme/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/daycomicsme/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index d614670ed..000000000 Binary files a/src/en/daycomicsme/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/daycomicsme/src/eu/kanade/tachiyomi/extension/en/daycomicsme/DAYcomicsMe.kt b/src/en/daycomicsme/src/eu/kanade/tachiyomi/extension/en/daycomicsme/DAYcomicsMe.kt deleted file mode 100644 index e4e822a60..000000000 --- a/src/en/daycomicsme/src/eu/kanade/tachiyomi/extension/en/daycomicsme/DAYcomicsMe.kt +++ /dev/null @@ -1,30 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.daycomicsme - -import eu.kanade.tachiyomi.multisrc.hotcomics.HotComics - -class DAYcomicsMe : HotComics( - "DAYcomics.me", - "en", - "https://daycomics.me", -) { - override val browseList = listOf( - Pair("Home", "en"), - Pair("Weekly", "en/weekly"), - Pair("New", "en/new"), - Pair("Genre: All", "en/genres"), - Pair("Genre: Romance", "en/genres/Romance"), - Pair("Genre: Office", "en/genres/Office"), - Pair("Genre: College", "en/genres/College"), - Pair("Genre: Drama", "en/genres/Drama"), - Pair("Genre: Isekai", "en/genres/Isekai"), - Pair("Genre: UNCENSORED", "en/genres/UNCENSORED"), - Pair("Genre: Action", "en/genres/Action"), - Pair("Genre: BL", "en/genres/BL"), - Pair("Genre: New", "en/genres/New"), - Pair("Genre: Slice of Life", "en/genres/Slice_of_Life"), - Pair("Genre: Supernatural", "en/genres/Supernatural"), - Pair("Genre: Historical", "en/genres/Historical"), - Pair("Genre: School Life", "en/genres/School_Life"), - Pair("Genre: Horror Thriller", "en/genres/Horror_Thriller"), - ) -} diff --git a/src/es/catharsisfantasy/build.gradle b/src/es/catharsisfantasy/build.gradle deleted file mode 100644 index 80a04ec81..000000000 --- a/src/es/catharsisfantasy/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -ext { - extName = 'Catharsis Fantasy' - extClass = '.CatharsisFantasy' - themePkg = 'mangathemesia' - baseUrl = 'https://catharsisfantasy.com' - overrideVersionCode = 0 - isNsfw = true -} - -apply from: "$rootDir/common.gradle" diff --git a/src/es/catharsisfantasy/res/mipmap-hdpi/ic_launcher.png b/src/es/catharsisfantasy/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 63f51d92d..000000000 Binary files a/src/es/catharsisfantasy/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/es/catharsisfantasy/res/mipmap-mdpi/ic_launcher.png b/src/es/catharsisfantasy/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 8a9c27963..000000000 Binary files a/src/es/catharsisfantasy/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/es/catharsisfantasy/res/mipmap-xhdpi/ic_launcher.png b/src/es/catharsisfantasy/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 7c61a0dc2..000000000 Binary files a/src/es/catharsisfantasy/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/es/catharsisfantasy/res/mipmap-xxhdpi/ic_launcher.png b/src/es/catharsisfantasy/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 42c7ea894..000000000 Binary files a/src/es/catharsisfantasy/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/es/catharsisfantasy/res/mipmap-xxxhdpi/ic_launcher.png b/src/es/catharsisfantasy/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 7c1aff296..000000000 Binary files a/src/es/catharsisfantasy/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/es/catharsisfantasy/src/eu/kanade/tachiyomi/extension/es/catharsisfantasy/CatharsisFantasy.kt b/src/es/catharsisfantasy/src/eu/kanade/tachiyomi/extension/es/catharsisfantasy/CatharsisFantasy.kt deleted file mode 100644 index 6dea63295..000000000 --- a/src/es/catharsisfantasy/src/eu/kanade/tachiyomi/extension/es/catharsisfantasy/CatharsisFantasy.kt +++ /dev/null @@ -1,61 +0,0 @@ -package eu.kanade.tachiyomi.extension.es.catharsisfantasy - -import android.annotation.SuppressLint -import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.interceptor.rateLimit -import eu.kanade.tachiyomi.source.model.Page -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient -import org.jsoup.nodes.Document -import java.security.SecureRandom -import java.security.cert.X509Certificate -import javax.net.ssl.SSLContext -import javax.net.ssl.TrustManager -import javax.net.ssl.X509TrustManager - -class CatharsisFantasy : MangaThemesia( - "Catharsis Fantasy", - "https://catharsisfantasy.com", - "es", -) { - override val client = super.client.newBuilder() - .rateLimit(3) - .ignoreAllSSLErrors() - .build() - - private val iframeSelector: String = "#mangaIframe" - - override fun pageListParse(document: Document): List { - return super.pageListParse( - document.takeIf { it.select(iframeSelector).isEmpty() } - ?: fetchIframeDocumentPageList(document), - ) - } - - private fun fetchIframeDocumentPageList(document: Document): Document { - val pagesUrl = document.selectFirst(iframeSelector)!! - .absUrl("src") - - return client.newCall(GET(pagesUrl, headers)) - .execute().asJsoup() - } - - private fun OkHttpClient.Builder.ignoreAllSSLErrors(): OkHttpClient.Builder { - val naiveTrustManager = @SuppressLint("CustomX509TrustManager") - object : X509TrustManager { - override fun getAcceptedIssuers(): Array = emptyArray() - override fun checkClientTrusted(certs: Array, authType: String) = Unit - override fun checkServerTrusted(certs: Array, authType: String) = Unit - } - - val insecureSocketFactory = SSLContext.getInstance("TLSv1.2").apply { - val trustAllCerts = arrayOf(naiveTrustManager) - init(null, trustAllCerts, SecureRandom()) - }.socketFactory - - sslSocketFactory(insecureSocketFactory, naiveTrustManager) - hostnameVerifier { _, _ -> true } - return this - } -}