diff --git a/src/en/readjump/AndroidManifest.xml b/src/en/readjump/AndroidManifest.xml deleted file mode 100644 index 30deb7f79..000000000 --- a/src/en/readjump/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/src/en/readjump/build.gradle b/src/en/readjump/build.gradle deleted file mode 100644 index 1cc72f88e..000000000 --- a/src/en/readjump/build.gradle +++ /dev/null @@ -1,12 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' - -ext { - extName = 'Readjump' - pkgNameSuffix = 'en.readjump' - extClass = '.Readjump' - extVersionCode = 1 - libVersion = '1.2' -} - -apply from: "$rootDir/common.gradle" diff --git a/src/en/readjump/res/mipmap-hdpi/ic_launcher.png b/src/en/readjump/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index e4dde8de1..000000000 Binary files a/src/en/readjump/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/readjump/res/mipmap-mdpi/ic_launcher.png b/src/en/readjump/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 4bf376814..000000000 Binary files a/src/en/readjump/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/readjump/res/mipmap-xhdpi/ic_launcher.png b/src/en/readjump/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 9b7370a02..000000000 Binary files a/src/en/readjump/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/readjump/res/mipmap-xxhdpi/ic_launcher.png b/src/en/readjump/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index e4fde2454..000000000 Binary files a/src/en/readjump/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/readjump/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/readjump/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index a80896a30..000000000 Binary files a/src/en/readjump/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/readjump/res/web_hi_res_512.png b/src/en/readjump/res/web_hi_res_512.png deleted file mode 100644 index 6603ce625..000000000 Binary files a/src/en/readjump/res/web_hi_res_512.png and /dev/null differ diff --git a/src/en/readjump/src/eu/kanade/tachiyomi/extension/en/readjump/Readjump.kt b/src/en/readjump/src/eu/kanade/tachiyomi/extension/en/readjump/Readjump.kt deleted file mode 100644 index c9ab35fa7..000000000 --- a/src/en/readjump/src/eu/kanade/tachiyomi/extension/en/readjump/Readjump.kt +++ /dev/null @@ -1,198 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.readjump - -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.asObservableSuccess -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 java.util.Calendar - -class Readjump : ParsedHttpSource() { - - override val name = "Readjump" - - override val baseUrl = "https://readjump.com" - - override val lang = "en" - - override val supportsLatest = true - - override val client: OkHttpClient = network.cloudflareClient - - // Popular - - override fun popularMangaRequest(page: Int): Request { - return GET("$baseUrl/mangas", headers) - } - - override fun popularMangaSelector() = "div.h-left a" - - override fun popularMangaFromElement(element: Element): SManga { - val manga = SManga.create() - - manga.setUrlWithoutDomain(element.attr("href")) - manga.title = element.select("div.hmi-titre").text() - manga.thumbnail_url = element.select("img").attr("abs:src") - - return manga - } - - override fun popularMangaNextPageSelector() = "Not needed" - - // Latest - - override fun latestUpdatesRequest(page: Int): Request { - return GET(baseUrl, headers) - } - - override fun latestUpdatesParse(response: Response): MangasPage { - val document = response.asJsoup() - val mangas = mutableListOf() - - document.select(latestUpdatesSelector()).map { mangas.add(latestUpdatesFromElement(it)) } - - return MangasPage(mangas.distinctBy { it.url }, false) - } - - override fun latestUpdatesSelector() = "div.h-left > div.home-manga" - - override fun latestUpdatesFromElement(element: Element): SManga { - val manga = SManga.create() - - manga.setUrlWithoutDomain(element.select("div.hmi-titre a").first().attr("abs:href")) - manga.title = element.select("div.hmi-titre a").first().text() - manga.thumbnail_url = element.select("img").attr("abs:src") - - return manga - } - - override fun latestUpdatesNextPageSelector() = "not needed" - - // Search - - override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { - return client.newCall(searchMangaRequest(page, query, filters)) - .asObservableSuccess() - .map { response -> - searchMangaParse(response, query) - } - } - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request = popularMangaRequest(1) - - private fun searchMangaParse(response: Response, query: String): MangasPage { - return MangasPage(popularMangaParse(response).mangas.filter { it.title.contains(query, ignoreCase = true) }, 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 { - val manga = SManga.create() - - document.select("div.mf-info").let { - manga.thumbnail_url = it.select("div.poster img").attr("abs:src") - } - document.select("div#chap-top").let { - manga.title = it.select("div.titre").text() - manga.description = it.select("div.synopsis").text() - } - document.select("div.info").let { - manga.status = parseStatus(it.select("div.sub-i:last-of-type span").text()) - } - return manga - } - - private fun parseStatus(status: String) = when { - status.contains("Ongoing") -> SManga.ONGOING - status.contains("Completed") -> SManga.COMPLETED - else -> SManga.UNKNOWN - } - - // Chapters - - override fun chapterListSelector() = "div.chapitre" - - override fun chapterFromElement(element: Element): SChapter { - val chapter = SChapter.create() - chapter.setUrlWithoutDomain(element.select("div.ch-right a.chr-button:last-of-type").attr("href")) - chapter.name = element.select("div.ch-left div.chl-titre").text() - chapter.date_upload = parseChapterDate(element.select("div.chl-date").text()) - return chapter - } - - private fun parseChapterDate(date: String): Long { - val value = date.split(" ")[0].toIntOrNull() - - return if (value != null) { - when (date.split(" ")[1]) { - "minute", "minutes" -> Calendar.getInstance().apply { - add(Calendar.MINUTE, value * -1) - set(Calendar.SECOND, 0) - set(Calendar.MILLISECOND, 0) - }.timeInMillis - "hour", "hours" -> Calendar.getInstance().apply { - add(Calendar.HOUR_OF_DAY, value * -1) - set(Calendar.SECOND, 0) - set(Calendar.MILLISECOND, 0) - }.timeInMillis - "day", "days" -> Calendar.getInstance().apply { - add(Calendar.DATE, value * -1) - set(Calendar.SECOND, 0) - set(Calendar.MILLISECOND, 0) - }.timeInMillis - "week", "weeks" -> Calendar.getInstance().apply { - add(Calendar.DATE, value * 7 * -1) - set(Calendar.SECOND, 0) - set(Calendar.MILLISECOND, 0) - }.timeInMillis - "month" -> Calendar.getInstance().apply { - add(Calendar.MONTH, value * -1) - set(Calendar.SECOND, 0) - set(Calendar.MILLISECOND, 0) - }.timeInMillis - "year", "years" -> Calendar.getInstance().apply { - add(Calendar.YEAR, value * -1) - set(Calendar.SECOND, 0) - set(Calendar.MILLISECOND, 0) - }.timeInMillis - else -> { - return 0L - } - } - } else { - return 0L - } - } - - // Pages - - override fun pageListParse(document: Document): List { - val pages = mutableListOf() - - document.select("div.sc-lel img[id]").forEachIndexed { i, img -> - pages.add(Page(i, "", img.attr("abs:data-src"))) - } - - return pages - } - - override fun imageUrlParse(document: Document) = throw UnsupportedOperationException("Not used") - - override fun getFilterList() = FilterList() -}