From 1252ad45318c915244ce4cedbafbc55fb732816d Mon Sep 17 00:00:00 2001 From: cutterchop <31880937+cutterchop@users.noreply.github.com> Date: Sat, 30 Oct 2021 20:09:00 +0100 Subject: [PATCH 1/4] Arabic translation fix #69 (#185) Co-authored-by: Arjix <53124886+ArjixWasTaken@users.noreply.github.com> --- app/src/main/res/values-ar/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 07980d4f..041cf991 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -25,7 +25,7 @@ لايوجد بيانات المزيد من الخيارات الحلقة القادمة - الأنواع + النواع شارك فتح في الويب تخطي التحميل @@ -106,7 +106,7 @@ قد تكون هناك حاجة إلى شبكة ظاهرية خاصة لكي يعمل هذا المزود بشكل صحيح هذا المزود هو تورنت ، يوصى باستخدام شبكة ظاهرية خاصة الوصف - لم يتم العثور على قطعة + لم يتم العثور على وصف لم يتم العثور على وصف صورة داخل صورة @@ -116,7 +116,7 @@ الترجمة إعدادات ترجمة المشغل وضع إيغنغرافي - يضيف خيار السرعة في اللاعب + يضيف خيار السرعة في المشغل اسحب للسعي اسحب إلى اليسار أو اليمين للتحكم في الوقت في مشغل الفيديو اسحب لتغيير الإعدادات @@ -129,7 +129,7 @@ بحث معلومات البحث المتقدم - يعطيك نتائج البحث مفصولة عن طريق مزود + يعطيك نتائج البحث مفصولة عن طريق المزود إرسال البيانات عن الأعطال فقط لا ترسل أي بيانات عرض حلقة فلر لأنيمي @@ -184,7 +184,7 @@ تطبيق أفلام - مسلسلت + مسلسلات رسوم متحركة انمي تورنت From 44100c4e0925406359b662955f99a7d3e78e1761 Mon Sep 17 00:00:00 2001 From: Arjix <53124886+ArjixWasTaken@users.noreply.github.com> Date: Sat, 30 Oct 2021 23:20:46 +0300 Subject: [PATCH 2/4] Extracted quality from AllAnime m3u8 streams. (Untested) --- .../animeproviders/AllAnimeProvider.kt | 60 +++++++++++++------ 1 file changed, 43 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/animeproviders/AllAnimeProvider.kt b/app/src/main/java/com/lagradost/cloudstream3/animeproviders/AllAnimeProvider.kt index b141089a..a72c21a5 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/animeproviders/AllAnimeProvider.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/animeproviders/AllAnimeProvider.kt @@ -1,6 +1,7 @@ package com.lagradost.cloudstream3.animeproviders import com.lagradost.cloudstream3.* +import com.lagradost.cloudstream3.utils.* import com.lagradost.cloudstream3.network.get import com.lagradost.cloudstream3.network.text import com.lagradost.cloudstream3.utils.ExtractorLink @@ -26,6 +27,8 @@ class AllAnimeProvider : MainAPI() { get() = false override val hasMainPage: Boolean get() = false + + private val hlsHelper = M3u8Helper() private fun getStatus(t: String): ShowStatus { return when (t) { @@ -243,6 +246,21 @@ class AllAnimeProvider : MainAPI() { private data class ApiEndPoint( @JsonProperty("episodeIframeHead") val episodeIframeHead: String ) + + private fun getM3u8Qualities(m3u8Link: String, referer: String): ArrayList { + return ArrayList(hlsHelper.m3u8Generation(M3u8Helper.M3u8Stream(m3u8Link, null), true).map { stream -> + val qualityString = if ((stream.quality ?: 0) == 0) "" else "${stream.quality}p" + ExtractorLink( + this.name, + "${this.name} $qualityString", + stream.streamUrl, + referer, + getQualityFromName(stream.quality.toString()), + true, + stream.headers + ) + }) + } override fun loadLinks( data: String, @@ -264,16 +282,20 @@ class AllAnimeProvider : MainAPI() { if (Regex("""streaming\.php\?""").matches(link)) { // for now ignore } else if (!embedIsBlacklisted(link)) { - callback( - ExtractorLink( - "AllAnime - " + URI(link).host, - "", - link, - data, - getQualityFromName("1080"), - URI(link).path.contains(".m3u") + if (URI(link).path.contains(".m3u")) { + getM3u8Qualities(link, referer).forEach(callback) + } else { + callback( + ExtractorLink( + "AllAnime - " + URI(link).host, + "", + link, + data, + getQualityFromName("1080"), + false + ) ) - ) + } } } else { link = apiEndPoint + URI(link).path + ".json?" + URI(link).query @@ -282,14 +304,18 @@ class AllAnimeProvider : MainAPI() { if (response.code < 400) { val links = mapper.readValue(response.text).links links.forEach { server -> - callback(ExtractorLink( - "AllAnime - " + URI(server.link).host, - server.resolutionStr, - server.link, - "$apiEndPoint/player?uri=" + (if (URI(server.link).host.isNotEmpty()) server.link else apiEndPoint + URI(server.link).path), - getQualityFromName("1080"), - server.hls != null && server.hls - )) + if (server.hls != null && server.hls) { + getM3u8Qualities(server.link, "$apiEndPoint/player?uri=" + (if (URI(server.link).host.isNotEmpty()) server.link else apiEndPoint + URI(server.link).path)).forEach(callback) + } else { + callback(ExtractorLink( + "AllAnime - " + URI(server.link).host, + server.resolutionStr, + server.link, + "$apiEndPoint/player?uri=" + (if (URI(server.link).host.isNotEmpty()) server.link else apiEndPoint + URI(server.link).path), + getQualityFromName("1080"), + false + )) + } } } } From 0687079889ababc5a563f7861d338954a2bd2750 Mon Sep 17 00:00:00 2001 From: Arjix <53124886+ArjixWasTaken@users.noreply.github.com> Date: Sat, 30 Oct 2021 23:24:44 +0300 Subject: [PATCH 3/4] Update AllAnimeProvider.kt --- .../lagradost/cloudstream3/animeproviders/AllAnimeProvider.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/animeproviders/AllAnimeProvider.kt b/app/src/main/java/com/lagradost/cloudstream3/animeproviders/AllAnimeProvider.kt index a72c21a5..fdb316f5 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/animeproviders/AllAnimeProvider.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/animeproviders/AllAnimeProvider.kt @@ -283,7 +283,7 @@ class AllAnimeProvider : MainAPI() { // for now ignore } else if (!embedIsBlacklisted(link)) { if (URI(link).path.contains(".m3u")) { - getM3u8Qualities(link, referer).forEach(callback) + getM3u8Qualities(link, data).forEach(callback) } else { callback( ExtractorLink( From ddccd31f0f39ef7072084f3457cac7cc3eba557e Mon Sep 17 00:00:00 2001 From: Arjix <53124886+ArjixWasTaken@users.noreply.github.com> Date: Sat, 30 Oct 2021 23:35:03 +0300 Subject: [PATCH 4/4] Update AllAnimeProvider.kt --- .../cloudstream3/animeproviders/AllAnimeProvider.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/animeproviders/AllAnimeProvider.kt b/app/src/main/java/com/lagradost/cloudstream3/animeproviders/AllAnimeProvider.kt index fdb316f5..9fb45c00 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/animeproviders/AllAnimeProvider.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/animeproviders/AllAnimeProvider.kt @@ -247,12 +247,12 @@ class AllAnimeProvider : MainAPI() { @JsonProperty("episodeIframeHead") val episodeIframeHead: String ) - private fun getM3u8Qualities(m3u8Link: String, referer: String): ArrayList { + private fun getM3u8Qualities(m3u8Link: String, referer: String, qualityName: String): ArrayList { return ArrayList(hlsHelper.m3u8Generation(M3u8Helper.M3u8Stream(m3u8Link, null), true).map { stream -> val qualityString = if ((stream.quality ?: 0) == 0) "" else "${stream.quality}p" ExtractorLink( this.name, - "${this.name} $qualityString", + "${this.name} - $qualityName $qualityString", stream.streamUrl, referer, getQualityFromName(stream.quality.toString()), @@ -283,7 +283,7 @@ class AllAnimeProvider : MainAPI() { // for now ignore } else if (!embedIsBlacklisted(link)) { if (URI(link).path.contains(".m3u")) { - getM3u8Qualities(link, data).forEach(callback) + getM3u8Qualities(link, data, URI(link).host).forEach(callback) } else { callback( ExtractorLink( @@ -305,7 +305,7 @@ class AllAnimeProvider : MainAPI() { val links = mapper.readValue(response.text).links links.forEach { server -> if (server.hls != null && server.hls) { - getM3u8Qualities(server.link, "$apiEndPoint/player?uri=" + (if (URI(server.link).host.isNotEmpty()) server.link else apiEndPoint + URI(server.link).path)).forEach(callback) + getM3u8Qualities(server.link, "$apiEndPoint/player?uri=" + (if (URI(server.link).host.isNotEmpty()) server.link else apiEndPoint + URI(server.link).path), server.resolutionStr).forEach(callback) } else { callback(ExtractorLink( "AllAnime - " + URI(server.link).host,