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..9fb45c00 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, 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} - $qualityName $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, data, URI(link).host).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), server.resolutionStr).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 + )) + } } } } 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 @@ تطبيق أفلام - مسلسلت + مسلسلات رسوم متحركة انمي تورنت