From 879efc332ff13a428fe6d71c9628d27298d654a7 Mon Sep 17 00:00:00 2001 From: Luqman <16263232+Riztard@users.noreply.github.com> Date: Thu, 1 Feb 2024 23:47:26 +0700 Subject: [PATCH] Remove MangaMiso source (#875) --- src/en/mangamiso/AndroidManifest.xml | 24 - src/en/mangamiso/build.gradle | 8 - .../mangamiso/res/mipmap-hdpi/ic_launcher.png | Bin 4036 -> 0 bytes .../mangamiso/res/mipmap-mdpi/ic_launcher.png | Bin 2111 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 6043 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 12050 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 19046 -> 0 bytes .../extension/en/mangamiso/MangaMiso.kt | 415 ------------------ .../en/mangamiso/MangaMisoObjects.kt | 83 ---- .../en/mangamiso/MangaMisoUrlActivity.kt | 35 -- 10 files changed, 565 deletions(-) delete mode 100644 src/en/mangamiso/AndroidManifest.xml delete mode 100644 src/en/mangamiso/build.gradle delete mode 100644 src/en/mangamiso/res/mipmap-hdpi/ic_launcher.png delete mode 100644 src/en/mangamiso/res/mipmap-mdpi/ic_launcher.png delete mode 100644 src/en/mangamiso/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 src/en/mangamiso/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 src/en/mangamiso/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 src/en/mangamiso/src/eu/kanade/tachiyomi/extension/en/mangamiso/MangaMiso.kt delete mode 100644 src/en/mangamiso/src/eu/kanade/tachiyomi/extension/en/mangamiso/MangaMisoObjects.kt delete mode 100644 src/en/mangamiso/src/eu/kanade/tachiyomi/extension/en/mangamiso/MangaMisoUrlActivity.kt diff --git a/src/en/mangamiso/AndroidManifest.xml b/src/en/mangamiso/AndroidManifest.xml deleted file mode 100644 index 6e274ca35..000000000 --- a/src/en/mangamiso/AndroidManifest.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/src/en/mangamiso/build.gradle b/src/en/mangamiso/build.gradle deleted file mode 100644 index 6b7e55f17..000000000 --- a/src/en/mangamiso/build.gradle +++ /dev/null @@ -1,8 +0,0 @@ -ext { - extName = 'MangaMiso' - extClass = '.MangaMiso' - extVersionCode = 4 - isNsfw = true -} - -apply from: "$rootDir/common.gradle" diff --git a/src/en/mangamiso/res/mipmap-hdpi/ic_launcher.png b/src/en/mangamiso/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 9d8a576397c31a979808343fbba8c7bdf190abd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4036 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 diff --git a/src/en/mangamiso/res/mipmap-xhdpi/ic_launcher.png b/src/en/mangamiso/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 007abb7a0ac83c5e11f06a4d9f97811e49b6ce13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6043 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 GM*R%Sch6@FA-v3msow7@5+kD6YY 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 FV1jjpL|Xs= diff --git a/src/en/mangamiso/src/eu/kanade/tachiyomi/extension/en/mangamiso/MangaMiso.kt b/src/en/mangamiso/src/eu/kanade/tachiyomi/extension/en/mangamiso/MangaMiso.kt deleted file mode 100644 index 278f80751..000000000 --- a/src/en/mangamiso/src/eu/kanade/tachiyomi/extension/en/mangamiso/MangaMiso.kt +++ /dev/null @@ -1,415 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.mangamiso - -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.asObservableSuccess -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.HttpSource -import kotlinx.serialization.decodeFromString -import kotlinx.serialization.json.Json -import kotlinx.serialization.json.decodeFromJsonElement -import kotlinx.serialization.json.jsonObject -import okhttp3.HttpUrl -import okhttp3.Request -import okhttp3.Response -import rx.Observable -import uy.kohesive.injekt.injectLazy -import java.lang.Exception -import java.text.SimpleDateFormat -import java.util.Locale - -class MangaMiso : HttpSource() { - - companion object { - const val MANGA_PER_PAGE = 20 - val DATE_FORMAT = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US) - const val PREFIX_ID_SEARCH = "id:" - } - - override val name = "MangaMiso" - - override val baseUrl = "https://mangamiso.net" - - override val lang = "en" - - override val supportsLatest = true - - override val client = network.cloudflareClient - - private val json: Json by injectLazy() - - override fun popularMangaRequest(page: Int): Request { - val url = getBaseURLBuilder() - .addPathSegment("mangas-get") - .addPathSegment("get-new-mangas") - .addQueryParameter("perPage", MANGA_PER_PAGE.toString()) - .addQueryParameter("page", page.toString()) - .toString() - - return GET(url, headers) - } - - override fun popularMangaParse(response: Response): MangasPage { - val mangaList = json.decodeFromString(response.body.string()) - val page = response.request.url.queryParameter("page")!!.toInt() - val totalViewedManga = page * MANGA_PER_PAGE - return MangasPage(mangaList.newManga.map(::toSManga), mangaList.total > totalViewedManga) - } - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - val builder = getBaseURLBuilder() - .addQueryParameter("perPage", MANGA_PER_PAGE.toString()) - .addQueryParameter("page", page.toString()) - - return when { - query.startsWith(PREFIX_ID_SEARCH) -> { - val id = query.removePrefix(PREFIX_ID_SEARCH) - val url = "$baseUrl/mangas/$id" - return GET(url, headers) - } - query.isNotBlank() -> throw UnsupportedOperationException("Text search currently not supported") - else -> { - val url = builder.addPathSegment("genres") - - var tagCount = 0 - filters.forEach { filter -> - when (filter) { - is MangaStatusFilter -> { - val statusSlug = filter.toUriPart() - url.addQueryParameter("status", statusSlug) - } - is UriPartFilter -> { - if (filter.toUriPart() != "") { - val genreSlug = filter.toUriPart() - url.addPathSegment(genreSlug) - tagCount++ - if (tagCount > 1) { - throw UnsupportedOperationException("Too many categories selected") - } - } - } - else -> {} - } - } - - // If no filters selected, default to "all" - if (tagCount == 0) { url.addPathSegment("all") } - GET(url.build(), headers) - } - } - } - - override fun searchMangaParse(response: Response): MangasPage { - // This search was for a specific manga id - return if (response.request.url.pathSegments[0] == "mangas") { - val manga = mangaDetailsParse(response) - MangasPage(listOf(manga), false) - } else { - val mangaList = json.decodeFromString(response.body.string()) - val page = response.request.url.queryParameter("page")!!.toInt() - val totalViewedManga = page * MANGA_PER_PAGE - MangasPage(mangaList.foundList.map(::toSManga), mangaList.total > totalViewedManga) - } - } - - override fun latestUpdatesRequest(page: Int): Request { - val url = getBaseURLBuilder() - .addPathSegment("mangas-get") - .addPathSegment("get-latestUpdate-mangas") - .addQueryParameter("perPage", MANGA_PER_PAGE.toString()) - .addQueryParameter("page", page.toString()) - - return GET(url.build(), headers) - } - - override fun latestUpdatesParse(response: Response): MangasPage { - val mangaList = json.decodeFromString(response.body.string()) - val page = response.request.url.queryParameter("page")!!.toInt() - val totalViewedManga = page * MANGA_PER_PAGE - return MangasPage(mangaList.newManga.map(::toSManga), mangaList.total > totalViewedManga) - } - - // Since mangaDetailsRequest is what drives the webview, - // we are using this solely to provide that URL - override fun mangaDetailsRequest(manga: SManga): Request { - return GET(manga.url, headers) - } - - // This is what actually gets the manga details - override fun fetchMangaDetails(manga: SManga): Observable { - val jsonURL = manga.url.replace("/manga/", "/mangas/") - return client.newCall( - GET(jsonURL, headers), - ).asObservableSuccess() - .map { response -> - mangaDetailsParse(response) - } - } - - override fun mangaDetailsParse(response: Response): SManga { - val mangaRoot = json.parseToJsonElement(response.body.string()) - val mangaObj = mangaRoot.jsonObject["manga"]!! - - return toSManga(json.decodeFromJsonElement(mangaObj)) - } - - private fun cleanDescription(mangaDesc: String): String { - // Remove the link to the manga on other sites - var description = "

Link:.*

".toRegex(RegexOption.IGNORE_CASE).replace(mangaDesc, "") - - // Convert any breaks
to newlines - description = description.replace("
", "\n", true) - - // Convert any paragraphs to double newlines - description = description.replace("

", "\n\n", true) - - // Replace any other tags with nothing - description = "<.*?>".toRegex().replace(description, "") - - return description.trim() - } - - private fun mapStatus(status: String) = - when (status) { - "ongoing", "hiatus" -> SManga.ONGOING - "completed", "cancelled" -> SManga.COMPLETED - else -> SManga.UNKNOWN - } - - override fun chapterListRequest(manga: SManga): Request { - val url = "${manga.url.replace("/manga/", "/mangas/")}/get-manga-chapters-12345?page=1&perPage=9999&sort=-1" - return GET(url, headers) - } - - override fun chapterListParse(response: Response): List { - val chapterRoot = json.parseToJsonElement(response.body.string()) - - val chapterBase = chapterRoot.jsonObject["chapters"]!! - - val chapterList = json.decodeFromJsonElement(chapterBase) - - val path = response.request.url.pathSegments[1] // this is the pathName of the manga - - return chapterList.chapters.map { toSChapter(it, "$baseUrl/manga/$path") } - } - - override fun pageListRequest(chapter: SChapter): Request { - return GET(chapter.url.replace("/manga/", "/mangas/"), headers) - } - - override fun pageListParse(response: Response): List { - val chapterRoot = json.parseToJsonElement(response.body.string()) - - val chapterBase = chapterRoot.jsonObject["chapter"]!! - - val pageList = json.decodeFromJsonElement(chapterBase) - - return pageList.pages.mapIndexed { index, misoPage -> - val imgURL = "$baseUrl${misoPage.path}" - Page( - index, - imgURL, - imgURL, - ) - } - } - - override fun imageUrlParse(response: Response) = throw UnsupportedOperationException() - - //region Filter Classes - private open class UriPartFilter(displayName: String, val vals: Array>) : - Filter.Select(displayName, vals.map { it.first }.toTypedArray()) { - fun toUriPart() = vals[state].second - } - - private class MangaStatusFilter : UriPartFilter( - "Manga Status", - arrayOf( - Pair("All", "all"), - Pair("Ongoing", "ongoing"), - Pair("Completed", "completed"), - Pair("Cancelled", "cancelled"), - Pair("On Hiatus", "hiatus"), - ), - ) - - private class DemographicFilter : UriPartFilter( - "Demographic", - arrayOf( - Pair("", ""), - Pair("Action", "action"), - Pair("Adventure", "adventure"), - Pair("Comedy", "comedy"), - Pair("Crime", "crime"), - Pair("Drama", "drama"), - Pair("Fantasy", "fantasy"), - Pair("Historical", "historical"), - Pair("Horror", "horror"), - Pair("Isekai", "isekai"), - Pair("Magical Girls", "magical_girls"), - Pair("Mature", "mature"), - Pair("Mecha", "mecha"), - Pair("Medical", "medical"), - Pair("Mystery", "mystery"), - Pair("Philosopical", "philosopical"), - Pair("Psychological", "psychological"), - Pair("Romance", "romance"), - Pair("Sci-fi", "sci-fi"), - Pair("Shoujo Ai", "shoujo_ai"), - Pair("Shounen Ai", "shounen_ai"), - Pair("Slice of Life", "slice_of_life"), - Pair("Sports", "sports"), - Pair("Superhero", "superhero"), - Pair("Thriller", "thriller"), - Pair("Tragedy", "tragedy"), - Pair("Wuxia", "wuxia"), - Pair("Yaoi", "yaoi"), - Pair("Yuri", "yuri"), - ), - ) - - private class ThemeFilter : UriPartFilter( - "Themes", - arrayOf( - Pair("", ""), - Pair("4-Koma", "4-Koma"), - Pair("Anthology", "anthology"), - Pair("Doujinshi", "doujinshi"), - Pair("Fan Colored", "fan-colored"), - Pair("Full Colored", "full-colored"), - Pair("Long Strip", "long_strip"), - Pair("Manhwa", "manhwa"), - Pair("Officially Colored", "officially-colored"), - Pair("One Shot", "one_shot"), - Pair("Partly-Colored", "partly-colored"), - Pair("Web Comic", "web_comic"), - ), - ) - - private class ContentWarningFilter : UriPartFilter( - "Content Warning", - arrayOf( - Pair("", ""), - Pair("Adaptation", "adaptation"), - Pair("Adapted to Anime", "adapted_to_anime"), - Pair("Award Winning", "award_winning"), - ), - ) - - //endregion - - override fun getFilterList(): FilterList { - return FilterList( - MangaStatusFilter(), - Filter.Header("Max 1 selection from any of the below categories"), - DemographicFilter(), - GenreFilter(), - ThemeFilter(), - ContentTypeFilter(), - ContentWarningFilter(), - GloryFilter(), - ) - } - - private fun getBaseURLBuilder(): HttpUrl.Builder { - return HttpUrl.Builder() - .scheme("https") - .host("mangamiso.net") - } - - private fun toSManga(manga: MisoManga): SManga { - return SManga.create().apply { - title = manga.title.trim() - author = manga.author.joinToString(",", transform = ::humanizeID) - artist = manga.artist.joinToString(",", transform = ::humanizeID) - thumbnail_url = "$baseUrl${manga.coverImage}" - url = "$baseUrl/manga/${manga.pathName}" - - genre = manga.tags.joinToString(", ", transform = ::humanizeID) - - description = cleanDescription(manga.description) - - status = mapStatus(manga.status) - } - } - - private fun toSChapter(chapter: MisoChapter, mangaURL: String): SChapter { - return SChapter.create().apply { - name = chapter.title.trim() - date_upload = try { DATE_FORMAT.parse(chapter.createdAt)!!.time } catch (e: Exception) { System.currentTimeMillis() } - url = "$mangaURL/${chapter.pathName}" - chapter_number = chapter.chapterNum - } - } - - // Convert the id of authors / artists / tags to a better form. (Eg. school_life -> School Life) - private fun humanizeID(text: String) = text.split("_").joinToString(" ") { it.capitalize(Locale.US) } -} diff --git a/src/en/mangamiso/src/eu/kanade/tachiyomi/extension/en/mangamiso/MangaMisoObjects.kt b/src/en/mangamiso/src/eu/kanade/tachiyomi/extension/en/mangamiso/MangaMisoObjects.kt deleted file mode 100644 index 961d3ea1d..000000000 --- a/src/en/mangamiso/src/eu/kanade/tachiyomi/extension/en/mangamiso/MangaMisoObjects.kt +++ /dev/null @@ -1,83 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.mangamiso - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class MisoNewMangaPage( - val newManga: List = emptyList(), - val total: Int = 0, -) - -@Serializable -data class MisoLatestUpdatesPage( - val newManga: List = emptyList(), - val total: Int = 0, -) - -@Serializable -data class MisoBrowseManga( - val foundList: List = emptyList(), - val total: Int = 0, -) - -@Serializable -data class MisoManga( - - val title: String = "", - - val description: String = "", - - val pathName: String = "", - - val status: String = "", - - val coverImage: String = "", - - val author: List = emptyList(), - val artist: List = emptyList(), - - val demographic: List = emptyList(), - - val genre: List = emptyList(), - - val themes: List = emptyList(), - - val contentType: List = emptyList(), - - val contentWarning: List = emptyList(), - - val glory: List = emptyList(), -) { - val tags: List get() { - return demographic + genre + themes + contentType + contentWarning + glory - } -} - -@Serializable -data class MisoChapterList( - val chapters: List, -) - -@Serializable -data class MisoChapter( - - @SerialName("chapterTitle") val title: String = "", - - val pathName: String = "", - - val chapterNum: Float = 1f, - - val createdAt: String = "", - -) - -@Serializable -data class MisoPageList( - val pages: List, -) - -@Serializable -data class MisoPage( - val path: String, -) diff --git a/src/en/mangamiso/src/eu/kanade/tachiyomi/extension/en/mangamiso/MangaMisoUrlActivity.kt b/src/en/mangamiso/src/eu/kanade/tachiyomi/extension/en/mangamiso/MangaMisoUrlActivity.kt deleted file mode 100644 index 8ec9399e2..000000000 --- a/src/en/mangamiso/src/eu/kanade/tachiyomi/extension/en/mangamiso/MangaMisoUrlActivity.kt +++ /dev/null @@ -1,35 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.mangamiso - -import android.app.Activity -import android.content.ActivityNotFoundException -import android.content.Intent -import android.os.Bundle -import android.util.Log -import kotlin.system.exitProcess - -class MangaMisoUrlActivity : Activity() { - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - val pathSegments = intent?.data?.pathSegments - if (pathSegments != null && pathSegments.size > 1) { - val id = pathSegments[1] - val mainIntent = Intent().apply { - action = "eu.kanade.tachiyomi.SEARCH" - putExtra("query", "${MangaMiso.PREFIX_ID_SEARCH}$id") - putExtra("filter", packageName) - } - - try { - startActivity(mainIntent) - } catch (e: ActivityNotFoundException) { - Log.e("MangaMisoUrlActivity", e.toString()) - } - } else { - Log.e("MangaMisoUrlActivity", "could not parse uri from intent $intent") - } - - finish() - exitProcess(0) - } -}