diff --git a/src/en/mangareader/AndroidManifest.xml b/src/en/mangareader/AndroidManifest.xml deleted file mode 100644 index 30deb7f79..000000000 --- a/src/en/mangareader/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<manifest package="eu.kanade.tachiyomi.extension" /> diff --git a/src/en/mangareader/build.gradle b/src/en/mangareader/build.gradle deleted file mode 100644 index f27b001ab..000000000 --- a/src/en/mangareader/build.gradle +++ /dev/null @@ -1,12 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' - -ext { - extName = 'Mangareader & Mangapanda' - pkgNameSuffix = 'en.mangareader' - extClass = '.MRPFactory' - extVersionCode = 7 - libVersion = '1.2' -} - -apply from: "$rootDir/common.gradle" diff --git a/src/en/mangareader/res/mipmap-hdpi/ic_launcher.png b/src/en/mangareader/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 69ab2f53f..000000000 Binary files a/src/en/mangareader/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/mangareader/res/mipmap-mdpi/ic_launcher.png b/src/en/mangareader/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 92caec884..000000000 Binary files a/src/en/mangareader/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/mangareader/res/mipmap-xhdpi/ic_launcher.png b/src/en/mangareader/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 0a253034b..000000000 Binary files a/src/en/mangareader/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/mangareader/res/mipmap-xxhdpi/ic_launcher.png b/src/en/mangareader/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index a925b50b8..000000000 Binary files a/src/en/mangareader/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/mangareader/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/mangareader/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 98bfd8127..000000000 Binary files a/src/en/mangareader/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/mangareader/res/web_hi_res_512.png b/src/en/mangareader/res/web_hi_res_512.png deleted file mode 100644 index 070a62ca4..000000000 Binary files a/src/en/mangareader/res/web_hi_res_512.png and /dev/null differ diff --git a/src/en/mangareader/src/eu/kanade/tachiyomi/extension/en/mangareader/MRP.kt b/src/en/mangareader/src/eu/kanade/tachiyomi/extension/en/mangareader/MRP.kt deleted file mode 100644 index 683ae054a..000000000 --- a/src/en/mangareader/src/eu/kanade/tachiyomi/extension/en/mangareader/MRP.kt +++ /dev/null @@ -1,151 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.mangareader - -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.source.model.FilterList -import eu.kanade.tachiyomi.source.model.MangasPage -import eu.kanade.tachiyomi.source.model.Page -import eu.kanade.tachiyomi.source.model.SChapter -import eu.kanade.tachiyomi.source.model.SManga -import eu.kanade.tachiyomi.source.online.ParsedHttpSource -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient -import okhttp3.Request -import okhttp3.Response -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import java.text.SimpleDateFormat -import java.util.Locale - -abstract class MRP( - override val name: String, - override val baseUrl: String -) : ParsedHttpSource() { - - override val lang = "en" - - override val supportsLatest = true - - override val client: OkHttpClient = network.cloudflareClient - - override fun popularMangaRequest(page: Int): Request { - return GET("$baseUrl/popular" + if (page > 1) "/${(page - 1) * 30}" else "", headers) - } - - override fun popularMangaSelector() = "div.mangaresultitem" - - override fun popularMangaFromElement(element: Element): SManga { - val manga = SManga.create() - element.select("h3 a").first().let { - manga.url = it.attr("href") - manga.title = it.ownText() - } - manga.thumbnail_url = element.select("div.imgsearchresults").first().toString().substringAfter("url('").substringBefore("')\">") - return manga - } - - override fun popularMangaNextPageSelector() = "div#sp strong + a" - - private var nextLatestPage: String? = null - - override fun latestUpdatesRequest(page: Int): Request { - return if (page == 1) { - nextLatestPage = null - GET("$baseUrl/latest", headers) - } else { - GET(nextLatestPage!!, headers) - } - } - - override fun latestUpdatesParse(response: Response): MangasPage { - val document = response.asJsoup() - - val mangas = document.select(latestUpdatesSelector()).map { latestUpdatesFromElement(it) } - nextLatestPage = document.select(latestUpdatesNextPageSelector()).firstOrNull()?.attr("abs:href") - - return MangasPage(mangas, nextLatestPage != null) - } - - override fun latestUpdatesSelector() = "tr.c3" - - override fun latestUpdatesFromElement(element: Element): SManga { - val manga = SManga.create() - element.select("a.chapter").first().let { - manga.url = it.attr("href") - manga.title = it.text() - } - return manga - } - - override fun latestUpdatesNextPageSelector() = popularMangaNextPageSelector() - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - return GET("$baseUrl/search/?w=$query" + if (page > 1) "&p=${(page - 1) * 30}" else "", headers) - } - - override fun searchMangaSelector() = popularMangaSelector() - - override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element) - - override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() - - override fun mangaDetailsParse(document: Document): SManga { - val infoElement = document.select("div#mangaproperties") - - val manga = SManga.create() - manga.title = infoElement.select("h1").text() - manga.author = infoElement.select("td.propertytitle:containsOwn(author) + td").text() - manga.artist = infoElement.select("td.propertytitle:containsOwn(artist) + td").text() - val status = infoElement.select("td.propertytitle:containsOwn(status) + td").text() - manga.status = parseStatus(status) - manga.genre = infoElement.select("td.propertytitle:containsOwn(genre) + td a").joinToString { it.text() } - manga.description = document.select("div#readmangasum p").text() - manga.thumbnail_url = document.select("img").attr("src") - return manga - } - - protected fun parseStatus(status: String?) = when { - status == null -> SManga.UNKNOWN - status.contains("Ongoing") -> SManga.ONGOING - status.contains("Completed") -> SManga.COMPLETED - else -> SManga.UNKNOWN - } - - // Site orders chapters oldest to newest, reverse that to be in line with most other sources - override fun chapterListParse(response: Response): List<SChapter> { - return super.chapterListParse(response).reversed() - } - - override fun chapterListSelector() = "table#listing tr:not(.table_head)" - - override fun chapterFromElement(element: Element): SChapter { - val chapter = SChapter.create() - element.select("a").let { - chapter.setUrlWithoutDomain(it.attr("href")) - chapter.name = it.text() - } - chapter.date_upload = parseDate(element.select("td + td").text()) - return chapter - } - - private fun parseDate(date: String): Long { - return SimpleDateFormat("MM/dd/yyyy", Locale.US).parse(date)?.time ?: 0 - } - - override fun pageListParse(document: Document): List<Page> { - val pages = mutableListOf<Page>() - - val chapterUrl = document.select("select#pageMenu option").attr("value") + "/" - document.select("select#pageMenu").text().split(" ").forEach { - pages.add(Page(pages.size, "$chapterUrl$it")) - } - return pages - } - - // Get the page - override fun imageUrlRequest(page: Page) = GET(baseUrl + page.url) - - // Get the image from the requested page - override fun imageUrlParse(document: Document): String { - return document.select("a img").attr("abs:src") - } -} diff --git a/src/en/mangareader/src/eu/kanade/tachiyomi/extension/en/mangareader/MRPFactory.kt b/src/en/mangareader/src/eu/kanade/tachiyomi/extension/en/mangareader/MRPFactory.kt deleted file mode 100644 index 7e011f738..000000000 --- a/src/en/mangareader/src/eu/kanade/tachiyomi/extension/en/mangareader/MRPFactory.kt +++ /dev/null @@ -1,60 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.mangareader - -import com.github.salomonbrys.kotson.fromJson -import com.github.salomonbrys.kotson.get -import com.github.salomonbrys.kotson.string -import com.google.gson.Gson -import com.google.gson.JsonObject -import eu.kanade.tachiyomi.source.Source -import eu.kanade.tachiyomi.source.SourceFactory -import eu.kanade.tachiyomi.source.model.Page -import eu.kanade.tachiyomi.source.model.SManga -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element - -class MRPFactory : SourceFactory { - override fun createSources(): List<Source> = listOf( - Mangareader(), - Mangapanda() - ) -} - -class Mangareader : MRP("Mangareader", "https://www.mangareader.net") { - override fun popularMangaSelector() = "div > div > table" - override fun popularMangaFromElement(element: Element): SManga { - return SManga.create().apply { - element.select("a").let { - setUrlWithoutDomain(it.attr("href")) - title = it.text() - } - thumbnail_url = element.select("div[data-src]").attr("abs:data-src") - } - } - override fun popularMangaNextPageSelector() = "li:has(.pcur) + li a" - override fun latestUpdatesSelector() = "div:has(i) + div div > a" - override fun latestUpdatesFromElement(element: Element): SManga { - return SManga.create().apply { - setUrlWithoutDomain(element.attr("href")) - title = element.text() - } - } - override fun mangaDetailsParse(document: Document): SManga { - return SManga.create().apply { - thumbnail_url = document.select("div > img[alt]").attr("abs:src") - status = parseStatus(document.select("div > table tr td:contains(Status:) + td").text()) - author = document.select("div > table tr td:contains(Author:) + td").text() - artist = document.select("div > table tr td:contains(Artist:) + td").text() - genre = document.select("div > table tr td:contains(Genre:) + td").joinToString { it.text() } - description = document.select("div > div + p").text() - } - } - override fun chapterListSelector() = "tr:has(i)" - private val gson by lazy { Gson() } - override fun pageListParse(document: Document): List<Page> { - val script = document.select("script:containsData(document[)").firstOrNull()?.data() ?: throw Exception("script not found") - return gson.fromJson<JsonObject>(script.substringAfterLast("="))["im"].asJsonArray.mapIndexed { i, json -> - Page(i, "", "https:" + json["u"].string) - } - } -} -class Mangapanda : MRP("Mangapanda", "http://www.mangapanda.com")