diff --git a/multisrc/overrides/madara/agentofchangetranslations/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/agentofchangetranslations/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index b91b9ddd9..000000000 Binary files a/multisrc/overrides/madara/agentofchangetranslations/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/agentofchangetranslations/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/agentofchangetranslations/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 571df049a..000000000 Binary files a/multisrc/overrides/madara/agentofchangetranslations/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/agentofchangetranslations/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/agentofchangetranslations/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index c940afb1a..000000000 Binary files a/multisrc/overrides/madara/agentofchangetranslations/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/agentofchangetranslations/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/agentofchangetranslations/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 07feeb4a8..000000000 Binary files a/multisrc/overrides/madara/agentofchangetranslations/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/agentofchangetranslations/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/agentofchangetranslations/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 55df1d47b..000000000 Binary files a/multisrc/overrides/madara/agentofchangetranslations/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/agentofchangetranslations/res/web_hi_res_512.png b/multisrc/overrides/madara/agentofchangetranslations/res/web_hi_res_512.png deleted file mode 100644 index 482ec52a0..000000000 Binary files a/multisrc/overrides/madara/agentofchangetranslations/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/madara/agentofchangetranslations/src/AgentofChangeTranslations.kt b/multisrc/overrides/madara/agentofchangetranslations/src/AgentofChangeTranslations.kt deleted file mode 100644 index c2e165e8e..000000000 --- a/multisrc/overrides/madara/agentofchangetranslations/src/AgentofChangeTranslations.kt +++ /dev/null @@ -1,43 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.agentofchangetranslations - -import android.annotation.SuppressLint -import eu.kanade.tachiyomi.multisrc.madara.Madara -import eu.kanade.tachiyomi.source.model.SChapter -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.Headers -import okhttp3.Response - -class AgentofChangeTranslations : Madara("Agent of Change Translations", "https://aoc.moe", "en") { - override fun headersBuilder(): Headers.Builder = super.headersBuilder().add("Referer", baseUrl) - override fun popularMangaSelector() = "div.page-item-detail.manga:has(span.chapter)" - override fun chapterListSelector() = "li.wp-manga-chapter:has(a)" - - @SuppressLint("DefaultLocale") - override fun chapterListParse(response: Response): List { - return response.asJsoup().let { document -> - document.select(chapterListSelector()).let { normalChapters -> - if (normalChapters.isNotEmpty()) { - normalChapters.map { chapterFromElement(it) } - } else { - // For their "fancy" volume/chapter lists - document.select("div.wpb_wrapper:contains(volume) a") - .filter { it.attr("href").contains(baseUrl) && !it.attr("href").contains("imgur") } - .map { volumeChapter -> - SChapter.create().apply { - volumeChapter.attr("href").let { url -> - name = if (url.contains("volume")) { - val volume = url.substringAfter("volume-").substringBefore("/") - val volChap = url.substringAfter("volume-$volume/").substringBefore("/").replace("-", " ").capitalize() - "Volume $volume - $volChap" - } else { - url.substringBefore("/p").substringAfterLast("/").replace("-", " ").capitalize() - } - setUrlWithoutDomain(url.substringBefore("?") + "?style=list") - } - } - } - }.reversed() - } - } - } -} diff --git a/multisrc/overrides/madara/asuraraw/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/asuraraw/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 0f15e12e1..000000000 Binary files a/multisrc/overrides/madara/asuraraw/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/asuraraw/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/asuraraw/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index ae4d9562f..000000000 Binary files a/multisrc/overrides/madara/asuraraw/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/asuraraw/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/asuraraw/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 4c1c6fb06..000000000 Binary files a/multisrc/overrides/madara/asuraraw/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/asuraraw/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/asuraraw/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index cdc90b781..000000000 Binary files a/multisrc/overrides/madara/asuraraw/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/asuraraw/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/asuraraw/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 941fe7f47..000000000 Binary files a/multisrc/overrides/madara/asuraraw/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/asuraraw/res/web_hi_res_512.png b/multisrc/overrides/madara/asuraraw/res/web_hi_res_512.png deleted file mode 100644 index 8a1fe59fe..000000000 Binary files a/multisrc/overrides/madara/asuraraw/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/madara/asuraraw/src/AsuraRaw.kt b/multisrc/overrides/madara/asuraraw/src/AsuraRaw.kt deleted file mode 100644 index 395511b18..000000000 --- a/multisrc/overrides/madara/asuraraw/src/AsuraRaw.kt +++ /dev/null @@ -1,14 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.asuraraw - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import java.text.SimpleDateFormat -import java.util.Locale - -class AsuraRaw : Madara( - "Asura Raw", - "https://asuraraw.com", - "en", - dateFormat = SimpleDateFormat("MM/dd/yyyy", Locale.US) -) { - override val useNewChapterEndpoint: Boolean = true -} diff --git a/multisrc/overrides/madara/eightmusescomics/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/eightmusescomics/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 0a7b2fb15..000000000 Binary files a/multisrc/overrides/madara/eightmusescomics/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/eightmusescomics/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/eightmusescomics/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 4b37dec73..000000000 Binary files a/multisrc/overrides/madara/eightmusescomics/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/eightmusescomics/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/eightmusescomics/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 350954a86..000000000 Binary files a/multisrc/overrides/madara/eightmusescomics/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/eightmusescomics/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/eightmusescomics/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index e0979676c..000000000 Binary files a/multisrc/overrides/madara/eightmusescomics/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/eightmusescomics/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/eightmusescomics/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 3243eb63c..000000000 Binary files a/multisrc/overrides/madara/eightmusescomics/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/eromanhwas/src/Eromanhwas.kt b/multisrc/overrides/madara/eromanhwas/src/Eromanhwas.kt deleted file mode 100644 index be1410bea..000000000 --- a/multisrc/overrides/madara/eromanhwas/src/Eromanhwas.kt +++ /dev/null @@ -1,7 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.eromanhwas - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import java.text.SimpleDateFormat -import java.util.Locale - -class Eromanhwas : Madara("Eromanhwas", "https://eromanhwas.com", "en", SimpleDateFormat("MMMMM dd, yyyy", Locale("fr"))) diff --git a/multisrc/overrides/madara/jirocomics/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/jirocomics/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 22de03d02..000000000 Binary files a/multisrc/overrides/madara/jirocomics/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/jirocomics/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/jirocomics/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 1bb8fa570..000000000 Binary files a/multisrc/overrides/madara/jirocomics/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/jirocomics/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/jirocomics/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index ab5311854..000000000 Binary files a/multisrc/overrides/madara/jirocomics/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/jirocomics/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/jirocomics/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 8f2b89452..000000000 Binary files a/multisrc/overrides/madara/jirocomics/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/jirocomics/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/jirocomics/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index cc6ad0dc2..000000000 Binary files a/multisrc/overrides/madara/jirocomics/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/jirocomics/res/web_hi_res_512.png b/multisrc/overrides/madara/jirocomics/res/web_hi_res_512.png deleted file mode 100644 index 2d6b65f45..000000000 Binary files a/multisrc/overrides/madara/jirocomics/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/madara/jirocomics/src/JiroComics.kt b/multisrc/overrides/madara/jirocomics/src/JiroComics.kt deleted file mode 100644 index ab48a17e6..000000000 --- a/multisrc/overrides/madara/jirocomics/src/JiroComics.kt +++ /dev/null @@ -1,9 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.jirocomics - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import eu.kanade.tachiyomi.source.model.SChapter -import okhttp3.Response - -class JiroComics : Madara("Jiro Comics", "https://jirocomics.com", "en") { - override fun chapterListParse(response: Response): List = super.chapterListParse(response).reversed() -} diff --git a/multisrc/overrides/madara/mangabox/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/mangabox/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index bc6786015..000000000 Binary files a/multisrc/overrides/madara/mangabox/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangabox/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/mangabox/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index d5f32247c..000000000 Binary files a/multisrc/overrides/madara/mangabox/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangabox/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/mangabox/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index ec1d6464e..000000000 Binary files a/multisrc/overrides/madara/mangabox/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangabox/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/mangabox/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index ed009e24c..000000000 Binary files a/multisrc/overrides/madara/mangabox/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangabox/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/mangabox/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 3c0ee82aa..000000000 Binary files a/multisrc/overrides/madara/mangabox/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangabox/res/web_hi_res_512.png b/multisrc/overrides/madara/mangabox/res/web_hi_res_512.png deleted file mode 100644 index a54fcaf10..000000000 Binary files a/multisrc/overrides/madara/mangabox/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangabox/src/MangaBox.kt b/multisrc/overrides/madara/mangabox/src/MangaBox.kt deleted file mode 100644 index db57d0ccc..000000000 --- a/multisrc/overrides/madara/mangabox/src/MangaBox.kt +++ /dev/null @@ -1,12 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.mangabox - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import java.text.SimpleDateFormat -import java.util.Locale - -class MangaBox : Madara( - "MangaBox", - "https://mangabox.org", - "en", - dateFormat = SimpleDateFormat("dd.MM.yyyy", Locale.US) -) diff --git a/multisrc/overrides/madara/mangadropout/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/mangadropout/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 3ec157570..000000000 Binary files a/multisrc/overrides/madara/mangadropout/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangadropout/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/mangadropout/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 2bc69a868..000000000 Binary files a/multisrc/overrides/madara/mangadropout/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangadropout/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/mangadropout/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 13358e3fc..000000000 Binary files a/multisrc/overrides/madara/mangadropout/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangadropout/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/mangadropout/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index c99848498..000000000 Binary files a/multisrc/overrides/madara/mangadropout/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangadropout/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/mangadropout/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 94b4e3d00..000000000 Binary files a/multisrc/overrides/madara/mangadropout/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangadropout/res/web_hi_res_512.png b/multisrc/overrides/madara/mangadropout/res/web_hi_res_512.png deleted file mode 100644 index 8307644ed..000000000 Binary files a/multisrc/overrides/madara/mangadropout/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangadropout/src/MangaDropOut.kt b/multisrc/overrides/madara/mangadropout/src/MangaDropOut.kt deleted file mode 100644 index def0a9ee3..000000000 --- a/multisrc/overrides/madara/mangadropout/src/MangaDropOut.kt +++ /dev/null @@ -1,7 +0,0 @@ -package eu.kanade.tachiyomi.extension.id.mangadropout - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import java.text.SimpleDateFormat -import java.util.Locale - -class MangaDropOut : Madara("Manga Drop Out", "https://www.mangadropout.xyz", "id", SimpleDateFormat("dd/MM/yyyy", Locale("id"))) diff --git a/multisrc/overrides/madara/mangamg/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/mangamg/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 5959baa41..000000000 Binary files a/multisrc/overrides/madara/mangamg/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangamg/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/mangamg/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 888cd793b..000000000 Binary files a/multisrc/overrides/madara/mangamg/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangamg/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/mangamg/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index da9cc91f1..000000000 Binary files a/multisrc/overrides/madara/mangamg/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangamg/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/mangamg/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 49dc28f85..000000000 Binary files a/multisrc/overrides/madara/mangamg/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangamg/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/mangamg/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index fdb2ebc34..000000000 Binary files a/multisrc/overrides/madara/mangamg/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangamg/res/web_hi_res_512.png b/multisrc/overrides/madara/mangamg/res/web_hi_res_512.png deleted file mode 100644 index 2dca88b7e..000000000 Binary files a/multisrc/overrides/madara/mangamg/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/madara/manganatoinfo/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/manganatoinfo/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index f76564ab1..000000000 Binary files a/multisrc/overrides/madara/manganatoinfo/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manganatoinfo/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/manganatoinfo/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 07ceba9c9..000000000 Binary files a/multisrc/overrides/madara/manganatoinfo/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manganatoinfo/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/manganatoinfo/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 443e7a278..000000000 Binary files a/multisrc/overrides/madara/manganatoinfo/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manganatoinfo/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/manganatoinfo/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 8d0551bae..000000000 Binary files a/multisrc/overrides/madara/manganatoinfo/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manganatoinfo/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/manganatoinfo/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index a0e059c83..000000000 Binary files a/multisrc/overrides/madara/manganatoinfo/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manganatoinfo/res/web_hi_res_512.png b/multisrc/overrides/madara/manganatoinfo/res/web_hi_res_512.png deleted file mode 100644 index 12f1ce4c4..000000000 Binary files a/multisrc/overrides/madara/manganatoinfo/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/madara/manganatoinfo/src/Manganatoinfo.kt b/multisrc/overrides/madara/manganatoinfo/src/Manganatoinfo.kt deleted file mode 100644 index b592da5f4..000000000 --- a/multisrc/overrides/madara/manganatoinfo/src/Manganatoinfo.kt +++ /dev/null @@ -1,12 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.manganatoinfo - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import java.text.SimpleDateFormat -import java.util.Locale - -class Manganatoinfo : Madara( - "Manganato.info", - "https://manganato.info", - "en", - dateFormat = SimpleDateFormat("MMM d, yyyy", Locale.US) -) diff --git a/multisrc/overrides/madara/mangatop1/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/mangatop1/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 0d66d13e9..000000000 Binary files a/multisrc/overrides/madara/mangatop1/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangatop1/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/mangatop1/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index cb6a1d718..000000000 Binary files a/multisrc/overrides/madara/mangatop1/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangatop1/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/mangatop1/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 76c943de4..000000000 Binary files a/multisrc/overrides/madara/mangatop1/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangatop1/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/mangatop1/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 30fac6cdb..000000000 Binary files a/multisrc/overrides/madara/mangatop1/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangatop1/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/mangatop1/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 46c9f8752..000000000 Binary files a/multisrc/overrides/madara/mangatop1/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangatop1/res/web_hi_res_512.png b/multisrc/overrides/madara/mangatop1/res/web_hi_res_512.png deleted file mode 100644 index b313ca837..000000000 Binary files a/multisrc/overrides/madara/mangatop1/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangax18/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/mangax18/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 9aefa5492..000000000 Binary files a/multisrc/overrides/madara/mangax18/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangax18/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/mangax18/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 8539059dc..000000000 Binary files a/multisrc/overrides/madara/mangax18/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangax18/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/mangax18/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 04be9dc6d..000000000 Binary files a/multisrc/overrides/madara/mangax18/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangax18/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/mangax18/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index b5c98d792..000000000 Binary files a/multisrc/overrides/madara/mangax18/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangax18/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/mangax18/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 6144e33e6..000000000 Binary files a/multisrc/overrides/madara/mangax18/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/mangax18/res/web_hi_res_512.png b/multisrc/overrides/madara/mangax18/res/web_hi_res_512.png deleted file mode 100644 index 12f55b7b4..000000000 Binary files a/multisrc/overrides/madara/mangax18/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhuapro/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/manhuapro/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 199566490..000000000 Binary files a/multisrc/overrides/madara/manhuapro/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhuapro/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/manhuapro/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 3391e8126..000000000 Binary files a/multisrc/overrides/madara/manhuapro/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhuapro/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/manhuapro/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index bec20c244..000000000 Binary files a/multisrc/overrides/madara/manhuapro/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhuapro/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/manhuapro/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 7e9821306..000000000 Binary files a/multisrc/overrides/madara/manhuapro/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhuapro/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/manhuapro/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 497d176fa..000000000 Binary files a/multisrc/overrides/madara/manhuapro/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhuapro/res/web_hi_res_512.png b/multisrc/overrides/madara/manhuapro/res/web_hi_res_512.png deleted file mode 100644 index dcfa90b0c..000000000 Binary files a/multisrc/overrides/madara/manhuapro/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhuapro/src/ManhuaPro.kt b/multisrc/overrides/madara/manhuapro/src/ManhuaPro.kt deleted file mode 100644 index 7278c406a..000000000 --- a/multisrc/overrides/madara/manhuapro/src/ManhuaPro.kt +++ /dev/null @@ -1,17 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.manhuapro - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import eu.kanade.tachiyomi.network.interceptor.rateLimit -import okhttp3.OkHttpClient -import java.util.concurrent.TimeUnit - -class ManhuaPro : Madara( - "ManhuaPro", - "https://manhuapro.com", - "en" -) { - - override val client: OkHttpClient = super.client.newBuilder() - .rateLimit(1, 1, TimeUnit.SECONDS) - .build() -} diff --git a/multisrc/overrides/madara/manhuatoon/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/manhuatoon/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 5ddb8335c..000000000 Binary files a/multisrc/overrides/madara/manhuatoon/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhuatoon/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/manhuatoon/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 330b0a96b..000000000 Binary files a/multisrc/overrides/madara/manhuatoon/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhuatoon/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/manhuatoon/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 1b35696c7..000000000 Binary files a/multisrc/overrides/madara/manhuatoon/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhuatoon/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/manhuatoon/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index d4afb3251..000000000 Binary files a/multisrc/overrides/madara/manhuatoon/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhuatoon/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/manhuatoon/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index ad78c3c04..000000000 Binary files a/multisrc/overrides/madara/manhuatoon/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhuatoon/res/web_hi_res_512.png b/multisrc/overrides/madara/manhuatoon/res/web_hi_res_512.png deleted file mode 100644 index ca27a1701..000000000 Binary files a/multisrc/overrides/madara/manhuatoon/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhuatoon/src/ManhuaToon.kt b/multisrc/overrides/madara/manhuatoon/src/ManhuaToon.kt deleted file mode 100644 index a4370d18d..000000000 --- a/multisrc/overrides/madara/manhuatoon/src/ManhuaToon.kt +++ /dev/null @@ -1,7 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.manhuatoon - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import java.text.SimpleDateFormat -import java.util.Locale - -class ManhuaToon : Madara("ManhuaToon", "https://manhuatoon.com", "en", SimpleDateFormat("yyyy-MM-dd", Locale.US)) diff --git a/multisrc/overrides/madara/manhwabiz/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/manhwabiz/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 5651adabf..000000000 Binary files a/multisrc/overrides/madara/manhwabiz/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhwabiz/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/manhwabiz/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 003eae2aa..000000000 Binary files a/multisrc/overrides/madara/manhwabiz/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhwabiz/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/manhwabiz/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 568c7d48b..000000000 Binary files a/multisrc/overrides/madara/manhwabiz/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhwabiz/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/manhwabiz/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 7515beac0..000000000 Binary files a/multisrc/overrides/madara/manhwabiz/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhwabiz/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/manhwabiz/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 88f973103..000000000 Binary files a/multisrc/overrides/madara/manhwabiz/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhwabiz/res/web_hi_res_512.png b/multisrc/overrides/madara/manhwabiz/res/web_hi_res_512.png deleted file mode 100644 index a661ec2eb..000000000 Binary files a/multisrc/overrides/madara/manhwabiz/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/madara/manhwabiz/src/Manhwabiz.kt b/multisrc/overrides/madara/manhwabiz/src/Manhwabiz.kt deleted file mode 100644 index da1b94c9a..000000000 --- a/multisrc/overrides/madara/manhwabiz/src/Manhwabiz.kt +++ /dev/null @@ -1,13 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.manhwabiz - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import eu.kanade.tachiyomi.network.GET -import okhttp3.Request -import java.text.SimpleDateFormat -import java.util.Locale - -class Manhwabiz : Madara("Manhwa.biz", "https://manhwa.biz", "en", dateFormat = SimpleDateFormat("MMMM d, yyyy", Locale.US)) { - private fun pagePath(page: Int) = if (page > 1) "page/$page/" else "" - override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/all-manhwa/${pagePath(page)}?m_orderby=views", headers) - override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/all-manhwa/${pagePath(page)}?m_orderby=latest", headers) -} diff --git a/multisrc/overrides/madara/tiempodewebeo/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/tiempodewebeo/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index f4544d57e..000000000 Binary files a/multisrc/overrides/madara/tiempodewebeo/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/tiempodewebeo/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/tiempodewebeo/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 16cea9663..000000000 Binary files a/multisrc/overrides/madara/tiempodewebeo/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/tiempodewebeo/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/tiempodewebeo/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 17b9191ac..000000000 Binary files a/multisrc/overrides/madara/tiempodewebeo/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/tiempodewebeo/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/tiempodewebeo/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 9215dee2a..000000000 Binary files a/multisrc/overrides/madara/tiempodewebeo/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/tiempodewebeo/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/tiempodewebeo/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index e2d54d1c0..000000000 Binary files a/multisrc/overrides/madara/tiempodewebeo/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/tiempodewebeo/res/web_hi_res_512.png b/multisrc/overrides/madara/tiempodewebeo/res/web_hi_res_512.png deleted file mode 100644 index 8151e2b8e..000000000 Binary files a/multisrc/overrides/madara/tiempodewebeo/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/madara/tiempodewebeo/src/TiempoDeWebeo.kt b/multisrc/overrides/madara/tiempodewebeo/src/TiempoDeWebeo.kt deleted file mode 100644 index 3b1d6eb7b..000000000 --- a/multisrc/overrides/madara/tiempodewebeo/src/TiempoDeWebeo.kt +++ /dev/null @@ -1,12 +0,0 @@ -package eu.kanade.tachiyomi.extension.es.tiempodewebeo - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import java.text.SimpleDateFormat -import java.util.Locale - -class TiempoDeWebeo : Madara( - "Tiempo de webeo", - "https://tiempodewebeo.com", - "es", - SimpleDateFormat("dd/MM/yyyy", Locale("es")) -) diff --git a/multisrc/overrides/madara/ultralightscans/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/ultralightscans/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 4b3776215..000000000 Binary files a/multisrc/overrides/madara/ultralightscans/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/ultralightscans/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/ultralightscans/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index a56ea1456..000000000 Binary files a/multisrc/overrides/madara/ultralightscans/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/ultralightscans/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/ultralightscans/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 4d0111f8d..000000000 Binary files a/multisrc/overrides/madara/ultralightscans/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/ultralightscans/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/ultralightscans/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 0f9782af5..000000000 Binary files a/multisrc/overrides/madara/ultralightscans/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/ultralightscans/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/ultralightscans/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 736f0076a..000000000 Binary files a/multisrc/overrides/madara/ultralightscans/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/ultralightscans/res/web_hi_res_512.png b/multisrc/overrides/madara/ultralightscans/res/web_hi_res_512.png deleted file mode 100644 index 8b228ae61..000000000 Binary files a/multisrc/overrides/madara/ultralightscans/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/madara/webtoon69/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/webtoon69/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index e4e442c02..000000000 Binary files a/multisrc/overrides/madara/webtoon69/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/webtoon69/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/webtoon69/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 25f95deaa..000000000 Binary files a/multisrc/overrides/madara/webtoon69/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/webtoon69/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/webtoon69/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 56c27307a..000000000 Binary files a/multisrc/overrides/madara/webtoon69/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/webtoon69/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/webtoon69/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index c03f171de..000000000 Binary files a/multisrc/overrides/madara/webtoon69/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/webtoon69/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/webtoon69/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 5769fc032..000000000 Binary files a/multisrc/overrides/madara/webtoon69/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/madara/webtoon69/res/web_hi_res_512.png b/multisrc/overrides/madara/webtoon69/res/web_hi_res_512.png deleted file mode 100644 index b40926c58..000000000 Binary files a/multisrc/overrides/madara/webtoon69/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/sinmh/manhuadui/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/sinmh/manhuadui/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 977fa4f9d..000000000 Binary files a/multisrc/overrides/sinmh/manhuadui/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/sinmh/manhuadui/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/sinmh/manhuadui/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 14e1f3d02..000000000 Binary files a/multisrc/overrides/sinmh/manhuadui/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/sinmh/manhuadui/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/sinmh/manhuadui/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index bec42bc83..000000000 Binary files a/multisrc/overrides/sinmh/manhuadui/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/sinmh/manhuadui/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/sinmh/manhuadui/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 12021be2f..000000000 Binary files a/multisrc/overrides/sinmh/manhuadui/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/sinmh/manhuadui/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/sinmh/manhuadui/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 1a8abce6f..000000000 Binary files a/multisrc/overrides/sinmh/manhuadui/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/sinmh/manhuadui/res/web_hi_res_512.png b/multisrc/overrides/sinmh/manhuadui/res/web_hi_res_512.png deleted file mode 100644 index bcaa3f4e4..000000000 Binary files a/multisrc/overrides/sinmh/manhuadui/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/sinmh/manhuadui/src/YKMH.kt b/multisrc/overrides/sinmh/manhuadui/src/YKMH.kt deleted file mode 100644 index 275138de3..000000000 --- a/multisrc/overrides/sinmh/manhuadui/src/YKMH.kt +++ /dev/null @@ -1,14 +0,0 @@ -package eu.kanade.tachiyomi.extension.zh.manhuadui - -import eu.kanade.tachiyomi.multisrc.sinmh.SinMH -import eu.kanade.tachiyomi.source.model.SChapter -import org.jsoup.nodes.Document - -class YKMH : SinMH("优酷漫画", "http://www.ykmh.com") { - override val id = 1637952806167036168 - override val mobileUrl = "http://wap.ykmh.com" - - override fun mangaDetailsParse(document: Document) = mangaDetailsParseDMZJStyle(document, hasBreadcrumb = false) - - override fun List.sortedDescending() = this -} diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt index caed52a74..f966a9389 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt @@ -28,11 +28,9 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("24hManga", "https://24hmanga.com", "en", isNsfw = true, className = "TwentyFourhManga"), SingleLang("24hRomance", "https://24hromance.com", "en", className = "Romance24h"), SingleLang("365Manga", "https://365manga.com", "en", className = "ThreeSixtyFiveManga", overrideVersionCode = 1), - SingleLang("8Muses Comics", "https://8muses.love/", "en", isNsfw = true, className = "EightMusesComics"), SingleLang("Adonis Fansub", "https://manga.adonisfansub.com", "tr", overrideVersionCode = 1), SingleLang("Adult Painful Nightz", "https://adults.painfulnightz.com", "en", isNsfw = true), SingleLang("Adult Webtoon", "https://adultwebtoon.com/", "en", isNsfw = true), - SingleLang("Agent of Change Translations", "https://aoc.moe", "en", overrideVersionCode = 1), SingleLang("AiYuManga", "https://aiyumangascanlation.com", "es"), SingleLang("Akuma no Tenshi", "https://akumanotenshi.com", "pt-BR", className = "AkumaNoTenshi"), SingleLang("AkuManga", "https://akumanga.com", "ar", overrideVersionCode = 1), @@ -50,7 +48,6 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("Arthur Scan", "https://arthurscan.xyz", "pt-BR", overrideVersionCode = 4), SingleLang("Astra Scans", "https://astrascans.com", "en"), SingleLang("Astral Library", "https://www.astrallibrary.net", "en", overrideVersionCode = 2), - SingleLang("Asura Raw", "https://asuraraw.com", "en", overrideVersionCode = 1), SingleLang("Atikrost", "https://atikrost.com", "tr", overrideVersionCode = 1), SingleLang("AZManhwa", "https://azmanhwa.net", "en"), SingleLang("Azora", "https://azoraworld.com", "ar", overrideVersionCode = 3), @@ -97,7 +94,6 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("EGY Manga", "https://egymanga.net", "ar", overrideVersionCode = 1), SingleLang("Emperor Scan", "https://emperorscan.com/", "es"), SingleLang("Empire Webtoon", "https://webtoonempire.com", "ar", isNsfw = true, overrideVersionCode = 1), - SingleLang("Eromanhwas", "https://eromanhwas.com", "en"), SingleLang("Eromiau", "https://www.eromiau.com", "es", isNsfw = true), SingleLang("Esomanga", "http://esomanga.com", "tr"), SingleLang("Estufa de Cristal", "https://scanestufadecristal.site", "pt-BR", className = "EstufaDeCristal"), @@ -165,7 +161,6 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("Izakaya", "https://leitorizakaya.net", "pt-BR", isNsfw = true), SingleLang("JaiminisBox.net", "https://jaiminisbox.net", "en", className = "Jaiminisboxnet"), SingleLang("Jiangzaitoon", "https://jiangzaitoon.biz", "tr", isNsfw = true, overrideVersionCode = 1), - SingleLang("Jiro Comics", "https://jirocomics.com", "en", isNsfw = true), SingleLang("Kalango Scan", "https://kalangoscan.online", "pt-BR"), SingleLang("Kami Sama Explorer", "https://leitor.kamisama.com.br", "pt-BR", overrideVersionCode = 2), SingleLang("KawaScans", "https://kawascans.com", "en", overrideVersionCode = 1), @@ -188,7 +183,7 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("Lord Manga", "https://lordmanga.com", "en"), SingleLang("LovableSubs", "https://lovablesubs.com", "tr", overrideVersionCode = 1), SingleLang("Lumine Scans", "https://luminescans.xyz", "en", overrideVersionCode = 1), - SingleLang("MadaraDex", "https://madaradx.org", "en", isNsfw = true), + SingleLang("MadaraDex", "https://madaradex.org", "en", isNsfw = true), SingleLang("Manga Action", "https://mangaaction.com", "en", overrideVersionCode = 2), SingleLang("Manga Bilgini", "https://mangabilgini.com", "tr"), SingleLang("Manga Bin", "https://mangabin.com", "en", overrideVersionCode = 1), @@ -196,7 +191,6 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("Manga Crab", "https://mangacrab.com", "es", overrideVersionCode = 1), SingleLang("Manga District", "https://mangadistrict.com", "en", isNsfw = true, overrideVersionCode = 1), SingleLang("Manga Diyari", "https://manga-diyari.com", "tr", overrideVersionCode = 2), - SingleLang("Manga Drop Out", "https://www.mangadropout.xyz", "id", isNsfw = true, overrideVersionCode = 1), SingleLang("Manga Fenix", "https://manga-fenix.com", "es", overrideVersionCode = 2), SingleLang("Manga Funny", "https://mangafunny.com", "en"), SingleLang("Manga Galaxy", "https://mangagalaxy.me", "en"), @@ -240,7 +234,6 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("MangaBaz", "https://mangabaz.net", "en"), SingleLang("MangaBob", "https://mangabob.com", "en", overrideVersionCode = 1), SingleLang("MangaBoss", "https://mangaboss.org", "en"), - SingleLang("MangaBox", "https://mangabox.org", "en"), SingleLang("MangaCC", "https://mangacc.com", "en"), SingleLang("MangaClash", "https://mangaclash.com", "en", overrideVersionCode = 3), SingleLang("MangaCultivator", "https://mangacultivator.com", "en", overrideVersionCode = 2), @@ -269,9 +262,7 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("MangaManhua", "https://mangamanhua.online", "en", overrideVersionCode = 1), SingleLang("MangaManiacs", "https://mangamaniacs.org", "en", isNsfw = true), SingleLang("MangaMe", "https://mangame.org", "en", overrideVersionCode = 1), - SingleLang("MangaMG", "https://mangamg.com", "en"), SingleLang("MangaMoli", "https://mangamoli.com", "en"), - SingleLang("Manganato.info", "https://manganato.info", "en", className = "Manganatoinfo"), SingleLang("MangaPT", "https://mangapt.com", "es", isNsfw = true), SingleLang("MangaRabic", "https://mangarabic.com", "ar"), SingleLang("MangaRead.org", "https://www.mangaread.org", "en", className = "MangaReadOrg", overrideVersionCode = 1), @@ -289,7 +280,6 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("Mangasushi", "https://mangasushi.org", "en", overrideVersionCode = 3), SingleLang("MangaTK", "https://mangatk.com", "en"), SingleLang("MangaTone", "https://mangatone.com", "en"), - SingleLang("MangaTop1", "https://mangatop1.com", "en"), SingleLang("MangaToRead", "https://mangatoread.com", "en"), SingleLang("MangaTX", "https://mangatx.com", "en", overrideVersionCode = 1), SingleLang("Mangauptocats", "https://mangauptocats.online", "th", overrideVersionCode = 2), @@ -297,7 +287,6 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("MangaWise", "https://mangawise.com", "en"), SingleLang("MangaWT", "https://mangawt.com", "tr", overrideVersionCode = 1), SingleLang("MangaX1", "https://mangax1.com", "en"), - SingleLang("MangaX18", "https://mangax18.com", "en", isNsfw = true), SingleLang("MangaXP", "https://mangaxp.com", "en", overrideVersionCode = 1), SingleLang("MangaYami", "https://www.mangayami.club", "en", overrideVersionCode = 2), SingleLang("Mangazuki.me", "https://mangazuki.me", "en", className = "MangazukiMe", overrideVersionCode = 1), @@ -310,21 +299,17 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("Manhua SY", "https://www.manhuasy.com", "en", overrideVersionCode = 1), SingleLang("ManhuaBox", "https://manhuabox.net", "en", overrideVersionCode = 2), SingleLang("ManhuaChill", "https://manhuachill.com", "en"), - SingleLang("ManhuaComic", "https://manhuacomic.com", "en"), SingleLang("ManhuaDex", "https://manhuadex.com", "en", overrideVersionCode = 1), SingleLang("ManhuaFast", "https://manhuafast.com", "en", overrideVersionCode = 1), SingleLang("Manhuaga", "https://manhuaga.com", "en", overrideVersionCode = 2), SingleLang("ManhuaHot", "https://manhuahot.com", "en"), SingleLang("Manhualo", "https://manhualo.com", "en", overrideVersionCode = 1), - SingleLang("ManhuaPro", "https://manhuapro.com", "en", overrideVersionCode = 2), SingleLang("Manhuas.net", "https://manhuas.net", "en", className = "Manhuasnet", overrideVersionCode = 2), - SingleLang("ManhuaToon", "https://manhuatoon.com", "en"), SingleLang("ManhuaUS", "https://manhuaus.com", "en", overrideVersionCode = 5), SingleLang("ManhuaZone", "https://manhuazone.com", "en"), SingleLang("Manhwa Chill", "https://manhwachill.com", "en"), SingleLang("Manhwa Raw", "https://manhwaraw.com", "ko", isNsfw = true, overrideVersionCode = 1), SingleLang("Manhwa-raw", "https://manhwa-raw.com", "all", isNsfw = true, className = "ManhwaDashRaw"), - SingleLang("Manhwa.biz", "https://manhwa.biz", "en", isNsfw = true, className = "Manhwabiz"), SingleLang("Manhwa18.app", "https://manhwa18.app", "en", isNsfw = true, className = "Manhwa18app"), SingleLang("Manhwa18.org", "https://manhwa18.org", "en", isNsfw = true, className = "Manhwa18Org", overrideVersionCode = 2), SingleLang("Manhwa365", "https://manhwa365.com", "en", isNsfw = true), @@ -451,7 +436,6 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("The Guild", "https://theguildscans.com", "en"), SingleLang("The Sugar", "https://thesugarscan.com", "pt-BR"), SingleLang("Three Queens Scanlator", "https://tqscan.com.br", "pt-BR", overrideVersionCode = 3), - SingleLang("Tiempo de webeo", "https://tiempodewebeo.com", "es", className = "TiempoDeWebeo", isNsfw = true), SingleLang("Time Naight", "https://timenaight.com", "tr"), SingleLang("Todaymic", "https://todaymic.com", "en", overrideVersionCode = 1), SingleLang("TonizuToon", "https://tonizutoon.com", "tr", isNsfw = true), @@ -468,7 +452,6 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("Tumangaonline.site", "https://tumangaonline.site", "es", isNsfw = true, className = "TumangaonlineSite", pkgName = "tumangaonlinesite"), SingleLang("Twilight Scans", "https://twilightscans.com", "en", overrideVersionCode = 1), SingleLang("Türkçe Manga", "https://turkcemanga.com", "tr", className = "TurkceManga", overrideVersionCode = 2), - SingleLang("Ultralight Scans", "https://readlight.org", "en"), SingleLang("Unemployed Scans", "https://unemployedscans.com", "en", overrideVersionCode = 1), SingleLang("Uyuyan Balik", "https://uyuyanbalik.com", "tr", overrideVersionCode = 1), SingleLang("Uzay Manga", "https://uzaymanga.com", "tr"), @@ -482,7 +465,6 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("Webtoon Hatti", "https://webtoonhatti.com", "tr", overrideVersionCode = 1), SingleLang("Webtoon TR", "https://webtoon-tr.com", "tr", overrideVersionCode = 1), SingleLang("WebToon18", "http://webtoon18.net", "en", isNsfw = true, overrideVersionCode = 2), - SingleLang("WebToon69", "https://webtoon69.com", "en", isNsfw = true, overrideVersionCode = 1), SingleLang("WebToonily", "https://webtoonily.com", "en", isNsfw = true, overrideVersionCode = 1), SingleLang("WebtoonScan", "https://webtoonscan.com", "en", isNsfw = true), SingleLang("WebtoonsTOP", "https://webtoons.top", "en", isNsfw = true), @@ -491,7 +473,6 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("Winter Scan", "https://winterscan.com", "pt-BR", overrideVersionCode = 4), SingleLang("WoopRead", "https://woopread.com", "en", overrideVersionCode = 1), SingleLang("WuxiaWorld", "https://wuxiaworld.site", "en", overrideVersionCode = 1), - SingleLang("XManga", "https://xmanga.io", "en", isNsfw = true), SingleLang("XuN Scans", "https://xunscans.xyz", "en", overrideVersionCode = 3), SingleLang("Yaoi Comics", "https://ycscan.com", "pt-BR", isNsfw = true), SingleLang("YANP Fansub", "https://melhorcasal.com", "pt-BR", isNsfw = true), diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangamainac/MangaMainacGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangamainac/MangaMainacGenerator.kt index 14b3d940c..f4866e44c 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangamainac/MangaMainacGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangamainac/MangaMainacGenerator.kt @@ -29,7 +29,6 @@ class MangaMainacGenerator : ThemeSourceGenerator { // // SingleLang("", "https://5-toubunnohanayome.net/", "en"), //Down at time of creating this generator // SingleLang("", "http://beastars.net/", "en"), //Down at time of creating this generator - // SingleLang("", "https://neverlandmanga.net/", "en"), //Down at time of creating this generator // SingleLang("", "https://ww1.readhunterxhunter.net/", "en"), //Down at time of creating this generator ) diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/sinmh/SinMHGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/sinmh/SinMHGenerator.kt index 093c21894..014e29e9f 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/sinmh/SinMHGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/sinmh/SinMHGenerator.kt @@ -16,10 +16,6 @@ class SinMHGenerator : ThemeSourceGenerator { name = "Imitui Manhua", baseUrl = "https://www.imitui.com", lang = "zh", className = "Imitui", sourceName = "爱米推漫画", overrideVersionCode = 2 ), - SingleLang( - name = "YKMH", baseUrl = "http://www.ykmh.com", lang = "zh", className = "YKMH", - pkgName = "manhuadui", sourceName = "优酷漫画", overrideVersionCode = 17 - ), SingleLang( name = "Qinqin Manhua", baseUrl = "https://www.acgqd.com", lang = "zh", className = "Qinqin", sourceName = "亲亲漫画", overrideVersionCode = 1 diff --git a/src/all/nyahentai/AndroidManifest.xml b/src/all/nyahentai/AndroidManifest.xml deleted file mode 100644 index ff199dcda..000000000 --- a/src/all/nyahentai/AndroidManifest.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/all/nyahentai/build.gradle b/src/all/nyahentai/build.gradle deleted file mode 100644 index cb86aa845..000000000 --- a/src/all/nyahentai/build.gradle +++ /dev/null @@ -1,12 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' - -ext { - extName = 'NyaHentai' - pkgNameSuffix = 'all.nyahentai' - extClass = '.NyaHentaiFactory' - extVersionCode = 7 - isNsfw = true -} - -apply from: "$rootDir/common.gradle" diff --git a/src/all/nyahentai/res/mipmap-hdpi/ic_launcher.png b/src/all/nyahentai/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index f718e7c6d..000000000 Binary files a/src/all/nyahentai/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/all/nyahentai/res/mipmap-mdpi/ic_launcher.png b/src/all/nyahentai/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index b02a96ea4..000000000 Binary files a/src/all/nyahentai/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/all/nyahentai/res/mipmap-xhdpi/ic_launcher.png b/src/all/nyahentai/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 058612bd4..000000000 Binary files a/src/all/nyahentai/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/all/nyahentai/res/mipmap-xxhdpi/ic_launcher.png b/src/all/nyahentai/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 7e42fb8d1..000000000 Binary files a/src/all/nyahentai/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/all/nyahentai/res/mipmap-xxxhdpi/ic_launcher.png b/src/all/nyahentai/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 1dc3ce68d..000000000 Binary files a/src/all/nyahentai/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/all/nyahentai/res/web_hi_res_512.png b/src/all/nyahentai/res/web_hi_res_512.png deleted file mode 100644 index 78c254df5..000000000 Binary files a/src/all/nyahentai/res/web_hi_res_512.png and /dev/null differ diff --git a/src/all/nyahentai/src/eu/kanade/tachiyomi/extension/all/nyahentai/NyaHentai.kt b/src/all/nyahentai/src/eu/kanade/tachiyomi/extension/all/nyahentai/NyaHentai.kt deleted file mode 100644 index 28004abd8..000000000 --- a/src/all/nyahentai/src/eu/kanade/tachiyomi/extension/all/nyahentai/NyaHentai.kt +++ /dev/null @@ -1,319 +0,0 @@ -package eu.kanade.tachiyomi.extension.all.nyahentai - -import android.app.Application -import android.content.SharedPreferences -import androidx.preference.ListPreference -import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.asObservableSuccess -import eu.kanade.tachiyomi.source.ConfigurableSource -import eu.kanade.tachiyomi.source.model.Filter -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.OkHttpClient -import okhttp3.Request -import okhttp3.Response -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import rx.Observable -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get - -abstract class NyaHentai( - override val lang: String -) : ConfigurableSource, ParsedHttpSource() { - - private val preferences: SharedPreferences by lazy { - Injekt.get().getSharedPreferences("source_$id", 0x0000) - } - - override val name = "NyaHentai" - override val baseUrl: String = getMirrorPref()!! - - override fun setupPreferenceScreen(screen: PreferenceScreen) { - val mirrorPref = ListPreference(screen.context).apply { - key = "${MIRROR_PREF_KEY}_$lang" - title = MIRROR_PREF_TITLE - entries = MIRROR_PREF_ENTRIES - entryValues = MIRROR_PREF_ENTRY_VALUES - setDefaultValue(MIRROR_PREF_DEFAULT_VALUE) - summary = "%s" - - setOnPreferenceChangeListener { _, newValue -> - val selected = newValue as String - val index = findIndexOfValue(selected) - val entry = entryValues[index] as String - preferences.edit().putString("${MIRROR_PREF_KEY}_$lang", entry).commit() - } - } - screen.addPreference(mirrorPref) - } - - private fun getMirrorPref(): String? = preferences.getString("${MIRROR_PREF_KEY}_$lang", MIRROR_PREF_DEFAULT_VALUE) - - companion object { - private const val MIRROR_PREF_KEY = "MIRROR" - private const val MIRROR_PREF_TITLE = "Mirror" - private val MIRROR_PREF_ENTRIES = arrayOf("nyahentai.com", "nyahentai.site", "ja.nyahentai.me", "nyahentai.fun", "nyahentai.club", "nyahentai2.com", "nyahentai.co", "nyahentai3.com", "cathentai.com", "zhb.doghentai.com", "ja.bughentai.com", "en.bughentai.com", "zhb.qqhentai.com", "ja.foxhentai.com", "zh.ddhentai.com", "zha.ddhentai.com") - private val MIRROR_PREF_ENTRY_VALUES = arrayOf("https://nyahentai.com", "https://nyahentai.site", "https://ja.nyahentai.me", "https://nyahentai.fun", "https://nyahentai.club", "https://nyahentai2.com", "https://nyahentai.co", "https://nyahentai3.com", "https://cathentai.com", "https://zhb.doghentai.com", "https://ja.bughentai.com", "https://en.bughentai.com", "https://zhb.qqhentai.com", "https://ja.foxhentai.com", "https://zh.ddhentai.com", "https://zha.ddhentai.com") - private val MIRROR_PREF_DEFAULT_VALUE = MIRROR_PREF_ENTRY_VALUES[0] - - private const val NOT_FOUND_MESSAGE = "If you used a filter, check if the keyword actually exists." - private const val Filter_SEARCH_MESSAGE = "NOTE: Ignored if using text search!" - const val PREFIX_ID_SEARCH = "id:" - } - - val nyaLang = when (lang) { - "en" -> "english" - "zh" -> "chinese" - "ja" -> "japanese" - else -> "" - } - - val languageUrl = when (nyaLang) { - "" -> baseUrl - else -> "$baseUrl/language/$nyaLang" - } - - override val supportsLatest = true - - override val client: OkHttpClient = network.cloudflareClient - - override fun latestUpdatesSelector() = "div.container div.gallery a" - - override fun latestUpdatesRequest(page: Int): Request { - return GET("$languageUrl/page/$page", headers) - } - - override fun latestUpdatesFromElement(element: Element): SManga { - val manga = SManga.create() - - manga.setUrlWithoutDomain(element.attr("href")) - manga.title = element.select("div.caption").text() - manga.thumbnail_url = element.select("img.lazyload").attr("abs:data-src") - - return manga - } - - override fun latestUpdatesNextPageSelector() = "section.pagination a[rel=next]" - - private fun parseTAG(tag: String): String = tag.replace("\\((.*)\\)".toRegex(), "").trim() - - override fun mangaDetailsParse(document: Document): SManga { - val infoElement = document.select("div#bigcontainer.container") - val manga = SManga.create() - val genres = mutableListOf() - - infoElement.select("div.tag-container:contains(Tags) a").forEach { element -> - val genre = parseTAG(element.text()) - genres.add(genre) - } - - manga.title = infoElement.select("h1").text() - manga.author = "" - manga.artist = parseTAG(infoElement.select("div.tag-container:contains(Artists) a").text()) - manga.status = SManga.COMPLETED - manga.genre = genres.joinToString(", ") - manga.thumbnail_url = infoElement.select("div#cover a img.lazyload").attr("abs:data-src") - - manga.description = getDesc(document) - - return manga - } - - private fun getDesc(document: Document): String { - val infoElement = document.select("div#bigcontainer.container") - - val pages = - infoElement.select("div#info > div:contains(pages)")?.text()?.replace(" pages", "") - - val multiDescriptions = listOf( - "Parodies", - "Characters", - "Groups", - "Languages", - "Categories" - ).map { - it to infoElement.select("div.tag-container:contains($it) a") - .map { v -> parseTAG(v.text()) } - } - .filter { !it.second.isNullOrEmpty() } - .map { "${it.first}: ${it.second.joinToString()}" } - - val descriptions = listOf( - multiDescriptions.joinToString("\n\n"), - pages?.let { "Pages: $it" } - ) - - return descriptions.joinToString("\n\n") - } - - override fun chapterListParse(response: Response) = with(response.asJsoup()) { - listOf( - SChapter.create().apply { - name = "Single Chapter" - setUrlWithoutDomain(response.request.url.toString()) - } - ) - } - - override fun pageListRequest(chapter: SChapter): Request = GET("$baseUrl${chapter.url}list/1/") - - override fun chapterListSelector(): String = throw UnsupportedOperationException("Not used") - - override fun chapterFromElement(element: Element): SChapter = - throw UnsupportedOperationException("Not used") - - override fun pageListParse(document: Document): List { - val pages = mutableListOf() - - val imageUrl = document.select(".container img.current-img").attr("abs:src") - - val idRegex = "(.*)/galleries\\/(\\d+)\\/(\\d*)\\.(\\w+)".toRegex() - val match = idRegex.find(imageUrl) - - val base = match?.groups?.get(1)?.value - val id = match?.groups?.get(2)?.value - val ext = match?.groups?.get(4)?.value - - val total: Int = (document.select("#pagination-page-top .num-pages").text()).toInt() - - for (i in 1..total) { - pages.add(Page(i, "", "$base/galleries/$id/$i.$ext")) - } - - return pages - } - - override fun imageUrlParse(document: Document): String = - throw UnsupportedOperationException("Not used") - - override fun popularMangaRequest(page: Int): Request = - GET( - when (nyaLang) { - "" -> "$languageUrl/page/$page" - else -> "$languageUrl/popular/page/$page" - }, - headers - ) - - override fun popularMangaFromElement(element: Element) = latestUpdatesFromElement(element) - - override fun popularMangaSelector() = latestUpdatesSelector() - - override fun popularMangaNextPageSelector() = latestUpdatesNextPageSelector() - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - if (query.isNotBlank()) { - // Normal search - return GET("$baseUrl/search/q_$query $nyaLang/page/$page", headers) - } else { - val type = filters.filterIsInstance() - .joinToString("") { - (it as UriPartFilter).toUriPart() - } - val keyword = filters.filterIsInstance().toString() - .replace("[", "").replace("]", "") - var sort = nyaLang - if (nyaLang == "") { - sort = filters.filterIsInstance() - .joinToString("") { - (it as UriPartFilter).toUriPart() - } - } - val url = "$baseUrl/$type/$keyword/$sort/page/$page" - return GET(url, headers) - } - } - - // For NyaHentaiUrlActivity - private fun searchMangaByIdRequest(id: String) = GET("$baseUrl/g/$id", headers) - - private fun searchMangaByIdParse(response: Response, id: String): MangasPage { - val sManga = mangaDetailsParse(response) - sManga.url = "/g/$id/" - return MangasPage(listOf(sManga), false) - } - - override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { - return if (query.startsWith(PREFIX_ID_SEARCH)) { - val id = query.removePrefix(PREFIX_ID_SEARCH) - client.newCall(searchMangaByIdRequest(id)) - .asObservableSuccess() - .map { response -> searchMangaByIdParse(response, id) } - } else { - super.fetchSearchManga(page, query, filters) - } - } - - override fun searchMangaParse(response: Response): MangasPage { - if (!response.isSuccessful) { - response.close() - throw Exception(NOT_FOUND_MESSAGE) - } - return super.searchMangaParse(response) - } - - override fun searchMangaSelector() = latestUpdatesSelector() - - override fun searchMangaFromElement(element: Element) = latestUpdatesFromElement(element) - - override fun searchMangaNextPageSelector() = latestUpdatesNextPageSelector() - - override fun getFilterList(): FilterList { - if (nyaLang == "") { - return FilterList( - Filter.Header(Filter_SEARCH_MESSAGE), - Filter.Separator(), - SortFilter(), - TypeFilter(), - Text("Keyword") - ) - } else { - return FilterList( - Filter.Header(Filter_SEARCH_MESSAGE), - Filter.Separator(), - TypeFilter(), - Text("Keyword") - ) - } - } - - private open class UriPartFilter( - displayName: String, - val pair: Array>, - defaultState: Int = 0 - ) : Filter.Select(displayName, pair.map { it.first }.toTypedArray(), defaultState) { - open fun toUriPart() = pair[state].second - } - - private class TypeFilter : UriPartFilter( - "Type", - arrayOf( - Pair("Tag", "tag"), - Pair("Parody", "parody"), - Pair("Character", "character"), - Pair("Artist", "artist"), - Pair("Group", "group") - ) - ) - - private class SortFilter : UriPartFilter( - "Sort by", - arrayOf( - Pair("Time", ""), - Pair("Popular", "popular"), - ) - ) - - private class Text(name: String) : Filter.Text(name) { - override fun toString(): String { - return state - } - } -} diff --git a/src/all/nyahentai/src/eu/kanade/tachiyomi/extension/all/nyahentai/NyaHentaiFactory.kt b/src/all/nyahentai/src/eu/kanade/tachiyomi/extension/all/nyahentai/NyaHentaiFactory.kt deleted file mode 100644 index 051dcc267..000000000 --- a/src/all/nyahentai/src/eu/kanade/tachiyomi/extension/all/nyahentai/NyaHentaiFactory.kt +++ /dev/null @@ -1,26 +0,0 @@ -package eu.kanade.tachiyomi.extension.all.nyahentai - -import eu.kanade.tachiyomi.source.Source -import eu.kanade.tachiyomi.source.SourceFactory - -class NyaHentaiFactory : SourceFactory { - override fun createSources(): List = listOf( - NyaHentaiEN(), - NyaHentaiJA(), - NyaHentaiZH(), - NyaHentaiALL(), - ) -} - -class NyaHentaiEN : NyaHentai("en") { - override val id = 9170089554867447899 -} -class NyaHentaiJA : NyaHentai("ja") { - override val id = 770924441007081408 -} -class NyaHentaiZH : NyaHentai("zh") { - override val id = 6864783742637475493 -} -class NyaHentaiALL : NyaHentai("all") { - override val id = 7651943104270359588 -} diff --git a/src/all/nyahentai/src/eu/kanade/tachiyomi/extension/all/nyahentai/NyaHentaiUrlActivity.kt b/src/all/nyahentai/src/eu/kanade/tachiyomi/extension/all/nyahentai/NyaHentaiUrlActivity.kt deleted file mode 100644 index 66030e4cc..000000000 --- a/src/all/nyahentai/src/eu/kanade/tachiyomi/extension/all/nyahentai/NyaHentaiUrlActivity.kt +++ /dev/null @@ -1,41 +0,0 @@ -package eu.kanade.tachiyomi.extension.all.nyahentai - -import android.app.Activity -import android.content.ActivityNotFoundException -import android.content.Intent -import android.os.Bundle -import android.util.Log -import kotlin.system.exitProcess - -/** - * Springboard that accepts https://www.manhuagui.com/comic/xxx intents and redirects them to - * the main tachiyomi process. The idea is to not install the intent filter unless - * you have this extension installed, but still let the main tachiyomi app control - * things. - */ -class NyaHentaiUrlActivity : Activity() { - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - val pathSegments = intent?.data?.pathSegments - if (pathSegments != null && pathSegments.size > 1) { - val titleid = pathSegments[1] - val mainIntent = Intent().apply { - action = "eu.kanade.tachiyomi.SEARCH" - putExtra("query", "${NyaHentai.PREFIX_ID_SEARCH}$titleid") - putExtra("filter", packageName) - } - - try { - startActivity(mainIntent) - } catch (e: ActivityNotFoundException) { - Log.e("NyaHentaiUrlActivity", e.toString()) - } - } else { - Log.e("NyaHentaiUrlActivity", "could not parse uri from intent $intent") - } - - finish() - exitProcess(0) - } -} diff --git a/src/ar/mangaalarab/AndroidManifest.xml b/src/ar/mangaalarab/AndroidManifest.xml deleted file mode 100644 index 30deb7f79..000000000 --- a/src/ar/mangaalarab/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/src/ar/mangaalarab/build.gradle b/src/ar/mangaalarab/build.gradle deleted file mode 100644 index fead1f3cd..000000000 --- a/src/ar/mangaalarab/build.gradle +++ /dev/null @@ -1,11 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' - -ext { - extName = 'مانجا العرب' - pkgNameSuffix = 'ar.mangaalarab' - extClass = '.MangaAlarab' - extVersionCode = 7 -} - -apply from: "$rootDir/common.gradle" diff --git a/src/ar/mangaalarab/res/mipmap-hdpi/ic_launcher.png b/src/ar/mangaalarab/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index c61aa939b..000000000 Binary files a/src/ar/mangaalarab/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/ar/mangaalarab/res/mipmap-mdpi/ic_launcher.png b/src/ar/mangaalarab/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index ad967c1d6..000000000 Binary files a/src/ar/mangaalarab/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/ar/mangaalarab/res/mipmap-xhdpi/ic_launcher.png b/src/ar/mangaalarab/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 3e39eae14..000000000 Binary files a/src/ar/mangaalarab/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/ar/mangaalarab/res/mipmap-xxhdpi/ic_launcher.png b/src/ar/mangaalarab/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 375c2a41e..000000000 Binary files a/src/ar/mangaalarab/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/ar/mangaalarab/res/mipmap-xxxhdpi/ic_launcher.png b/src/ar/mangaalarab/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index f94fba502..000000000 Binary files a/src/ar/mangaalarab/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/ar/mangaalarab/res/web_hi_res_512.png b/src/ar/mangaalarab/res/web_hi_res_512.png deleted file mode 100644 index 395517bb3..000000000 Binary files a/src/ar/mangaalarab/res/web_hi_res_512.png and /dev/null differ diff --git a/src/ar/mangaalarab/src/eu/kanade/tachiyomi/extension/ar/mangaalarab/MangaAlarab.kt b/src/ar/mangaalarab/src/eu/kanade/tachiyomi/extension/ar/mangaalarab/MangaAlarab.kt deleted file mode 100644 index 8c3761911..000000000 --- a/src/ar/mangaalarab/src/eu/kanade/tachiyomi/extension/ar/mangaalarab/MangaAlarab.kt +++ /dev/null @@ -1,257 +0,0 @@ -package eu.kanade.tachiyomi.extension.ar.mangaalarab - -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.source.model.Filter -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.HttpUrl.Companion.toHttpUrlOrNull -import okhttp3.Request -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import java.text.ParseException -import java.text.SimpleDateFormat -import java.util.Locale - -class MangaAlarab : ParsedHttpSource() { - - override val name = "MangaAlarab" - - override val baseUrl = "https://mangaalarab.com" - - override val lang = "ar" - - override val supportsLatest = true - - // Popular - - override fun popularMangaRequest(page: Int): Request { - return GET("$baseUrl/manga?page=$page") - } - - override fun popularMangaSelector() = "article" - - override fun popularMangaFromElement(element: Element): SManga { - return SManga.create().apply { - element.select("a").let { - setUrlWithoutDomain(it.attr("abs:href")) - title = element.select("h3").text() - thumbnail_url = element.select("figure img").attr("data-src") - } - } - } - - override fun popularMangaNextPageSelector() = "a[rel=next]" - - // Latest - - override fun latestUpdatesRequest(page: Int): Request { - return GET(baseUrl) - } - - override fun latestUpdatesSelector() = "section:nth-child(5) > div.container > div > article" - - override fun latestUpdatesFromElement(element: Element): SManga { - return SManga.create().apply { - element.select("figure > a").let { - setUrlWithoutDomain(it.attr("abs:href")) - title = element.select("img").attr("title") - thumbnail_url = element.select("img").attr("data-src") - } - } - } - - override fun latestUpdatesNextPageSelector(): String? = null - - // Search - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - return if (query.isNotBlank()) { - GET("$baseUrl/search?q=$query&page=$page", headers) - } else { - val url = "$baseUrl/manga?page=$page".toHttpUrlOrNull()!!.newBuilder() - filters.forEach { filter -> - when (filter) { - is SortFilter -> url.addQueryParameter("order", filter.toUriPart()) - is OTypeFilter -> url.addQueryParameter("order_type", filter.toUriPart()) - is StatusFilter -> { - filter.state - .filter { it.state != Filter.TriState.STATE_IGNORE } - .forEach { url.addQueryParameter("statuses[]", it.id) } - } - is TypeFilter -> { - filter.state - .filter { it.state != Filter.TriState.STATE_IGNORE } - .forEach { url.addQueryParameter("types[]", it.id) } - } - is GenreFilter -> { - filter.state - .filter { it.state != Filter.TriState.STATE_IGNORE } - .forEach { url.addQueryParameter("genres[]", it.id) } - } - is GenresSelection -> url.addQueryParameter("genresSelection", filter.toUriPart()) - } - } - GET(url.build().toString(), headers) - } - } - - override fun searchMangaSelector() = popularMangaSelector() - - override fun searchMangaFromElement(element: Element): SManga = popularMangaFromElement(element) - - override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() - - // Details - - override fun mangaDetailsParse(document: Document): SManga { - return SManga.create().apply { - document.select("article").first().let { info -> - description = info.select("p.text-sm").text() - } - - // add series type(manga/manhwa/manhua/other) thinggy to genre - genre = document.select("div.text-gray-600 a, div.container > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > span:nth-child(2)").joinToString(", ") { it.text() } - - // add series Status to manga description - document.select("div.container > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(6) > span:nth-child(2)")?.first()?.text()?.also { statusText -> - when { - statusText.contains("مستمرة", true) -> status = SManga.ONGOING - statusText.contains("مكتملة", true) -> status = SManga.COMPLETED - else -> status = SManga.UNKNOWN - } - } - - // add alternative name to manga description - document.select("article span").text()?.let { - if (it.isEmpty().not()) { - description += when { - description!!.isEmpty() -> "Alternative Name: $it" - else -> "\n\nAlternativ Name: $it" - } - } - } - } - } - - // Chapters - - override fun chapterListSelector() = "div.chapters-container > div > a" - - override fun chapterFromElement(element: Element): SChapter { - return SChapter.create().apply { - name = "${element.select("div > span").text()}" - setUrlWithoutDomain(element.attr("href")) - date_upload = element.select("div > time").firstOrNull()?.text() - ?.let { parseChapterDate(it) } ?: 0 - } - } - - private fun parseChapterDate(date: String): Long { - var parsedDate = 0L - try { - parsedDate = SimpleDateFormat("yyyy-MM-dd", Locale.US).parse(date)?.time ?: 0L - } catch (e: ParseException) { /*nothing to do, parsedDate is initialized with 0L*/ } - return parsedDate - } - - // Pages - - override fun pageListParse(document: Document): List { - return document.select("div.container > div > div > img").mapIndexed { i, img -> - Page(i, "", img.attr("abs:src")) - } - } - - override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used") - - // Filters - - override fun getFilterList() = FilterList( - Filter.Header("NOTE: Ignored if using text search!"), - Filter.Separator(), - SortFilter(getSortFilters()), - OTypeFilter(getOTypeFilters()), - GenresSelection(getGenresSelection()), - Filter.Separator(), - Filter.Header("exclusion not available for This source"), - StatusFilter(getStatusFilters()), - TypeFilter(getTypeFilter()), - Filter.Separator(), - Filter.Header("Genre exclusion not available for This source"), - GenreFilter(getGenreFilters()), - ) - - private class SortFilter(vals: Array>) : UriPartFilter("Order by", vals) - private class OTypeFilter(vals: Array>) : UriPartFilter("Order Type", vals) - private class GenresSelection(vals: Array>) : UriPartFilter("Genres Selection", vals) - class Type(name: String, val id: String = name) : Filter.TriState(name) - private class TypeFilter(types: List) : Filter.Group("Type", types) - class Status(name: String, val id: String = name) : Filter.TriState(name) - private class StatusFilter(statuses: List) : Filter.Group("Status", statuses) - class Genre(name: String, val id: String = name) : Filter.TriState(name) - private class GenreFilter(genres: List) : Filter.Group("Genre", genres) - - private fun getSortFilters(): Array> = arrayOf( - Pair("latest", "التحديثات الاخيرة"), - Pair("chapters", "عدد الفصول"), - Pair("release", "تاريخ الاصدار"), - Pair("followers", "المتابعين"), - Pair("rating", "التقييم") - ) - - private fun getOTypeFilters(): Array> = arrayOf( - Pair("desc", "تنازلي"), - Pair("asc", "تصاعدي") - ) - - open fun getStatusFilters(): List = listOf( - Status("مكتملة", "completed"), - Status("مستمرة", "ongoing"), - Status("متوقفة", "cancelled"), - Status("في الانتظار", "onhold") - ) - - open fun getTypeFilter(): List = listOf( - Type("صينية (مانها)", "manhua"), - Type("كورية (مانهوا)", "manhwa"), - Type("انجليزية", "english"), - Type("مانجا (يابانية)", "manga") - ) - - open fun getGenresSelection(): Array> = arrayOf( - Pair("and", "ان تحتوى المانجا على كل تصنيف تم تحديده"), - Pair("or", "ان تحتوي المانجا على تصنيف او اكثر من ما تم تحديده") - ) - - open fun getGenreFilters(): List = listOf( - Genre("اكشن", "1"), - Genre("مغامرة", "2"), - Genre("خيالي", "3"), - Genre("سحر", "4"), - Genre("من ضعيف لقوي", "5"), - Genre("زنزانة", "6"), - Genre("بناء على رواية ويب", "7"), - Genre("فنون قتالية", "8"), - Genre("اعادة البعث", "9"), - Genre("السفر عبر الزمن", "10"), - Genre("رومانسي", "11"), - Genre("كوميدي", "12"), - Genre("الانتقال الى عالم اخر", "13"), - Genre("تاريخي", "14"), - Genre("انتقام", "15"), - Genre("حياة مدرسية", "16"), - Genre("مصاصي دماء", "17"), - Genre("غموض", "18"), - Genre("رعب", "19"), - Genre("دراما", "20"), - Genre("نفسي", "21") - ) - - open class UriPartFilter(displayName: String, private val vals: Array>) : - Filter.Select(displayName, vals.map { it.second }.toTypedArray()) { - fun toUriPart() = vals[state].first - } -} diff --git a/src/en/graphitecomics/AndroidManifest.xml b/src/en/graphitecomics/AndroidManifest.xml deleted file mode 100644 index 30deb7f79..000000000 --- a/src/en/graphitecomics/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/src/en/graphitecomics/build.gradle b/src/en/graphitecomics/build.gradle deleted file mode 100644 index 218cb8c6a..000000000 --- a/src/en/graphitecomics/build.gradle +++ /dev/null @@ -1,12 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'kotlinx-serialization' - -ext { - extName = 'Graphite Comics' - pkgNameSuffix = 'en.graphitecomics' - extClass = '.GraphiteComics' - extVersionCode = 2 -} - -apply from: "$rootDir/common.gradle" diff --git a/src/en/graphitecomics/res/mipmap-hdpi/ic_launcher.png b/src/en/graphitecomics/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 6987be8a9..000000000 Binary files a/src/en/graphitecomics/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/graphitecomics/res/mipmap-mdpi/ic_launcher.png b/src/en/graphitecomics/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index f1d52a210..000000000 Binary files a/src/en/graphitecomics/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/graphitecomics/res/mipmap-xhdpi/ic_launcher.png b/src/en/graphitecomics/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 5c6c35554..000000000 Binary files a/src/en/graphitecomics/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/graphitecomics/res/mipmap-xxhdpi/ic_launcher.png b/src/en/graphitecomics/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 8aabe911e..000000000 Binary files a/src/en/graphitecomics/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/graphitecomics/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/graphitecomics/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index a3f8b488d..000000000 Binary files a/src/en/graphitecomics/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/graphitecomics/res/web_hi_res_512.png b/src/en/graphitecomics/res/web_hi_res_512.png deleted file mode 100644 index 190336413..000000000 Binary files a/src/en/graphitecomics/res/web_hi_res_512.png and /dev/null differ diff --git a/src/en/graphitecomics/src/eu/kanade/tachiyomi/extension/en/graphitecomics/GraphiteComics.kt b/src/en/graphitecomics/src/eu/kanade/tachiyomi/extension/en/graphitecomics/GraphiteComics.kt deleted file mode 100644 index 2d949a083..000000000 --- a/src/en/graphitecomics/src/eu/kanade/tachiyomi/extension/en/graphitecomics/GraphiteComics.kt +++ /dev/null @@ -1,269 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.graphitecomics - -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.POST -import eu.kanade.tachiyomi.network.asObservableSuccess -import eu.kanade.tachiyomi.network.interceptor.rateLimit -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.HttpSource -import kotlinx.serialization.decodeFromString -import kotlinx.serialization.json.Json -import kotlinx.serialization.json.buildJsonObject -import kotlinx.serialization.json.decodeFromJsonElement -import kotlinx.serialization.json.jsonObject -import kotlinx.serialization.json.put -import kotlinx.serialization.json.putJsonObject -import okhttp3.Headers -import okhttp3.HttpUrl.Companion.toHttpUrl -import okhttp3.MediaType.Companion.toMediaTypeOrNull -import okhttp3.OkHttpClient -import okhttp3.Request -import okhttp3.RequestBody.Companion.toRequestBody -import okhttp3.Response -import rx.Observable -import uy.kohesive.injekt.injectLazy -import java.text.SimpleDateFormat -import java.util.Locale -import java.util.concurrent.TimeUnit - -class GraphiteComics : HttpSource() { - - override val name = "Graphite Comics" - - override val baseUrl = "http://graphitecomics.com" - - override val lang = "en" - - override val supportsLatest = false - - override val client: OkHttpClient = network.cloudflareClient.newBuilder() - .rateLimit(2, 1, TimeUnit.SECONDS) - .build() - - private val json: Json by injectLazy() - - override fun headersBuilder(): Headers.Builder = super.headersBuilder() - .add("Accept", ACCEPT_ALL) - .add("Origin", baseUrl) - .add("Referer", "$baseUrl/") - - private fun genericComicBookFromObject(comic: GraphiteComic): SManga = - SManga.create().apply { - title = comic.name - url = "/title/${comic.publisherSlug}/${comic.slug}" - thumbnail_url = comic.logo?.url - } - - override fun popularMangaRequest(page: Int): Request { - val query = buildQuery { - """ - query (%limit: Int) { - topTitles(limit: %limit) { - name - slug - publisher_slug - logo { url } - } - } - """.trimIndent() - } - - val payload = buildJsonObject { - put("query", query) - putJsonObject("variables") { - put("limit", POPULAR_LIMIT) - } - } - - val body = payload.toString().toRequestBody(JSON_MEDIA_TYPE) - - val newHeaders = headersBuilder() - .set("Accept", ACCEPT_JSON) - .add("Content-Length", body.contentLength().toString()) - .add("Content-Type", body.contentType().toString()) - .build() - - return POST(GRAPHQL_URL, newHeaders, body) - } - - override fun popularMangaParse(response: Response): MangasPage { - val result = json.parseToJsonElement(response.body!!.string()).jsonObject - - val comicList = result["data"]!!.jsonObject["topTitles"]!! - .let { json.decodeFromJsonElement>(it) } - .map(::genericComicBookFromObject) - - return MangasPage(comicList, hasNextPage = false) - } - - override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException("Not used") - - override fun latestUpdatesParse(response: Response): MangasPage = throw UnsupportedOperationException("Not used") - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - val searchUrl = "$baseUrl/api/title/search".toHttpUrl().newBuilder() - .addPathSegment(query) - .addQueryParameter("limit", POPULAR_LIMIT.toString()) - .toString() - - val refererUrl = "$baseUrl/s".toHttpUrl().newBuilder() - .addPathSegment(query) - .toString() - - val newHeaders = headersBuilder() - .set("Accept", ACCEPT_JSON) - .set("Referer", refererUrl) - .build() - - return GET(searchUrl, newHeaders) - } - - override fun searchMangaParse(response: Response): MangasPage { - val comicList = json.decodeFromString>(response.body!!.string()) - .map(::genericComicBookFromObject) - - return MangasPage(comicList, hasNextPage = false) - } - - // Workaround to allow "Open in browser" use the real URL. - override fun fetchMangaDetails(manga: SManga): Observable { - return client.newCall(mangaDetailsApiRequest(manga)) - .asObservableSuccess() - .map { response -> - mangaDetailsParse(response).apply { initialized = true } - } - } - - private fun mangaDetailsApiRequest(manga: SManga): Request { - val newHeaders = headersBuilder() - .set("Accept", ACCEPT_JSON) - .set("Referer", baseUrl + manga.url) - .build() - - val publisherSlug = manga.url - .substringAfter("/title/") - .substringBefore("/") - - val comicSlug = manga.url.substringAfterLast("/") - - val apiUrl = "$baseUrl/api/title/find/null/".toHttpUrl().newBuilder() - .addQueryParameter("publisher_slug", publisherSlug) - .addQueryParameter("slug", comicSlug) - .toString() - - return GET(apiUrl, newHeaders) - } - - override fun mangaDetailsParse(response: Response): SManga = SManga.create().apply { - val comic = json.decodeFromString(response.body!!.string()) - - title = comic.name - author = comic.creator.joinToString(", ") { it.name } - description = comic.description - genre = comic.genres - .sortedBy { it.name } - .joinToString(", ") { it.name } - thumbnail_url = comic.logo?.url - } - - override fun chapterListRequest(manga: SManga): Request = mangaDetailsApiRequest(manga) - - private fun issueListRequest(comicId: String, comicUrl: String): Request { - val newHeaders = headersBuilder() - .set("Accept", ACCEPT_JSON) - .set("Referer", baseUrl + comicUrl) - .build() - - return GET("$baseUrl/api/title/issues/$comicId", newHeaders) - } - - override fun chapterListParse(response: Response): List { - // Need to get the comic id first to fetch the issues. - val comic = json.decodeFromString(response.body!!.string()) - val comicUrl = "/title/${comic.publisherSlug}/${comic.slug}" - - val issueRequest = issueListRequest(comic.id, comicUrl) - val issueResponse = client.newCall(issueRequest).execute() - val issues = json.decodeFromString>(issueResponse.body!!.string()) - - return issues - .sortedBy { issue -> issue.volumeNumber * 10 + issue.number } - .filter { issue -> issue.accessRule.isNullOrBlank() } - .map { issue -> chapterFromObject(issue, comic) } - .reversed() - } - - private fun chapterFromObject(issue: GraphiteIssue, comic: GraphiteComic): SChapter = - SChapter.create().apply { - name = "${issue.number} - ${issue.name}" - scanlator = comic.publisher?.name - date_upload = issue.createdAt.toDate() - url = "/issue/${comic.publisherSlug}/${comic.slug}/${issue.slug}" - } - - override fun pageListRequest(chapter: SChapter): Request { - val newHeaders = headersBuilder() - .set("Accept", ACCEPT_JSON) - .set("Referer", baseUrl + chapter.url) - .build() - - val urlPaths = chapter.url - .removePrefix("/issue/") - .split("/") - - val apiUrl = "$baseUrl/api/issue/find/null/".toHttpUrl().newBuilder() - .addQueryParameter("publisher_slug", urlPaths[0]) - .addQueryParameter("title_slug", urlPaths[1]) - .addQueryParameter("slug", urlPaths[2]) - .toString() - - return GET(apiUrl, newHeaders) - } - - override fun pageListParse(response: Response): List { - val issue = json.decodeFromString(response.body!!.string()) - val issueUrl = "$baseUrl/issue/${issue.publisherSlug}/${issue.titleSlug}/${issue.slug}" - - return issue.pages - .mapIndexed { i, page -> - Page(i, "$issueUrl/${i + 1}", "$baseUrl/api/page/image/${page.id}") - } - } - - override fun imageUrlParse(response: Response): String = "" - - override fun imageRequest(page: Page): Request { - val newHeaders = headersBuilder() - .add("Accept", ACCEPT_IMAGE) - .add("Host", baseUrl.toHttpUrl().host) - .set("Referer", page.url) - .build() - - return GET(page.imageUrl!!, newHeaders) - } - - private fun buildQuery(queryAction: () -> String) = queryAction().replace("%", "$") - - private fun String.toDate(): Long { - return runCatching { DATE_FORMATTER.parse(substringBefore("T"))?.time } - .getOrNull() ?: 0L - } - - companion object { - private const val ACCEPT_ALL = "*/*" - private const val ACCEPT_JSON = "application/json, text/plain, */*" - private const val ACCEPT_IMAGE = "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8" - - private const val GRAPHQL_URL = "https://graphitecomics.com/graphql" - - private const val POPULAR_LIMIT = 50 - - private val JSON_MEDIA_TYPE = "application/json; charset=utf-8".toMediaTypeOrNull() - - private val DATE_FORMATTER by lazy { SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH) } - } -} diff --git a/src/en/graphitecomics/src/eu/kanade/tachiyomi/extension/en/graphitecomics/GraphiteComicsDto.kt b/src/en/graphitecomics/src/eu/kanade/tachiyomi/extension/en/graphitecomics/GraphiteComicsDto.kt deleted file mode 100644 index 4a0cd147d..000000000 --- a/src/en/graphitecomics/src/eu/kanade/tachiyomi/extension/en/graphitecomics/GraphiteComicsDto.kt +++ /dev/null @@ -1,56 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.graphitecomics - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class GraphiteComic( - val creator: List = emptyList(), - val description: String = "", - val genres: List = emptyList(), - @SerialName("objectId") val id: String = "", - val logo: GraphiteComicImage? = null, - val name: String = "", - val publisher: GraphitePublisher? = null, - @SerialName("publisher_slug") val publisherSlug: String = "", - val slug: String = "" -) - -@Serializable -data class GraphiteComicImage( - val url: String = "" -) - -@Serializable -data class GraphitePerson( - val name: String = "" -) - -@Serializable -data class GraphiteGenre( - @SerialName("genreName") val name: String = "" -) - -@Serializable -data class GraphitePublisher( - val name: String = "" -) - -@Serializable -data class GraphiteIssue( - val accessRule: String? = "", - val createdAt: String = "", - val name: String = "", - val number: Int = -1, - val pages: List = emptyList(), - @SerialName("publisher_slug") val publisherSlug: String = "", - val slug: String = "", - @SerialName("title_slug") val titleSlug: String = "", - @SerialName("volume_number") val volumeNumber: Int = -1 -) - -@Serializable -data class GraphitePage( - @SerialName("objectId") val id: String = "", - val isEncrypted: Boolean = false -) diff --git a/src/fr/kangaryu/AndroidManifest.xml b/src/fr/kangaryu/AndroidManifest.xml deleted file mode 100644 index 30deb7f79..000000000 --- a/src/fr/kangaryu/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/src/fr/kangaryu/build.gradle b/src/fr/kangaryu/build.gradle deleted file mode 100644 index 3c4b6361d..000000000 --- a/src/fr/kangaryu/build.gradle +++ /dev/null @@ -1,12 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'kotlinx-serialization' - -ext { - extName = 'Kangaryu' - pkgNameSuffix = 'fr.kangaryu' - extClass = '.Kangaryu' - extVersionCode = 3 -} - -apply from: "$rootDir/common.gradle" diff --git a/src/fr/kangaryu/res/mipmap-hdpi/ic_launcher.png b/src/fr/kangaryu/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 4d40f2e4e..000000000 Binary files a/src/fr/kangaryu/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/fr/kangaryu/res/mipmap-mdpi/ic_launcher.png b/src/fr/kangaryu/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 7e72a1463..000000000 Binary files a/src/fr/kangaryu/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/fr/kangaryu/res/mipmap-xhdpi/ic_launcher.png b/src/fr/kangaryu/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index f143706e0..000000000 Binary files a/src/fr/kangaryu/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/fr/kangaryu/res/mipmap-xxhdpi/ic_launcher.png b/src/fr/kangaryu/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index e08bb9f80..000000000 Binary files a/src/fr/kangaryu/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/fr/kangaryu/res/mipmap-xxxhdpi/ic_launcher.png b/src/fr/kangaryu/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index f8da38822..000000000 Binary files a/src/fr/kangaryu/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/fr/kangaryu/res/web_hi_res_512.png b/src/fr/kangaryu/res/web_hi_res_512.png deleted file mode 100644 index 37e5542f8..000000000 Binary files a/src/fr/kangaryu/res/web_hi_res_512.png and /dev/null differ diff --git a/src/fr/kangaryu/src/eu/kanade/tachiyomi/extension/fr/kangaryu/Kangaryu.kt b/src/fr/kangaryu/src/eu/kanade/tachiyomi/extension/fr/kangaryu/Kangaryu.kt deleted file mode 100644 index 3465a342d..000000000 --- a/src/fr/kangaryu/src/eu/kanade/tachiyomi/extension/fr/kangaryu/Kangaryu.kt +++ /dev/null @@ -1,155 +0,0 @@ -package eu.kanade.tachiyomi.extension.fr.kangaryu - -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 kotlinx.serialization.json.Json -import kotlinx.serialization.json.jsonArray -import kotlinx.serialization.json.jsonObject -import kotlinx.serialization.json.jsonPrimitive -import okhttp3.OkHttpClient -import okhttp3.Request -import okhttp3.Response -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import uy.kohesive.injekt.injectLazy -import java.text.SimpleDateFormat -import java.util.Locale - -class Kangaryu : ParsedHttpSource() { - - override val name = "Kangaryu" - - override val baseUrl = "https://kangaryu-team.fr" - - override val lang = "fr" - - override val supportsLatest = true - - override val client: OkHttpClient = network.cloudflareClient - - // used to be in FoolSlide - override val versionId = 2 - - // Popular - - override fun popularMangaRequest(page: Int): Request { - return GET("$baseUrl/manga-list", headers) - } - - override fun popularMangaSelector() = "div.l-card" - - override fun popularMangaFromElement(element: Element): SManga { - return SManga.create().apply { - element.select("div.card-image").let { - setUrlWithoutDomain(it.select("a").attr("href")) - thumbnail_url = it.select("img").attr("abs:src") - } - - title = element.select("a.chart-title").text() - } - } - - override fun popularMangaNextPageSelector(): String? = null - - // Latest - - override fun latestUpdatesRequest(page: Int): Request { - return GET(baseUrl, headers) - } - - override fun latestUpdatesParse(response: Response): MangasPage { - return MangasPage(super.latestUpdatesParse(response).mangas.distinctBy { it.url }, false) - } - - override fun latestUpdatesSelector() = "div.events" - - override fun latestUpdatesFromElement(element: Element): SManga { - return SManga.create().apply { - element.select("div.manga-chap a").let { - setUrlWithoutDomain(it.attr("href")) - title = it.text() - } - thumbnail_url = element.select("img").attr("abs:src") - } - } - - override fun latestUpdatesNextPageSelector(): String? = null - - // Search - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - return GET("$baseUrl/search?query=$query", headers) - } - - private val json: Json by injectLazy() - - override fun searchMangaParse(response: Response): MangasPage { - val mangas = json.parseToJsonElement(response.body!!.string()).jsonObject["suggestions"]!!.jsonArray.map { - val data = it.jsonObject["data"]!!.jsonPrimitive.content - SManga.create().apply { - url = "/manga/$data" - title = it.jsonObject["value"]!!.jsonPrimitive.content - thumbnail_url = "https://kangaryu-team.fr/uploads/manga/$data/cover/cover_250x350.jpg" - } - } - return MangasPage(mangas, false) - } - - override fun searchMangaSelector() = throw UnsupportedOperationException("Not used") - override fun searchMangaFromElement(element: Element): SManga = throw UnsupportedOperationException("Not used") - override fun searchMangaNextPageSelector() = throw UnsupportedOperationException("Not used") - - // Details - - override fun mangaDetailsParse(document: Document): SManga { - return SManga.create().apply { - thumbnail_url = document.select("div.boxed img").attr("abs:src") - with(document.select("div.col-sm-12 div.col-sm-8")) { - status = select("span.label").text().toStatus() - author = select("dd a[href*=author]").text() - artist = select("dd a[href*=artist]").text() - genre = select("dd a[href*=category]").joinToString { it.text() } - } - description = document.select("div.col-lg-12 p").text() - } - } - - private fun String.toStatus() = when { - this.contains("En cours", ignoreCase = true) -> SManga.ONGOING - this.contains("Terminé", ignoreCase = true) -> SManga.COMPLETED - else -> SManga.UNKNOWN - } - - // Chapters - - override fun chapterListSelector() = "ul.chapters li:not([data-volume])" - - override fun chapterFromElement(element: Element): SChapter { - return SChapter.create().apply { - name = element.select("h5.chapter-title-rtl").text() - setUrlWithoutDomain(element.select("h5 a").attr("href")) - date_upload = element.select("div.date-chapter-title-rtl").text().toDate() - } - } - - private val dateFormat by lazy { SimpleDateFormat("dd/MM/yy", Locale.getDefault()) } - - private fun String.toDate(): Long { - return dateFormat.parse(this)?.time ?: 0 - } - - // Pages - - override fun pageListParse(document: Document): List { - return document.select("div#all img").mapIndexed { i, img -> - Page(i, "", img.attr("abs:data-src")) - } - } - - override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used") -}