diff --git a/src/ar/faselhd/build.gradle b/src/ar/faselhd/build.gradle index 117af3b0d..97f5ccd11 100644 --- a/src/ar/faselhd/build.gradle +++ b/src/ar/faselhd/build.gradle @@ -1,7 +1,11 @@ ext { extName = 'FASELHD' extClass = '.FASELHD' - extVersionCode = 14 + extVersionCode = 15 } apply from: "$rootDir/common.gradle" + +dependencies { + implementation(project(":lib:playlist-utils")) +} diff --git a/src/ar/faselhd/src/eu/kanade/tachiyomi/animeextension/ar/faselhd/FASELHD.kt b/src/ar/faselhd/src/eu/kanade/tachiyomi/animeextension/ar/faselhd/FASELHD.kt index 89becc11e..962a2ce3c 100644 --- a/src/ar/faselhd/src/eu/kanade/tachiyomi/animeextension/ar/faselhd/FASELHD.kt +++ b/src/ar/faselhd/src/eu/kanade/tachiyomi/animeextension/ar/faselhd/FASELHD.kt @@ -11,6 +11,7 @@ import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.SEpisode import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource +import eu.kanade.tachiyomi.lib.playlistutils.PlaylistUtils import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.Headers @@ -36,29 +37,31 @@ class FASELHD : ConfigurableAnimeSource, ParsedAnimeHttpSource() { Injekt.get().getSharedPreferences("source_$id", 0x0000) } + private val webViewResolver by lazy { WebViewResolver() } + + private val playlistUtils by lazy { PlaylistUtils(client, headers) } + override fun headersBuilder(): Headers.Builder { return super.headersBuilder() .add("Referer", baseUrl) } - // Popular Anime - + // ============================== Popular =============================== override fun popularAnimeSelector(): String = "div#postList div.col-xl-2 a" - override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/anime/page/$page") + override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/anime/page/$page", headers) override fun popularAnimeFromElement(element: Element): SAnime { val anime = SAnime.create() anime.setUrlWithoutDomain(element.attr("href")) anime.title = element.select("div.imgdiv-class img").attr("alt") - // anime.thumbnail_url = element.select("div.imgdiv-class img").attr("data-src") - + anime.thumbnail_url = element.select("div.imgdiv-class img").attr("data-src") return anime } override fun popularAnimeNextPageSelector(): String = "ul.pagination li a.page-link:contains(›)" - // Episodes + // ============================== Episodes ============================== override fun episodeListSelector() = "div.epAll a" private fun seasonsNextPageSelector(seasonNumber: Int) = "div#seasonList div.col-xl-2:nth-child($seasonNumber)" // "div.List--Seasons--Episodes > a:nth-child($seasonNumber)" @@ -104,50 +107,29 @@ class FASELHD : ConfigurableAnimeSource, ParsedAnimeHttpSource() { return episode } - // Video urls + // ============================ Video Links ============================= override fun videoListSelector() = throw UnsupportedOperationException() override fun videoListParse(response: Response): List