diff --git a/src/ar/mycima/build.gradle b/src/ar/mycima/build.gradle index 147a6d776..3dcbf61c7 100644 --- a/src/ar/mycima/build.gradle +++ b/src/ar/mycima/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'MY CIMA' pkgNameSuffix = 'ar.mycima' extClass = '.MyCima' - extVersionCode = 15 + extVersionCode = 16 libVersion = '13' } diff --git a/src/ar/mycima/res/mipmap-hdpi/ic_launcher.png b/src/ar/mycima/res/mipmap-hdpi/ic_launcher.png index 703506431..a36ef4187 100644 Binary files a/src/ar/mycima/res/mipmap-hdpi/ic_launcher.png and b/src/ar/mycima/res/mipmap-hdpi/ic_launcher.png differ diff --git a/src/ar/mycima/res/mipmap-mdpi/ic_launcher.png b/src/ar/mycima/res/mipmap-mdpi/ic_launcher.png index e0bb5f558..443620343 100644 Binary files a/src/ar/mycima/res/mipmap-mdpi/ic_launcher.png and b/src/ar/mycima/res/mipmap-mdpi/ic_launcher.png differ diff --git a/src/ar/mycima/res/mipmap-xhdpi/ic_launcher.png b/src/ar/mycima/res/mipmap-xhdpi/ic_launcher.png index c8ad995c6..cc45361bc 100644 Binary files a/src/ar/mycima/res/mipmap-xhdpi/ic_launcher.png and b/src/ar/mycima/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/src/ar/mycima/res/mipmap-xxhdpi/ic_launcher.png b/src/ar/mycima/res/mipmap-xxhdpi/ic_launcher.png index 2c5106544..e5d0ce4f0 100644 Binary files a/src/ar/mycima/res/mipmap-xxhdpi/ic_launcher.png and b/src/ar/mycima/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/src/ar/mycima/res/mipmap-xxxhdpi/ic_launcher.png b/src/ar/mycima/res/mipmap-xxxhdpi/ic_launcher.png index b942c0746..9154bd69e 100644 Binary files a/src/ar/mycima/res/mipmap-xxxhdpi/ic_launcher.png and b/src/ar/mycima/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/src/ar/mycima/res/web_hi_res_512.png b/src/ar/mycima/res/web_hi_res_512.png index 891dac02f..b3d75682c 100644 Binary files a/src/ar/mycima/res/web_hi_res_512.png and b/src/ar/mycima/res/web_hi_res_512.png differ diff --git a/src/ar/mycima/src/eu/kanade/tachiyomi/animeextension/ar/mycima/MyCima.kt b/src/ar/mycima/src/eu/kanade/tachiyomi/animeextension/ar/mycima/MyCima.kt index 0d6b783c9..128d821a9 100644 --- a/src/ar/mycima/src/eu/kanade/tachiyomi/animeextension/ar/mycima/MyCima.kt +++ b/src/ar/mycima/src/eu/kanade/tachiyomi/animeextension/ar/mycima/MyCima.kt @@ -27,7 +27,7 @@ class MyCima : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override val name = "MY Cima" - override val baseUrl = "https://mycima.pw" + override val baseUrl = "https://mycimaa.makeup" override val lang = "ar" @@ -39,10 +39,12 @@ class MyCima : ConfigurableAnimeSource, ParsedAnimeHttpSource() { Injekt.get().getSharedPreferences("source_$id", 0x0000) } - // Popular Anime + // ============================== popular ============================== override fun popularAnimeSelector(): String = "div.Grid--MycimaPosts div.GridItem div.Thumb--GridItem" + override fun popularAnimeNextPageSelector(): String = "ul.page-numbers li a.next" + override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/seriestv/top/?page_number=$page") override fun popularAnimeFromElement(element: Element): SAnime { @@ -57,9 +59,9 @@ class MyCima : ConfigurableAnimeSource, ParsedAnimeHttpSource() { return anime } - override fun popularAnimeNextPageSelector(): String = "ul.page-numbers li a.next" + // ============================== episodes ============================== - // Episodes + override fun episodeListSelector() = "div.Episodes--Seasons--Episodes a" private fun seasonsNextPageSelector(seasonNumber: Int) = "div.List--Seasons--Episodes > a:nth-child($seasonNumber)" @@ -68,36 +70,49 @@ class MyCima : ConfigurableAnimeSource, ParsedAnimeHttpSource() { var seasonNumber = 1 fun addEpisodes(document: Document) { - document.select(episodeListSelector()).map { episodes.add(episodeFromElement(it)) } - document.select(seasonsNextPageSelector(seasonNumber)).firstOrNull()?.let { - seasonNumber++ - addEpisodes(client.newCall(GET(it.attr("abs:href"), headers)).execute().asJsoup()) + if (document.select(episodeListSelector()).isNullOrEmpty()) { + if (!document.select("mycima singlerelated.hasdivider ${popularAnimeSelector()}").isNullOrEmpty()) { + document.select("mycima singlerelated.hasdivider ${popularAnimeSelector()}").map { episodes.add(newEpisodeFromElement(it, "mSeries")) } + } else + episodes.add(newEpisodeFromElement(document.select("div.Poster--Single-begin > a").first(), "movie")) + } else { + document.select(episodeListSelector()).map { episodes.add(newEpisodeFromElement(it)) } + document.select(seasonsNextPageSelector(seasonNumber)).firstOrNull()?.let { + seasonNumber++ + addEpisodes( + client.newCall(GET(it.attr("abs:href"), headers)).execute().asJsoup() + ) + } } } - addEpisodes(response.asJsoup()) return episodes } - override fun episodeListSelector() = "div.Episodes--Seasons--Episodes a" - - override fun episodeFromElement(element: Element): SEpisode { + private fun newEpisodeFromElement(element: Element, type: String = "series"): SEpisode { val episode = SEpisode.create() val epNum = getNumberFromEpsString(element.text()) - episode.setUrlWithoutDomain(element.attr("abs:href")) - episode.episode_number = when { - (epNum.isNotEmpty()) -> epNum.toFloat() - else -> 1F + episode.setUrlWithoutDomain(if (type == "mSeries") element.select("a").attr("href") else element.attr("abs:href")) + if (type == "series") + episode.episode_number = when { + (epNum.isNotEmpty()) -> epNum.toFloat() + else -> 1F + } + episode.name = when (type) { + "movie" -> "مشاهدة" + "mSeries" -> element.select("a").attr("title") + else -> element.ownerDocument().select("div.List--Seasons--Episodes a.selected").text() + element.text() } - episode.name = element.ownerDocument().select("div.List--Seasons--Episodes a.selected").text() + " : " + element.text() return episode } + override fun episodeFromElement(element: Element): SEpisode = throw Exception("not used") + private fun getNumberFromEpsString(epsStr: String): String { return epsStr.filter { it.isDigit() } } - // Video urls + // ============================== video urls ============================== override fun videoListParse(response: Response): List