update for arabic sources (#311)

* Update build.gradle

* anime4up: fix video extractor

* asia2tv: fix episode list parse

* movies4u: fix episode list parse

* faselhd: fix episode list parse and update url

* mycima: update site domain
This commit is contained in:
Ahmed gamal
2022-02-08 11:36:16 +02:00
committed by GitHub
parent 0842797bd8
commit 4dc2ef096a
12 changed files with 50 additions and 34 deletions

View File

@ -5,7 +5,7 @@ ext {
extName = 'Anime4up'
pkgNameSuffix = 'ar.anime4up'
extClass = '.Anime4Up'
extVersionCode = 23
extVersionCode = 24
libVersion = '12'
}

View File

@ -65,6 +65,10 @@ class Anime4Up : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
// episodes
override fun episodeListParse(response: Response): List<SEpisode> {
return super.episodeListParse(response).reversed()
}
override fun episodeListSelector() = "div.episodes-list-content div#DivEpisodesList div.col-md-3" // "ul.episodes-links li a"
override fun episodeFromElement(element: Element): SEpisode {
@ -90,29 +94,37 @@ class Anime4Up : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun videoListParse(response: Response): List<Video> {
val document = response.asJsoup()
// get POST valus
val postUrl = document.select("form[method=post]").attr("action")
val ur = document.select("input[name=ur]").attr("value")
val wl = document.select("input[name=wl]").attr("value")
val dl = document.select("input[name=dl]").attr("value")
val moshahda = document.select("input[name=moshahda]").attr("value")
val submit = document.select("input[name=submit]").attr("value")
// POST data
val body = FormBody.Builder()
.add("ur", "$ur")
.add("wl", "$wl")
.add("dl", "$dl")
.add("moshahda", "$moshahda")
.add("submit", "$submit")
.build()
// Call POST
val referer = response.request.url.encodedPath
val newHeaders = Headers.headersOf("referer", baseUrl + referer)
val ifram1 = client.newCall(POST(postUrl, newHeaders, body)).execute().asJsoup()
val iframe = ifram1.select("li.active").attr("data-server")
val iframeResponse = client.newCall(GET(iframe, newHeaders))
.execute().asJsoup()
return videosFromElement(iframeResponse.selectFirst(videoListSelector()))
val iframe = document.selectFirst("iframe").attr("src")
if (iframe.contains("http")) {
val referer = response.request.url.encodedPath
val newHeaders = Headers.headersOf("referer", baseUrl + referer)
val iframeResponse = client.newCall(GET(iframe, newHeaders))
.execute().asJsoup()
return videosFromElement(iframeResponse.selectFirst(videoListSelector()))
} else {
val postUrl = document.select("form[method=post]").attr("action")
val ur = document.select("input[name=ur]").attr("value")
val wl = document.select("input[name=wl]").attr("value")
val dl = document.select("input[name=dl]").attr("value")
val moshahda = document.select("input[name=moshahda]").attr("value")
val submit = document.select("input[name=submit]").attr("value")
// POST data
val body = FormBody.Builder()
.add("ur", "$ur")
.add("wl", "$wl")
.add("dl", "$dl")
.add("moshahda", "$moshahda")
.add("submit", "$submit")
.build()
// Call POST
val referer = response.request.url.encodedPath
val newHeaders = Headers.headersOf("referer", baseUrl + referer)
val ifram1 = client.newCall(POST(postUrl, newHeaders, body)).execute().asJsoup()
val iframe = ifram1.select("li.active").attr("data-server")
val iframeResponse = client.newCall(GET(iframe, newHeaders))
.execute().asJsoup()
return videosFromElement(iframeResponse.selectFirst(videoListSelector()))
}
}
override fun videoListSelector() = "script:containsData(m3u8)"

View File

@ -5,7 +5,7 @@ ext {
extName = 'asia2tv'
pkgNameSuffix = 'ar.asia2tv'
extClass = '.Asia2TV'
extVersionCode = 1
extVersionCode = 2
libVersion = '12'
}

View File

@ -60,6 +60,10 @@ class Asia2TV : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
// Episodes
override fun episodeListParse(response: Response): List<SEpisode> {
return super.episodeListParse(response).reversed()
}
override fun episodeListSelector() = "div.loop-episode a"
override fun episodeFromElement(element: Element): SEpisode {

View File

@ -5,7 +5,7 @@ ext {
extName = 'فاصل اعلاني'
pkgNameSuffix = 'ar.faselhd'
extClass = '.FASELHD'
extVersionCode = 2
extVersionCode = 3
libVersion = '12'
}

View File

@ -28,7 +28,7 @@ class FASELHD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override val name = "فاصل اعلاني"
override val baseUrl = "https://www.faselhd.pro"
override val baseUrl = "https://www.faselhd.top"
override val lang = "ar"
@ -74,7 +74,7 @@ class FASELHD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
}
addEpisodes(response.asJsoup())
return episodes
return episodes.reversed()
}
override fun episodeListSelector() = "div.epAll a"

View File

@ -5,7 +5,7 @@ ext {
extName = 'موفيز فور يو'
pkgNameSuffix = 'ar.movies4u'
extClass = '.Movies4U'
extVersionCode = 2
extVersionCode = 3
libVersion = '12'
}

View File

@ -91,7 +91,7 @@ class Movies4U : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
episode.setUrlWithoutDomain(movieUrl)
episodeList.add(episode)
}
return episodeList
return episodeList.reversed()
}
override fun episodeFromElement(element: Element): SEpisode = throw Exception("not used")

View File

@ -5,7 +5,7 @@ ext {
extName = 'MY CIMA'
pkgNameSuffix = 'ar.mycima'
extClass = '.MyCima'
extVersionCode = 12
extVersionCode = 13
libVersion = '12'
}

View File

@ -27,7 +27,7 @@ class MyCima : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override val name = "MY Cima"
override val baseUrl = "https://mycima.world"
override val baseUrl = "https://mycima.pw"
override val lang = "ar"

View File

@ -5,7 +5,7 @@ ext {
extName = 'MY CIMA MOVIES'
pkgNameSuffix = 'ar.mycimamovie'
extClass = '.MyCimaMovie'
extVersionCode = 10
extVersionCode = 11
libVersion = '12'
}

View File

@ -27,7 +27,7 @@ class MyCimaMovie : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override val name = "MY Cima Movies"
override val baseUrl = "https://mycima.world"
override val baseUrl = "https://mycima.pw"
override val lang = "ar"