diff --git a/src/en/mangakisa/build.gradle b/src/en/mangakisa/build.gradle deleted file mode 100644 index 9517e0201..000000000 --- a/src/en/mangakisa/build.gradle +++ /dev/null @@ -1,12 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' - -ext { - extName = 'MangaKisa' - pkgNameSuffix = 'en.mangakisa' - extClass = '.MangaKisa' - extVersionCode = 3 - libVersion = '1.2' -} - -apply from: "$rootDir/common.gradle" diff --git a/src/en/mangakisa/res/mipmap-hdpi/ic_launcher.png b/src/en/mangakisa/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index bec4e75cb..000000000 Binary files a/src/en/mangakisa/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/mangakisa/res/mipmap-mdpi/ic_launcher.png b/src/en/mangakisa/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 20e39e9de..000000000 Binary files a/src/en/mangakisa/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/mangakisa/res/mipmap-xhdpi/ic_launcher.png b/src/en/mangakisa/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index b066ab147..000000000 Binary files a/src/en/mangakisa/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/mangakisa/res/mipmap-xxhdpi/ic_launcher.png b/src/en/mangakisa/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 4de949ba4..000000000 Binary files a/src/en/mangakisa/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/mangakisa/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/mangakisa/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 885bbbe94..000000000 Binary files a/src/en/mangakisa/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/mangakisa/res/web_hi_res_512.png b/src/en/mangakisa/res/web_hi_res_512.png deleted file mode 100644 index 84c77b01d..000000000 Binary files a/src/en/mangakisa/res/web_hi_res_512.png and /dev/null differ diff --git a/src/en/mangakisa/src/eu/kanade/tachiyomi/extension/en/mangakisa/MangaKisa.kt b/src/en/mangakisa/src/eu/kanade/tachiyomi/extension/en/mangakisa/MangaKisa.kt deleted file mode 100644 index a6d51b196..000000000 --- a/src/en/mangakisa/src/eu/kanade/tachiyomi/extension/en/mangakisa/MangaKisa.kt +++ /dev/null @@ -1,265 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.mangakisa - -import android.app.Application -import android.content.SharedPreferences -import android.net.Uri -import android.support.v7.preference.ListPreference -import android.support.v7.preference.PreferenceScreen -import eu.kanade.tachiyomi.network.GET -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.Page -import eu.kanade.tachiyomi.source.model.SChapter -import eu.kanade.tachiyomi.source.model.SManga -import eu.kanade.tachiyomi.source.online.ParsedHttpSource -import java.util.concurrent.TimeUnit -import okhttp3.OkHttpClient -import okhttp3.Request -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get - -class MangaKisa : ConfigurableSource, ParsedHttpSource() { - - override val name = "MangaKisa" - override val baseUrl = "https://mangakisa.com" - override val lang = "en" - override val supportsLatest = true - override val client: OkHttpClient = network.cloudflareClient.newBuilder() - .connectTimeout(1, TimeUnit.MINUTES) - .readTimeout(1, TimeUnit.MINUTES) - .retryOnConnectionFailure(true) - .followRedirects(true) - .build()!! - - private val preferences: SharedPreferences by lazy { - Injekt.get().getSharedPreferences("source_$id", 0x0000) - } - - override fun popularMangaSelector() = "div.listanimes a.an" - override fun latestUpdatesSelector() = ".episode-box-2" - override fun searchMangaSelector() = "div.iepbox a.an" - override fun chapterListSelector() = ".infoepbox > a" - - override fun popularMangaNextPageSelector() = "div:containsOwn(Next Page >)" - override fun latestUpdatesNextPageSelector() = popularMangaNextPageSelector() - override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() - - override fun popularMangaRequest(page: Int): Request { - val page0 = page - 1 - val popselect = getpoppref() - return GET("$baseUrl/$popselect/$page0", headers) - } - override fun latestUpdatesRequest(page: Int): Request { - val page0 = page - 1 - val latestselect = getlastestpref() - return GET("$baseUrl/$latestselect/$page0", headers) - } - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - val page0 = page - 1 - val uri = if (query.isNotBlank()) { - Uri.parse("$baseUrl/search?q=$query").buildUpon() - } else { - val uri = Uri.parse("$baseUrl/").buildUpon() - // Append uri filters - filters.forEach { - if (it is UriFilter) - it.addToUri(uri) - } - uri.appendPath("$page0") - } - return GET(uri.toString(), headers) - } - - override fun popularMangaFromElement(element: Element) = mangaFromElement(element) - override fun latestUpdatesFromElement(element: Element) = mangaFromElement(element) - override fun searchMangaFromElement(element: Element) = mangaFromElement(element) - private fun mangaFromElement(element: Element): SManga { - val manga = SManga.create() - manga.setUrlWithoutDomain(element.select(".an").first().attr("href")) - manga.title = element.select("img").attr("alt").trim() - manga.thumbnail_url = baseUrl + element.select("img").attr("src") - return manga - } - - override fun chapterFromElement(element: Element): SChapter { - return SChapter.create().apply { - setUrlWithoutDomain(element.attr("abs:href")) - name = element.text() - date_upload = "${element.select("time").attr("time")}000".toLongOrNull() ?: 0 - } - } - - override fun mangaDetailsParse(document: Document): SManga { - val manga = SManga.create() - manga.title = document.select(".infopicbox > img").attr("alt").trim() - manga.artist = document.select(".textc > a[href*=authors]").text().trim() - manga.author = document.select(".textc > a[href*=authors]").text().trim() - manga.description = document.select(".infodes2").first().text() - manga.genre = document.select("a.infoan[href*=genres]").joinToString(", ") { it.text() } - manga.status = when (document.select(".textc:contains(Ongoing), .textc:contains(Completed)")?.first()?.text()) { - "Ongoing" -> SManga.ONGOING - "Completed" -> SManga.COMPLETED - else -> SManga.UNKNOWN - } - manga.thumbnail_url = document.select(".infopicbox > img").attr("abs:src") - return manga - } - - override fun pageListParse(document: Document): List { - return document.select("div.vertical_div > div img").mapIndexed { i, img -> - Page(i, "", img.attr("abs:src")) - } - } - - override fun imageUrlParse(document: Document) = throw Exception("Not used") - - // Filter List Code - override fun getFilterList() = FilterList( - Filter.Header("NOTE: Ignored if using text search!"), - Filter.Separator(), - GenreFilter() - ) - - private open class UriSelectFilter( - displayName: String, - val uriParam: String, - val vals: Array>, - val firstIsUnspecified: Boolean = true, - defaultValue: Int = 0 - ) : - Filter.Select(displayName, vals.map { it.second }.toTypedArray(), defaultValue), UriFilter { - override fun addToUri(uri: Uri.Builder) { - if (state != 0 || !firstIsUnspecified) - uri.appendPath(uriParam) - .appendPath(vals[state].first) - } - } - - private interface UriFilter { - fun addToUri(uri: Uri.Builder) - } - - private class GenreFilter : UriSelectFilter("Genre", "genres", arrayOf( - Pair("all", "ALL"), - Pair("action", "Action "), - Pair("adult", "Adult "), - Pair("adventure", "Adventure "), - Pair("comedy", "Comedy "), - Pair("cooking", "Cooking "), - Pair("doujinshi", "Doujinshi "), - Pair("drama", "Drama "), - Pair("ecchi", "Ecchi "), - Pair("fantasy", "Fantasy "), - Pair("gender-bender", "Gender Bender "), - Pair("harem", "Harem "), - Pair("historical", "Historical "), - Pair("horror", "Horror "), - Pair("isekai", "Isekai "), - Pair("josei", "Josei "), - Pair("manhua", "Manhua "), - Pair("manhwa", "Manhwa "), - Pair("martial-arts", "Martial Arts "), - Pair("mature", "Mature "), - Pair("mecha", "Mecha "), - Pair("medical", "Medical "), - Pair("mystery", "Mystery "), - Pair("one-shot", "One Shot "), - Pair("psychological", "Psychological "), - Pair("romance", "Romance "), - Pair("school-life", "School Life "), - Pair("sci-fi", "Sci Fi "), - Pair("seinen", "Seinen "), - Pair("shoujo", "Shoujo "), - Pair("shoujo-ai", "Shoujo Ai "), - Pair("shounen", "Shounen "), - Pair("shounen-ai", "Shounen Ai "), - Pair("slice-of-life", "Slice Of Life "), - Pair("smut", "Smut "), - Pair("sports", "Sports "), - Pair("supernatural", "Supernatural "), - Pair("tragedy", "Tragedy "), - Pair("webtoons", "Webtoons "), - Pair("yaoi", "Yaoi "), - Pair("yuri", "Yuri ") - )) - - // Preferences Code - override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { - val popularmangapref = androidx.preference.ListPreference(screen.context).apply { - key = BROWSE_PREF_Title - title = BROWSE_PREF_Title - entries = arrayOf("Weekly", "All Time") - entryValues = arrayOf("popular", "popular-alltime") - summary = "%s" - - setOnPreferenceChangeListener { _, newValue -> - val selected = newValue as String - val index = this.findIndexOfValue(selected) - val entry = entryValues[index] as String - preferences.edit().putString(BROWSE_PREF, entry).commit() - } - } - val latestmangapref = androidx.preference.ListPreference(screen.context).apply { - key = LATEST_PREF_Title - title = LATEST_PREF_Title - entries = arrayOf("Popular Updates", "All Updates") - entryValues = arrayOf("latest", "all-updates/latest") - summary = "%s" - - setOnPreferenceChangeListener { _, newValue -> - val selected = newValue as String - val index = this.findIndexOfValue(selected) - val entry = entryValues[index] as String - preferences.edit().putString(LATEST_PREF, entry).commit() - } - } - screen.addPreference(popularmangapref) - screen.addPreference(latestmangapref) - } - - override fun setupPreferenceScreen(screen: PreferenceScreen) { - val popularmangapref = ListPreference(screen.context).apply { - key = BROWSE_PREF_Title - title = BROWSE_PREF_Title - entries = arrayOf("Weekly", "All Time") - entryValues = arrayOf("popular", "popular-alltime") - summary = "%s" - - setOnPreferenceChangeListener { _, newValue -> - val selected = newValue as String - val index = this.findIndexOfValue(selected) - val entry = entryValues[index] as String - preferences.edit().putString(BROWSE_PREF, entry).commit() - } - } - val latestmangapref = ListPreference(screen.context).apply { - key = LATEST_PREF_Title - title = LATEST_PREF_Title - entries = arrayOf("Popular Updates", "All Updates") - entryValues = arrayOf("latest", "all-updates/latest") - summary = "%s" - - setOnPreferenceChangeListener { _, newValue -> - val selected = newValue as String - val index = this.findIndexOfValue(selected) - val entry = entryValues[index] as String - preferences.edit().putString(LATEST_PREF, entry).commit() - } - } - screen.addPreference(popularmangapref) - screen.addPreference(latestmangapref) - } - - private fun getpoppref() = preferences.getString(BROWSE_PREF, "popular") - private fun getlastestpref() = preferences.getString(LATEST_PREF, "latest") - - companion object { - private const val LATEST_PREF_Title = "Latest Manga Selector" - private const val LATEST_PREF = "latestmangaurl" - private const val BROWSE_PREF_Title = "Popular Manga Selector" - private const val BROWSE_PREF = "popularmangaurl" - } -}