some refactoring & deleted all logpoints

This commit is contained in:
jmir1
2022-04-19 23:39:55 +02:00
parent 30454df548
commit 788a549a6e
55 changed files with 52 additions and 284 deletions

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.ar.animelek
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.ar.animelek.extractors.DoodExtractor
@ -100,9 +99,7 @@ class AnimeLek : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val elements = document.select(videoListSelector())
for (element in elements) {
val url = element.attr("data-ep-url")
Log.i("lol", url)
val qualityy = element.text()
Log.i("lol", qualityy)
val location = element.ownerDocument().location()
val videoHeaders = Headers.headersOf("Referer", location)
when {

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.ar.animelek.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup
@ -9,14 +8,12 @@ import okhttp3.OkHttpClient
class SharedExtractor(private val client: OkHttpClient) {
fun videoFromUrl(url: String, quality: String): Video? {
val document = client.newCall(GET(url)).execute().asJsoup()
Log.i("lol", "$document")
val check = document.select("div.error4shared").text()
val videoUrl = document.select("source").attr("src")
Log.i("lill", videoUrl)
if (check.contains("This file is not available any more")) {
return Video(url, "no 1video", "https", null)
return if (check.contains("This file is not available any more")) {
Video(url, "no 1video", "https", null)
} else {
return Video(url, quality, videoUrl, null)
Video(url, quality, videoUrl, null)
}
}
}

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.ar.animelek.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup
@ -10,14 +9,11 @@ class VidBomExtractor(private val client: OkHttpClient) {
fun videosFromUrl(url: String): List<Video> {
val doc = client.newCall(GET(url)).execute().asJsoup()
val script = doc.selectFirst("script:containsData(sources)")
Log.i("looool", "$script")
val data = script.data().substringAfter("sources: [").substringBefore("],")
Log.i("loool", "$data")
val sources = data.split("file:\"").drop(1)
val videoList = mutableListOf<Video>()
for (source in sources) {
val src = source.substringBefore("\"")
Log.i("looo", src)
val quality = "Vidbom:" + source.substringAfter("label:\"").substringBefore("\"") // .substringAfter("format: '")
val video = Video(src, quality, src, null)
videoList.add(video)

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.ar.animerco
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.ar.animerco.extractors.DoodExtractor
@ -77,23 +76,16 @@ class Animerco : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val document = response.asJsoup()
val episodeList = mutableListOf<SEpisode>()
val seriesLink1 = document.select("ol[itemscope] li:last-child a").attr("href")
Log.i("seriesLink1", "$seriesLink1")
val seriesLink = document.select("input[name=red]").attr("value")
Log.i("seriesLink", "$seriesLink")
val type = document.select("div.dtsingle").attr("itemtype").substringAfterLast("/")
Log.i("type", "$type")
if (type.contains("TVSeries")) {
val seasonUrl = seriesLink
Log.i("seasonUrl", seasonUrl)
val seasonsHtml = client.newCall(
GET(
seasonUrl
seriesLink
// headers = Headers.headersOf("Referer", document.location())
)
).execute().asJsoup()
Log.i("seasonsHtml", "$seasonsHtml")
val seasonsElements = seasonsHtml.select("span.se-t a")
Log.i("seasonsElements", "$seasonsElements")
seasonsElements.forEach {
val seasonEpList = parseEpisodesFromSeries(it)
episodeList.addAll(seasonEpList)
@ -136,7 +128,6 @@ class Animerco : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
// val SeasonNum = element.ownerDocument().select("div.Title span").text()
val seasonName = element.ownerDocument().select("span.tagline").text()
episode.name = "$seasonName : " + element.select("div.episodiotitle a").text()
Log.i("episodelink", element.select("div.episodiotitle a").attr("abs:href"))
episode.setUrlWithoutDomain(element.select("div.episodiotitle a").attr("abs:href"))
return episode
}
@ -149,15 +140,12 @@ class Animerco : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun videoListRequest(episode: SEpisode): Request {
val document = client.newCall(GET(baseUrl + episode.url)).execute().asJsoup()
Log.i("episodelink2", "$document")
val iframe = baseUrl + episode.url
Log.i("episodelink1", iframe)
return GET(iframe)
}
override fun videoListParse(response: Response): List<Video> {
val document = response.asJsoup()
Log.i("loooo", "$document")
return videosFromElement(document)
}
@ -166,26 +154,21 @@ class Animerco : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
private fun videosFromElement(document: Document): List<Video> {
val videoList = mutableListOf<Video>()
val elements = document.select(videoListSelector())
Log.i("elements", "$elements")
for (element in elements) {
val location = element.ownerDocument().location()
val videoHeaders = Headers.headersOf("Referer", location)
val qualityy = element.text()
val post = element.attr("data-post")
Log.i("lol1", post)
val num = element.attr("data-nume")
Log.i("lol1", num)
val type = element.attr("data-type")
Log.i("lol1", type)
val pageData = FormBody.Builder()
.add("action", "doo_player_ajax")
.add("nume", "$num")
.add("post", "$post")
.add("type", "$type")
.add("nume", num)
.add("post", post)
.add("type", type)
.build()
val url = "https://animerco.com/wp-json/dooplayer/v1/post/$post?type=$type&source=$num"
val ajax1 = "https://animerco.com/wp-admin/admin-ajax.php"
Log.i("lol1", url)
// val json = Json.decodeFromString<JsonObject>(Jsoup.connect(url).header("X-Requested-With", "XMLHttpRequest").ignoreContentType(true).execute().body())
/*val json = Json.decodeFromString<JsonObject>(
client.newCall(GET(url))
@ -195,11 +178,9 @@ class Animerco : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val ajax = client.newCall(POST(ajax1, videoHeaders, pageData)).execute().asJsoup()
// client.newCall(GET(url)).execute().body!!.string()
Log.i("lol1", "$ajax")
val embedUrlT = ajax.text().substringAfter("embed_url\":\"").substringBefore("\"")
val embedUrl = embedUrlT.replace("\\/", "/")
// json!!.jsonArray[0].jsonObject["embed_url"].toString().trim('"')
Log.i("lol1", embedUrl)
when {
embedUrl.contains("sbembed.com") || embedUrl.contains("sbembed1.com") || embedUrl.contains("sbplay.org") ||

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.ar.animerco.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.POST
import kotlinx.serialization.decodeFromString
@ -13,7 +12,6 @@ import okhttp3.OkHttpClient
class FembedExtractor(private val client: OkHttpClient) {
fun videosFromUrl(url: String): List<Video> {
val videoApi = url.replace("/v/", "/api/source/").replace("https://www.fembed.com", "https://suzihaza.com")
Log.i("jsoo", "$videoApi")
// val jsonR = Json.decodeFromString<JSONObject>(client.newCall(POST(videoApi)).execute().body!!.string())
/*val jsonR = Json.decodeFromString<JsonObject>(
Jsoup.connect(videoApi).ignoreContentType(true)
@ -22,18 +20,14 @@ class FembedExtractor(private val client: OkHttpClient) {
val jsonR = Json.decodeFromString<JsonObject>(
client.newCall(POST(videoApi)).execute().body!!.string()
)
Log.i("jsoo", "$jsonR")
val jsonText = client.newCall(POST(videoApi)).execute().body!!.string()
Log.i("jsoo", jsonR["success"].toString())
val videoList = mutableListOf<Video>()
if (jsonR["success"].toString() == "true") {
val videoList = mutableListOf<Video>()
jsonR["data"]!!.jsonArray.forEach() {
val videoUrl = it.jsonObject["file"].toString().trim('"')
Log.i("jsoon", "$videoUrl")
val quality = "Fembed:" + it.jsonObject["label"].toString().trim('"')
Log.i("jsoon", "$quality")
videoList.add(Video(videoUrl, quality, videoUrl, null))
}
/*val jsonArray = json.getJSONArray("data")

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.ar.animerco.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup
@ -9,14 +8,12 @@ import okhttp3.OkHttpClient
class MpforuploadExtractor(private val client: OkHttpClient) {
fun videoFromUrl(url: String, quality: String): Video? {
val document = client.newCall(GET(url)).execute().asJsoup()
Log.i("lol", "$document")
val check = document.select("div.error4shared").text()
val videoUrl = document.select("source").attr("src")
Log.i("lill", videoUrl)
if (check.contains("This file is not available any more")) {
return Video(url, "no 1video", "https", null)
return if (check.contains("This file is not available any more")) {
Video(url, "no 1video", "https", null)
} else {
return Video(url, quality, videoUrl, null)
Video(url, quality, videoUrl, null)
}
}
}

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.ar.animerco.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup
@ -9,14 +8,12 @@ import okhttp3.OkHttpClient
class SharedExtractor(private val client: OkHttpClient) {
fun videoFromUrl(url: String, quality: String): Video? {
val document = client.newCall(GET(url)).execute().asJsoup()
Log.i("lol", "$document")
val check = document.select("div.error4shared").text()
val videoUrl = document.select("source").attr("src")
Log.i("lill", videoUrl)
if (check.contains("This file is not available any more")) {
return Video(url, "no 1video", "https", null)
return if (check.contains("This file is not available any more")) {
Video(url, "no 1video", "https", null)
} else {
return Video(url, quality, videoUrl, null)
Video(url, quality, videoUrl, null)
}
}
}

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.ar.animerco.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup
@ -9,14 +8,12 @@ import okhttp3.OkHttpClient
class UQLoadExtractor(private val client: OkHttpClient) {
fun videoFromUrl(url: String, quality: String): Video? {
val document = client.newCall(GET(url)).execute().asJsoup()
Log.i("lol", "$document")
val check = document.selectFirst("script:containsData(sources)").data()
val videoUrl = check.substringAfter("sources: [\"").substringBefore("\"")
Log.i("lill", videoUrl)
if (check.contains("sources")) {
return Video(url, quality, videoUrl, null)
return if (check.contains("sources")) {
Video(url, quality, videoUrl, null)
} else {
return Video(url, "no 1video", "https", null)
Video(url, "no 1video", "https", null)
}
}
}

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.ar.animerco.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup
@ -10,14 +9,11 @@ class VidBomExtractor(private val client: OkHttpClient) {
fun videosFromUrl(url: String): List<Video> {
val doc = client.newCall(GET(url)).execute().asJsoup()
val script = doc.selectFirst("script:containsData(sources)")
Log.i("looool", "$script")
val data = script.data().substringAfter("sources: [").substringBefore("],")
Log.i("loool", "$data")
val sources = data.split("file:\"").drop(1)
val videoList = mutableListOf<Video>()
for (source in sources) {
val src = source.substringBefore("\"")
Log.i("looo", src)
val quality = "Vidbom:" + source.substringAfter("label:\"").substringBefore("\"") // .substringAfter("format: '")
val video = Video(src, quality, src, null)
videoList.add(video)

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.ar.arabseed
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
@ -71,10 +70,6 @@ class ArabSeed : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun videoListParse(response: Response): List<Video> {
val document = response.asJsoup()
val srcVid = preferences.getString("preferred_quality", "سيرفر عرب سيد - 720p")!!
Log.i(
"plsWork",
document.select("li:contains($srcVid) noscript iframe").attr("src") // :contains($srcVid)
)
val iframe = document.select("li:contains($srcVid) noscript iframe").attr("src")
val referer = response.request.url.encodedPath
val newHeaders = Headers.headersOf("referer", baseUrl + referer)
@ -86,7 +81,6 @@ class ArabSeed : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun videoListSelector() = "source" // , video"
override fun videoFromElement(element: Element): Video {
Log.i("plsWork", element.attr("src"))
return Video(element.attr("src").replace("https", "http"), "Default: If you want to change the quality go to extension settings", element.attr("src").replace("https", "http"), null)
}

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.ar.asia2tv
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
@ -109,18 +108,14 @@ class Asia2TV : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
}
url.contains("https://www.fembed.com") -> {
val apiCall = client.newCall(POST(url.replace("https://www.fembed.com/v", "http://diasfem.com/api/source"))).execute().body!!.string()
Log.i("lol", "$apiCall")
val data = apiCall.substringAfter("\"data\":[").substringBefore("],")
val sources = data.split("\"file\":\"").drop(1)
val videoList = mutableListOf<Video>()
for (source in sources) {
val src = source.substringAfter("\"file\":\"").substringBefore("\"").replace("\\/", "/")
Log.i("lol", "$src")
val quality = source.substringAfter("\"label\":\"").substringBefore("\"")
val video = Video(url, quality, src, null)
videoList.add(video)
}
return videoList
}
}
}
@ -146,7 +141,6 @@ class Asia2TV : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
Headers.headersOf("referer", url)
)
).execute().body!!.string()
Log.i("lol", "$videoUrlStart$randomString?token=$token&expiry=$expiry")
return "$videoUrlStart$randomString?token=$token&expiry=$expiry"
}

View File

@ -5,7 +5,6 @@ import android.content.SharedPreferences
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
import eu.kanade.tachiyomi.animesource.model.AnimeFilter
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
import eu.kanade.tachiyomi.animesource.model.SAnime
import eu.kanade.tachiyomi.animesource.model.SEpisode
@ -139,7 +138,6 @@ class Cartoons4U : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
return GET(url.build().toString(), headers)
}
// Anime Details
override fun animeDetailsParse(document: Document): SAnime {

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.ar.egybest
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
@ -62,36 +61,29 @@ class EgyBest : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val document = response.asJsoup()
val episodeList = mutableListOf<SEpisode>()
val seriesLink = document.select("div.movie_img a").attr("href")
Log.i("seriesLink", "$seriesLink")
if (seriesLink.contains("series")) {
val seasonUrl = seriesLink
Log.i("seasonUrl", seasonUrl)
val seasonsHtml = client.newCall(
GET(
seasonUrl
seriesLink
// headers = Headers.headersOf("Referer", document.location())
)
).execute().asJsoup()
Log.i("seasonsHtml", "$seasonsHtml")
val seasonP = seasonsHtml.selectFirst("div.contents.movies_small")
val seasonsElements = seasonP.select("a.movie")
Log.i("seasonsElements", "$seasonsElements")
seasonsElements.forEach {
val seasonEpList = parseEpisodesFromSeries(it)
episodeList.addAll(seasonEpList)
}
} else {
val movieUrl = seriesLink
val episode = SEpisode.create()
episode.name = document.select("div.movie_title h1 span").text()
episode.episode_number = 1F
episode.setUrlWithoutDomain(movieUrl)
episode.setUrlWithoutDomain(seriesLink)
episodeList.add(episode)
}
return episodeList
}
private fun parseEpisodesFromSeries(element: Element): List<SEpisode> {
val episodesUrl = element.attr("abs:href")
val episodesHtml = client.newCall(
@ -112,7 +104,6 @@ class EgyBest : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
}
val seasonName = element.ownerDocument().select("div.movie_title h1").text().replace(" مسلسل ", "")
episode.name = "$seasonName : " + element.select("span.title").text()
Log.i("episodelink", element.select("div.episodiotitle a").attr("abs:href"))
episode.setUrlWithoutDomain(element.attr("abs:href"))
return episode
}
@ -125,9 +116,7 @@ class EgyBest : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun videoListParse(response: Response): List<Video> {
val document = response.asJsoup()
Log.i("loooo", "$document")
val movUrl = document.select("div.movie_img a").attr("href")
Log.i("looo", movUrl)
val apiUrl = "https://zawmedia-api.herokuapp.com/egybest?url=$movUrl"
return videosFromElement(apiUrl)
}
@ -139,16 +128,12 @@ class EgyBest : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
.set("Sec-Fetch-Dest", "document")
.build()
val document = client.newCall(GET(url, newHeaders)).execute().asJsoup()
Log.i("tessst", "$document")
val jjson = document.text()
Log.i("text", jjson)
val data = document.text().substringAfter("[").substringBeforeLast("]")
Log.i("loool", "$data")
val sources = data.split("\"link\":\"").drop(1)
val videoList = mutableListOf<Video>()
for (source in sources) {
val src = source.substringBefore("\"")
Log.i("looo", src)
val quality = source.substringAfter("quality\":").substringBefore("}")
val video = Video(src, quality, src, null)
videoList.add(video)

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.ar.faselhd
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
@ -109,11 +108,9 @@ class FASELHD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun videoListSelector() = "button.hd_btn:contains(auto)"
private fun videosFromElement(element: Element, headers: Headers): List<Video> {
//val masterUrl = element.data().substringAfter("setup({\"file\":\"").substringBefore("\"").replace("\\/", "/")
// val masterUrl = element.data().substringAfter("setup({\"file\":\"").substringBefore("\"").replace("\\/", "/")
val masterUrl = element.attr("data-url")
Log.i("lol", masterUrl)
val masterPlaylist = client.newCall(GET(masterUrl, headers)).execute().body!!.string()
Log.i("lol", "$masterPlaylist")
val videoList = mutableListOf<Video>()
masterPlaylist.substringAfter("#EXT-X-STREAM-INF:").split("#EXT-X-STREAM-INF:").forEach {
val quality = it.substringAfter("RESOLUTION=").substringAfter("x").substringBefore(",") + "p"

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.ar.faselhdmovies
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
@ -89,11 +88,9 @@ class FASELHDMOVIES : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun videoListSelector() = "button.hd_btn:contains(auto)"
private fun videosFromElement(element: Element, headers: Headers): List<Video> {
//val masterUrl = element.data().substringAfter("setup({\"file\":\"").substringBefore("\"").replace("\\/", "/")
// val masterUrl = element.data().substringAfter("setup({\"file\":\"").substringBefore("\"").replace("\\/", "/")
val masterUrl = element.attr("data-url")
Log.i("lol", masterUrl)
val masterPlaylist = client.newCall(GET(masterUrl, headers)).execute().body!!.string()
Log.i("lol", "$masterPlaylist")
val videoList = mutableListOf<Video>()
masterPlaylist.substringAfter("#EXT-X-STREAM-INF:").split("#EXT-X-STREAM-INF:").forEach {
val quality = it.substringAfter("RESOLUTION=").substringAfter("x").substringBefore(",") + "p"

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.ar.movies4u
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
@ -99,11 +98,9 @@ class Movies4U : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
private fun parseEpisodesFromSeries(element: Element): List<SEpisode> {
val seasonId = element.select("div.card__content h3.card__title a").attr("href")
val seasonName = element.select("div.card__content h3.card__title a").text()
Log.i("seasonname", seasonName)
val episodesUrl = seasonId
val episodesHtml = client.newCall(
GET(
episodesUrl,
seasonId,
)
).execute().asJsoup()
val episodeElements = episodesHtml.select("div.col-6.col-sm-4.col-md-3.col-xl-2")
@ -125,15 +122,12 @@ class Movies4U : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val document = response.asJsoup()
val iframe1 = client.newCall(GET(document.selectFirst("iframe#video").attr("data-src")))
.execute().asJsoup()
Log.i("lol", "$iframe1")
val iframe = iframe1.selectFirst("iframe").attr("src")
Log.i("lol", "$iframe")
val referer = response.request.url.encodedPath
val newHeaders = Headers.headersOf("referer", baseUrl + referer)
val iframeResponse = client.newCall(GET(iframe, newHeaders))
.execute().asJsoup()
Log.i("lol", "$iframeResponse")
return videosFromElement(iframeResponse.selectFirst(videoListSelector()))
}
@ -180,7 +174,6 @@ class Movies4U : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val tokenUrl = client.newCall(GET(baseUrl))
.execute().asJsoup()
val token = tokenUrl.select("meta[name=csrf-token]").attr("content")
Log.i("token", "$token")
return token
}
/*private fun loadToken(): String? {
@ -212,17 +205,15 @@ class Movies4U : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
when (filter) {
is GenreList -> {
if (filter.state > 0) {
val GenreN = getGenreList()[filter.state].query
val genreUrl = "$baseUrl/movies?category=$GenreN&quality=&imdb=0.0|10.0&year=1900|2021&page=$page"
Log.i("lol", genreUrl)
val genreN = getGenreList()[filter.state].query
val genreUrl = "$baseUrl/movies?category=$genreN&quality=&imdb=0.0|10.0&year=1900|2021&page=$page"
return GET(genreUrl, headers)
}
}
is GenreList2 -> {
if (filter.state > 0) {
val GenreN = getGenreList()[filter.state].query
val genreUrl = "$baseUrl/series?category=$GenreN&quality=undefined&imdb=0.0|10.0&year=1900|2021&page=$page"
Log.i("lol", genreUrl)
val genreN = getGenreList()[filter.state].query
val genreUrl = "$baseUrl/series?category=$genreN&quality=undefined&imdb=0.0|10.0&year=1900|2021&page=$page"
return GET(genreUrl, headers)
}
}

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.en.allmovies
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
@ -95,7 +94,6 @@ class AllMovies : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
private fun parseEpisodesFromSeries(element: Element): List<SEpisode> {
val seasonId = element.attr("abs:href")
val seasonName = element.text()
Log.i("seasonname", seasonName)
val episodesUrl = seasonId
val episodesHtml = client.newCall(
GET(
@ -135,7 +133,6 @@ class AllMovies : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val elements = document.select(videoListSelector())
for (element in elements) {
val url = element.attr("abs:src")
Log.i("lol", url)
val location = element.ownerDocument().location()
val videoHeaders = Headers.headersOf("Referer", location)
when {
@ -149,9 +146,7 @@ class AllMovies : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val script = response.selectFirst("script:containsData(m3u8)")
val data = script.data()
val masterUrl = masterExtractor(data)
Log.i("lol1", masterUrl)
val masterPlaylist = client.newCall(GET(masterUrl)).execute().body!!.string()
Log.i("lol2", masterPlaylist)
val videoList = mutableListOf<Video>()
masterPlaylist.substringAfter("#EXT-X-STREAM-INF:").split("#EXT-X-STREAM-INF:").forEach {
val quality = it.substringAfter("RESOLUTION=").substringAfter("x").substringBefore(",") + "p"
@ -205,7 +200,6 @@ class AllMovies : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
Headers.headersOf("referer", url)
)
).execute().body!!.string()
Log.i("lol", "$videoUrlStart$randomString?token=$token&expiry=$expiry")
return "$videoUrlStart$randomString?token=$token&expiry=$expiry"
}
@ -274,7 +268,6 @@ class AllMovies : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val anime = SAnime.create()
anime.title = document.select("div.TPMvCn h1.Title").text()
anime.genre = document.select("p.Genre a").joinToString(", ") { it.text() }
Log.i("status", document.select("div.Info").text())
anime.status = parseStatus(document.select("div.Info").text()) // span.Qlty
anime.author = document.select("p.Director span a").joinToString(", ") { it.text() }
anime.description = document.select("div.TPMvCn div.Description p:first-of-type").text()

View File

@ -60,7 +60,7 @@ class AnimeKisa : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun popularAnimeNextPageSelector(): String = "ul.pagination li.page-item a[rel=next]"
// episodes
override fun episodeListParse(response: Response): List<SEpisode> {
return super.episodeListParse(response).reversed()
}

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.en.animepahe
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import androidx.preference.SwitchPreferenceCompat
@ -175,7 +174,6 @@ class AnimePahe : ConfigurableAnimeSource, AnimeHttpSource() {
override fun episodeListRequest(anime: SAnime): Request {
val animeId = anime.url.substringAfterLast("?anime_id=")
val session = getSession(anime.title, animeId)
Log.i("bruh", session)
return GET("$baseUrl/api?m=release&id=$session&sort=episode_desc&page=1")
}

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.en.asianload
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.en.asianload.extractors.DoodExtractor
@ -106,7 +105,6 @@ class AsianLoad : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val elements = document.select(videoListSelector())
for (element in elements) {
val url = element.attr("data-video")
Log.i("lol", url)
val location = element.ownerDocument().location()
val videoHeaders = Headers.headersOf("Referer", location)
when {

View File

@ -29,7 +29,7 @@ class StreamSBExtractor(private val client: OkHttpClient) {
val bytes = id.toByteArray()
val bytesToHex = bytesToHex(bytes)
val master = "https://sbplay2.com/sources43/566d337678566f743674494a7c7c${bytesToHex}7c7c346b6767586d6934774855537c7c73747265616d7362/6565417268755339773461447c7c346133383438333436313335376136323337373433383634376337633465366534393338373136643732373736343735373237613763376334363733353737303533366236333463353333363534366137633763373337343732363536313664373336327c7c6b586c3163614468645a47617c7c73747265616d7362"
//"https://sbplay2.com/sourcesx38/4f395a53447166635a3836787c7c${bytesToHex}7c7c7965344f61436d467845586c7c7c73747265616d7362/6e56314c77564e6a6c6631737c7c333735383537363836633662373635323636376133343637376337633335346334343332353735343333366633343635346336383763376334313561373633343761346133303665363837363537353937633763373337343732363536313664373336327c7c395239444c3961626d634e6a7c7c73747265616d7362"
// "https://sbplay2.com/sourcesx38/4f395a53447166635a3836787c7c${bytesToHex}7c7c7965344f61436d467845586c7c7c73747265616d7362/6e56314c77564e6a6c6631737c7c333735383537363836633662373635323636376133343637376337633335346334343332353735343333366633343635346336383763376334313561373633343761346133303665363837363537353937633763373337343732363536313664373336327c7c395239444c3961626d634e6a7c7c73747265616d7362"
val json = Json.decodeFromString<JsonObject>(
client.newCall(GET(master, headers))
.execute().body!!.string()

View File

@ -4,7 +4,6 @@ import android.app.Application
import android.content.SharedPreferences
import android.net.Uri
import android.util.Base64
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
@ -85,7 +84,7 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val seasonsElements = seasonsHtml.select("a.dropdown-item.ss-item")
seasonsElements.forEach {
val seasonEpList = parseEpisodesFromSeries(it)
episodeList.addAll(seasonEpList)
episodeList.addAll(seasonEpList)
}
} else {
val movieUrl = "https://dopebox.to/ajax/movie/episodes/$id"
@ -139,14 +138,11 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
// get embed id
val getVidID = document.selectFirst("a").attr("data-id")
Log.i("lol2", "$getVidID")
val getVidApi = client.newCall(GET("https://dopebox.to/ajax/get_link/" + getVidID)).execute().asJsoup()
// streamrapid URL
val getVideoEmbed = getVidApi.text().substringAfter("link\":\"").substringBefore("\"")
Log.i("lol3", "$getVideoEmbed")
val videoEmbedUrlId = getVideoEmbed.substringAfterLast("/").substringBefore("?")
Log.i("videoEmbedId", "$videoEmbedUrlId")
val callVideolink = client.newCall(GET(getVideoEmbed, refererHeaders)).execute().asJsoup()
val uri = Uri.parse(getVideoEmbed)
val domain = (Base64.encodeToString((uri.scheme + "://" + uri.host + ":443").encodeToByteArray(), Base64.NO_PADDING) + ".").replace("\n", "")
@ -167,7 +163,6 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
.build()
val iframeResponse = client.newCall(GET(jsonLink, reloadHeaderss))
.execute().asJsoup()
Log.i("iframere", "$iframeResponse")
return videosFromElement(iframeResponse)
}

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.en.dramacool
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.en.dramacool.extractors.DoodExtractor
@ -104,7 +103,6 @@ class DramaCool : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val elements = document.select(videoListSelector())
for (element in elements) {
val url = element.attr("data-video")
Log.i("lol", url)
val location = element.ownerDocument().location()
val videoHeaders = Headers.headersOf("Referer", location)
when {

View File

@ -29,7 +29,7 @@ class StreamSBExtractor(private val client: OkHttpClient) {
val bytes = id.toByteArray()
val bytesToHex = bytesToHex(bytes)
val master = "https://sbplay2.com/sources43/566d337678566f743674494a7c7c${bytesToHex}7c7c346b6767586d6934774855537c7c73747265616d7362/6565417268755339773461447c7c346133383438333436313335376136323337373433383634376337633465366534393338373136643732373736343735373237613763376334363733353737303533366236333463353333363534366137633763373337343732363536313664373336327c7c6b586c3163614468645a47617c7c73747265616d7362"
//"https://sbplay2.com/sourcesx38/4f395a53447166635a3836787c7c${bytesToHex}7c7c7965344f61436d467845586c7c7c73747265616d7362/6e56314c77564e6a6c6631737c7c333735383537363836633662373635323636376133343637376337633335346334343332353735343333366633343635346336383763376334313561373633343761346133303665363837363537353937633763373337343732363536313664373336327c7c395239444c3961626d634e6a7c7c73747265616d7362"
// "https://sbplay2.com/sourcesx38/4f395a53447166635a3836787c7c${bytesToHex}7c7c7965344f61436d467845586c7c7c73747265616d7362/6e56314c77564e6a6c6631737c7c333735383537363836633662373635323636376133343637376337633335346334343332353735343333366633343635346336383763376334313561373633343761346133303665363837363537353937633763373337343732363536313664373336327c7c395239444c3961626d634e6a7c7c73747265616d7362"
val json = Json.decodeFromString<JsonObject>(
client.newCall(GET(master, headers))
.execute().body!!.string()

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.en.genoanime
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.en.genoanime.extractors.DoodExtractor
@ -121,7 +120,6 @@ class GenoAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val elements = document.select(videoListSelector())
for (element in elements) {
val url = element.attr("data-video")
Log.i("lol", url)
val location = element.ownerDocument().location()
val videoHeaders = Headers.headersOf("Referer", location)
when {

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.en.genoanime.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import kotlinx.serialization.decodeFromString
@ -27,21 +26,15 @@ class StreamSBExtractor(private val client: OkHttpClient) {
fun videosFromUrl(url: String, headers: Headers): List<Video> {
val id = url.substringAfter("e/")
Log.i("id", id)
val bytes = id.toByteArray()
Log.i("bytes", "$bytes")
val bytesToHex = bytesToHex(bytes)
Log.i("bytesToHex", bytesToHex)
val master = "https://sbplay2.com/sources43/566d337678566f743674494a7c7c${bytesToHex}7c7c346b6767586d6934774855537c7c73747265616d7362/6565417268755339773461447c7c346133383438333436313335376136323337373433383634376337633465366534393338373136643732373736343735373237613763376334363733353737303533366236333463353333363534366137633763373337343732363536313664373336327c7c6b586c3163614468645a47617c7c73747265616d7362"
Log.i("master", master)
val json = Json.decodeFromString<JsonObject>(
client.newCall(GET(master, headers))
.execute().body!!.string()
)
Log.i("json", "$json")
val masterUrl = json["stream_data"]!!.jsonObject["file"].toString().trim('"')
val masterPlaylist = client.newCall(GET(masterUrl, headers)).execute().body!!.string()
Log.i("masterplayl", masterPlaylist)
val videoList = mutableListOf<Video>()
masterPlaylist.substringAfter("#EXT-X-STREAM-INF:").split("#EXT-X-STREAM-INF:").forEach {
val quality = "StreamSB:" + it.substringAfter("RESOLUTION=").substringAfter("x").substringBefore(",") + "p"

View File

@ -1,7 +1,6 @@
package eu.kanade.tachiyomi.animeextension.en.gogoanime.extractors
import android.util.Base64
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup
@ -25,7 +24,6 @@ import javax.crypto.spec.SecretKeySpec
class GogoCdnExtractor(private val client: OkHttpClient, private val json: Json) {
fun videosFromUrl(serverUrl: String): List<Video> {
try {
Log.i("bruh", serverUrl)
val document = client.newCall(GET(serverUrl)).execute().asJsoup()
val iv = document.select("div.wrapper")
.attr("class").substringAfter("container-")
@ -41,13 +39,11 @@ class GogoCdnExtractor(private val client: OkHttpClient, private val json: Json)
.attr("data-value"),
iv, secretKey, false
).substringAfter("&")
Log.i("bruh", encryptAjaxParams)
val httpUrl = serverUrl.toHttpUrl()
val host = "https://" + httpUrl.host + "/"
val id = httpUrl.queryParameter("id") ?: throw Exception("error getting id")
val encryptedId = cryptoHandler(id, iv, secretKey)
Log.i("bruh", "${host}encrypt-ajax.php?id=$encryptedId&$encryptAjaxParams&alias=$id")
val token = httpUrl.queryParameter("token")
val qualityPrefix = if (token != null) "Gogostream: " else "Vidstreaming: "

View File

@ -4,7 +4,6 @@ import android.app.Application
import android.content.SharedPreferences
import android.net.Uri
import android.util.Base64
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
@ -40,7 +39,7 @@ class SFlix : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override val client: OkHttpClient = network.cloudflareClient
//private val domain = "aHR0cHM6Ly9yYWJiaXRzdHJlYW0ubmV0OjQ0Mw.."
// private val domain = "aHR0cHM6Ly9yYWJiaXRzdHJlYW0ubmV0OjQ0Mw.."
private val preferences: SharedPreferences by lazy {
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
@ -139,14 +138,11 @@ class SFlix : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
// get embed id
val getVidID = document.selectFirst("a").attr("data-id")
Log.i("lol2", "$getVidID")
val getVidApi = client.newCall(GET("https://dopebox.to/ajax/get_link/" + getVidID)).execute().asJsoup()
// streamrapid URL
val getVideoEmbed = getVidApi.text().substringAfter("link\":\"").substringBefore("\"")
Log.i("lol3", "$getVideoEmbed")
val videoEmbedUrlId = getVideoEmbed.substringAfterLast("/").substringBefore("?")
Log.i("videoEmbedId", "$videoEmbedUrlId")
val callVideolink = client.newCall(GET(getVideoEmbed, refererHeaders)).execute().asJsoup()
val uri = Uri.parse(getVideoEmbed)
val domain = (Base64.encodeToString((uri.scheme + "://" + uri.host + ":443").encodeToByteArray(), Base64.NO_PADDING) + ".").replace("\n", "")
@ -167,7 +163,6 @@ class SFlix : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
.build()
val iframeResponse = client.newCall(GET(jsonLink, reloadHeaderss))
.execute().asJsoup()
Log.i("iframere", "$iframeResponse")
return videosFromElement(iframeResponse)
}

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.en.vidembed.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import kotlinx.serialization.decodeFromString
@ -27,21 +26,15 @@ class StreamSBExtractor(private val client: OkHttpClient) {
fun videosFromUrl(url: String, headers: Headers): List<Video> {
val id = url.substringAfter("e/").substringBefore("?")
Log.i("id", id)
val bytes = id.toByteArray()
Log.i("bytes", "$bytes")
val bytesToHex = bytesToHex(bytes)
Log.i("bytesToHex", bytesToHex)
val master = "https://sbplay2.com/sources43/566d337678566f743674494a7c7c${bytesToHex}7c7c346b6767586d6934774855537c7c73747265616d7362/6565417268755339773461447c7c346133383438333436313335376136323337373433383634376337633465366534393338373136643732373736343735373237613763376334363733353737303533366236333463353333363534366137633763373337343732363536313664373336327c7c6b586c3163614468645a47617c7c73747265616d7362"
Log.i("master", master)
val json = Json.decodeFromString<JsonObject>(
client.newCall(GET(master, headers))
.execute().body!!.string()
)
Log.i("json", "$json")
val masterUrl = json["stream_data"]!!.jsonObject["file"].toString().trim('"')
val masterPlaylist = client.newCall(GET(masterUrl, headers)).execute().body!!.string()
Log.i("masterplayl", masterPlaylist)
val videoList = mutableListOf<Video>()
masterPlaylist.substringAfter("#EXT-X-STREAM-INF:").split("#EXT-X-STREAM-INF:").forEach {
val quality = "StreamSB:" + it.substringAfter("RESOLUTION=").substringAfter("x").substringBefore(",") + "p"

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.en.wcostream
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
@ -92,21 +91,16 @@ class WCOStream : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val referer = response.request.url.encodedPath
val newHeaders = Headers.headersOf("referer", baseUrl + referer)
val iframe = document.selectFirst("div#servers-list ul.nav li a:contains(VidStream)").attr("data-embed")
Log.i("lol0", iframe)
val getSKey = client.newCall(GET(iframe, newHeaders)).execute().body!!.string() // .asJsoup()
Log.i("lol1", "$getSKey")
val sKey = getSKey.substringAfter("window.skey = '").substringBefore("'")
Log.i("lol2", sKey)
val apiHeaders = headers.newBuilder()
.set("referer1", "$iframe")
.build()
val apiLink = iframe.replace("/e/", "/info/") + "&skey=" + sKey
Log.i("lol3", apiLink)
/*val referer = response.request.url.toString()
val refererHeaders = Headers.headersOf("referer", referer)*/
val iframeResponse = client.newCall(GET(apiLink, apiHeaders))
.execute().asJsoup()
Log.i("lol4", "$iframeResponse")
return videosFromElement(iframeResponse) // .selectFirst(videoListSelector())
}
@ -114,9 +108,7 @@ class WCOStream : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
private fun videosFromElement(element: Element): List<Video> {
val masterUrl = element.text().substringAfterLast("file\":\"").substringBeforeLast("\"}").replace("\\/", "/")
Log.i("lol5", masterUrl)
val masterPlaylist = client.newCall(GET(masterUrl)).execute().body!!.string()
Log.i("lol6", "$masterPlaylist")
val videoList = mutableListOf<Video>()
masterPlaylist.substringAfter("#EXT-X-STREAM-INF:").split("#EXT-X-STREAM-INF:").forEach {
val quality = it.substringAfter("RESOLUTION=").substringAfter("x").substringBefore("hls").replace("\n", "") + "p"

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.es.animefenix
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.es.animefenix.extractors.FembedExtractor
@ -66,7 +65,6 @@ class Animefenix : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
jsoup.select("ul.anime-page__episode-list.is-size-6 li").forEach { it ->
val epNum = it.select("a span").text().replace("Episodio", "")
Log.i("bruh", "Episode-$epNum")
val episode = SEpisode.create().apply {
episode_number = epNum.toFloat()
name = "Episodio $epNum"
@ -95,8 +93,6 @@ class Animefenix : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
.substringAfter("code=")
.substringBefore("&amp")
Log.i("bruh", "1Server:$server, ServerId:$serverId")
if (server == "Fembed" || server == "fembed") {
val fembedUrl = "https://www.fembed.com/v/$serverCode"
val video = FembedExtractor().videosFromUrl(fembedUrl)
@ -126,7 +122,6 @@ class Animefenix : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val videoUrl = jsoup.select("body script").toString()
.substringAfter("[{\"file\":\"")
.substringBefore("\",").replace("\\", "")
Log.i("bruh", videoUrl)
return videoUrl
}

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.es.animefenix.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup
@ -14,7 +13,6 @@ class SolidFilesExtractor(private val client: OkHttpClient) {
if (script.data().contains("\"downloadUrl\":")) {
val data = script.data().substringAfter("\"downloadUrl\":").substringBefore(",")
val url = data.replace("\"", "")
Log.i("bruh", "$url")
val videoUrl = url
val quality = "SolidFiles"
videoList.add(Video(videoUrl, quality, videoUrl, null))

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.es.animeflv.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import kotlinx.serialization.decodeFromString
@ -27,22 +26,16 @@ class StreamSBExtractor(private val client: OkHttpClient) {
fun videosFromUrl(url: String, headers: Headers): List<Video> {
val id = url.substringAfter("e/").substringBefore(".html")
Log.i("id", id)
val bytes = id.toByteArray()
Log.i("bytes", "$bytes")
val bytesToHex = bytesToHex(bytes)
Log.i("bytesToHex", bytesToHex)
val master =
"https://embedsb.com/sources43/566d337678566f743674494a7c7c${bytesToHex}7c7c346b6767586d6934774855537c7c73747265616d7362/6565417268755339773461447c7c346133383438333436313335376136323337373433383634376337633465366534393338373136643732373736343735373237613763376334363733353737303533366236333463353333363534366137633763373337343732363536313664373336327c7c6b586c3163614468645a47617c7c73747265616d7362"
Log.i("master", master)
val json = Json.decodeFromString<JsonObject>(
client.newCall(GET(master, headers))
.execute().body!!.string()
)
Log.i("json", "$json")
val masterUrl = json["stream_data"]!!.jsonObject["file"].toString().trim('"')
val masterPlaylist = client.newCall(GET(masterUrl, headers)).execute().body!!.string()
Log.i("masterplayl", masterPlaylist)
val videoList = mutableListOf<Video>()
masterPlaylist.substringAfter("#EXT-X-STREAM-INF:").split("#EXT-X-STREAM-INF:").forEach {
val quality = "StreamSB:" + it.substringAfter("RESOLUTION=").substringAfter("x")

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.es.hentaila
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.es.hentaila.extractors.FembedExtractor
@ -69,14 +68,11 @@ class Hentaila : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun episodeListParse(response: Response): List<SEpisode> {
val episodes = mutableListOf<SEpisode>()
val animeId = response.request.url.toString().replace("https://hentaila.com/hentai-", "").toLowerCase()
Log.i("bruh", "AnimeID: $animeId")
val jsoup = response.asJsoup()
jsoup.select("div.episodes-list article").forEach { it ->
val epNum = it.select("a").attr("href").replace("/ver/$animeId-", "")
val test = it.select("a").attr("href")
Log.i("bruh", "TEST: $test")
Log.i("bruh", "Episode-$epNum")
val episode = SEpisode.create().apply {
episode_number = epNum.toFloat()
name = "Episodio $epNum"
@ -96,20 +92,15 @@ class Hentaila : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun videoListParse(response: Response): List<Video> {
val document = response.asJsoup()
val videoList = mutableListOf<Video>()
Log.i("bruh", "${response.request.url}")
document.select("script").forEach { it ->
if (it.data().contains("var videos = [")) {
val data = it.data().substringAfter("var videos = [").substringBefore("];")
val arcUrl = data.substringAfter("[\"Arc\",\"").substringBefore("\",").replace("\\", "")
val fembedUrl = data.substringAfter("[\"Fembed\",\"").substringBefore("\",").replace("\\", "")
if (fembedUrl != null) {
val videos = FembedExtractor().videosFromUrl(fembedUrl)
videoList.addAll(videos)
}
if (arcUrl != null) {
val url = arcUrl.replace("/direct.html#", "")
videoList.add(Video(url, "Arc", url, null))
}
val videos = FembedExtractor().videosFromUrl(fembedUrl)
videoList.addAll(videos)
val url = arcUrl.replace("/direct.html#", "")
videoList.add(Video(url, "Arc", url, null))
}
}
return videoList
@ -151,7 +142,6 @@ class Hentaila : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
// val animeSlug = anime["slug"]
// }
Log.i("bruh", "$jsonObject.toString()")
return when {
query.isNotBlank() && jsonObject.toString() != "[]" -> GET("https://hentaila.com/hentai-${JSONObject(jsonObject[0].toString())["slug"]}")
genreFilter.state != 0 -> GET("$baseUrl/genero/${genreFilter.toUriPart()}?p=$page")
@ -160,8 +150,6 @@ class Hentaila : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
}
override fun searchAnimeFromElement(element: Element): SAnime {
Log.i("bruh", "${element.select("article.hentai-single")}")
val animeId = element.select("article.hentai-single header.h-header h1").text().replace(" ", "-").replace("!", "")
val animeSearch = SAnime.create()

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.es.jkhentai
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.es.jkhentai.extractors.StreamTapeExtractor
@ -61,12 +60,9 @@ class Jkhentai : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val jsoup = response.asJsoup()
val animeId = response.request.url.pathSegments.last().replace("-sub-espanol", "").replace("-080p", "-1080p")
Log.i("bruh", "$animeId")
jsoup.select("div#contenedor div.items.ptts div#movie div.post div#cssmenu ul li.has-sub.open ul li").forEach { it ->
Log.i("bruh", "e")
val epNum = it.select("a").attr("href").replace("https://www.jkhentai.net/ver/$animeId-", "")
Log.i("bruh", "Episode-$epNum")
val episode = SEpisode.create().apply {
episode_number = epNum.toFloat()
name = "Episodio $epNum"
@ -88,7 +84,6 @@ class Jkhentai : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val videoList = mutableListOf<Video>()
document.select("div#contenedor div.items.ptts div#movie div.post div#player-container ul.player-menu li").forEach { it ->
val server = it.select("a").text()
Log.i("bruh", "1Server:$server")
document.select("div#contenedor div.items.ptts div#movie div.post div#player-container div.play-c").forEach() {
if (server == "StreamTape") {
val url = it.select("div.player-content iframe").attr("src")

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.es.jkhentai.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup
@ -14,7 +13,6 @@ class SolidFilesExtractor(private val client: OkHttpClient) {
if (script.data().contains("\"downloadUrl\":")) {
val data = script.data().substringAfter("\"downloadUrl\":").substringBefore(",")
val url = data.replace("\"", "")
Log.i("bruh", "$url")
val videoUrl = url
val quality = "SolidFiles"
videoList.add(Video(videoUrl, quality, videoUrl, null))

View File

@ -3,7 +3,6 @@ package eu.kanade.tachiyomi.animeextension.es.monoschinos
import android.app.Application
import android.content.SharedPreferences
import android.util.Base64
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.es.monoschinos.extractors.FembedExtractor
@ -64,11 +63,9 @@ class MonosChinos : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val jsoup = response.asJsoup()
val animeId = response.request.url.pathSegments.last().replace("-sub-espanol", "").replace("-080p", "-1080p")
Log.i("bruh", "$animeId")
jsoup.select("div.heroarea2 div.heromain2 div.allanimes div.row.jpage.row-cols-md-6 div.col-item").forEach { it ->
val epNum = it.attr("data-episode")
Log.i("bruh", "Episode-$epNum")
val episode = SEpisode.create().apply {
episode_number = epNum.toFloat()
name = "Episodio $epNum"
@ -92,9 +89,7 @@ class MonosChinos : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val server = it.select("a").text()
val urlBase64 = it.select("a").attr("data-player")
val url1 = Base64.decode(urlBase64, Base64.DEFAULT)
Log.i("bruh", "$url1")
val url = String(url1).replace("https://monoschinos2.com/reproductor?url=", "")
Log.i("bruh", "$url")
if (server == "fembed" || server == "Fembed") {
val videos = FembedExtractor().videosFromUrl(url)

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.es.monoschinos.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup
@ -13,9 +12,7 @@ class SolidFilesExtractor(private val client: OkHttpClient) {
document.select("script").forEach { script ->
if (script.data().contains("\"downloadUrl\":")) {
val data = script.data().substringAfter("\"downloadUrl\":").substringBefore(",")
val url = data.replace("\"", "")
Log.i("bruh", "$url")
val videoUrl = url
val videoUrl = data.replace("\"", "")
val quality = "SolidFiles"
videoList.add(Video(videoUrl, quality, videoUrl, null))
}

View File

@ -3,7 +3,6 @@ package eu.kanade.tachiyomi.animeextension.es.pelisplushd
import android.app.Application
import android.content.SharedPreferences
import android.util.Base64
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.es.pelisplushd.extractors.FembedExtractor
@ -71,14 +70,12 @@ class Pelisplushd : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
episodes.add(episode)
} else {
jsoup.select("div.tab-content div a").forEachIndexed { index, element ->
Log.i("bruh", "episodio:$index, nombre:${element.text()}")
val epNum = index + 1
val episode = SEpisode.create()
episode.episode_number = epNum.toFloat()
episode.name = element.text()
episode.setUrlWithoutDomain(element.attr("href"))
episodes.add(episode)
Log.i("bruh", episodes[index].name)
}
episodes.removeLast()
}

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.es.pelisplushd.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import kotlinx.serialization.decodeFromString
@ -27,22 +26,16 @@ class StreamSBExtractor(private val client: OkHttpClient) {
fun videosFromUrl(url: String, headers: Headers): List<Video> {
val id = url.substringAfter("embed-").substringBefore(".html").substringAfter("/e/")
Log.i("id", id)
val bytes = id.toByteArray()
Log.i("bytes", "$bytes")
val bytesToHex = bytesToHex(bytes)
Log.i("bytesToHex", bytesToHex)
val master =
"https://embedsb.com/sources43/566d337678566f743674494a7c7c${bytesToHex}7c7c346b6767586d6934774855537c7c73747265616d7362/6565417268755339773461447c7c346133383438333436313335376136323337373433383634376337633465366534393338373136643732373736343735373237613763376334363733353737303533366236333463353333363534366137633763373337343732363536313664373336327c7c6b586c3163614468645a47617c7c73747265616d7362"
Log.i("master", master)
val json = Json.decodeFromString<JsonObject>(
client.newCall(GET(master, headers))
.execute().body!!.string()
)
Log.i("json", "$json")
val masterUrl = json["stream_data"]!!.jsonObject["file"].toString().trim('"')
val masterPlaylist = client.newCall(GET(masterUrl, headers)).execute().body!!.string()
Log.i("masterplayl", masterPlaylist)
val videoList = mutableListOf<Video>()
masterPlaylist.substringAfter("#EXT-X-STREAM-INF:").split("#EXT-X-STREAM-INF:").forEach {
val quality = "StreamSB:" + it.substringAfter("RESOLUTION=").substringAfter("x")

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.fr.vostfree
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.fr.vostfree.extractors.DoodExtractor
@ -57,7 +56,6 @@ class Vostfree : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun popularAnimeRequest(page: Int): Request = GET("https://vostfree.tv/films-vf-vostfr/page/$page/")
override fun popularAnimeFromElement(element: Element): SAnime {
Log.i("bruh", "${element.baseUri()}")
val anime = SAnime.create()
anime.setUrlWithoutDomain(
element.select("div.movie-poster div.play a").attr("href")
@ -74,8 +72,6 @@ class Vostfree : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val jsoup = response.asJsoup()
jsoup.select("select.new_player_selector option").forEach { it ->
val epNum = it.text().replace("Episode", "").drop(2)
Log.i("Bruh", "Episodio:$epNum")
Log.i("bruh", "${response.request.url}-episode:0;")
if (it.text() == "Film") {
val episode = SEpisode.create().apply {
@ -104,10 +100,8 @@ class Vostfree : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun episodeFromElement(element: Element) = throw Exception("not used")
override fun videoListParse(response: Response): List<Video> {
Log.i("bruh", "aaa${response.request.url}")
val epNum = response.request.url.toString().substringAfter("https://vostfree.tv/?episode:").substringBefore("/")
val realUrl = response.request.url.toString().replace("https://vostfree.tv/?episode:$epNum/", "")
Log.i("bruh", "RealURL: $realUrl")
val document = Jsoup.connect(realUrl).get()
val videoList = mutableListOf<Video>()
val allPlayerIds = document.select("div.tab-content div div.new_player_top div.new_player_bottom div.button_box")[epNum.toInt()]

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.fr.vostfree.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup
@ -14,7 +13,6 @@ class MytvExtractor(private val client: OkHttpClient) {
if (script.data().contains("CreatePlayer(\"v")) {
val videosString = script.data().toString()
val videoUrl = videosString.substringAfter("\"v=").substringBefore("\\u0026tp=video").replace("%26", "&").replace("%3a", ":").replace("%2f", "/").replace("%3f", "?").replace("%3d", "=")
Log.i("bruh", "URL: $videoUrl")
if (!videoUrl.contains("https:")) {
val videoUrl = "https:$videoUrl"
videoList.add(Video(videoUrl, "Stream", videoUrl, null))

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.fr.vostfree.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup
@ -8,15 +7,11 @@ import okhttp3.OkHttpClient
class VudeoExtractor(private val client: OkHttpClient) {
fun videosFromUrl(url: String): List<Video> {
Log.i("bruh", "test12")
val document = client.newCall(GET(url)).execute().asJsoup()
val videoList = mutableListOf<Video>()
document.select("script").forEach { script ->
if (script.data().contains("sources: [\"")) {
val data = script.data().substringAfter("sources: [\"").substringBefore("\"],")
val url = data
Log.i("bruh", "$url")
val videoUrl = url
val videoUrl = script.data().substringAfter("sources: [\"").substringBefore("\"],")
val quality = "Vudeo"
videoList.add(Video(videoUrl, quality, videoUrl, null))
}

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.hi.animeWorld
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.hi.animeWorld.extractors.StreamSBExtractor
@ -73,7 +72,6 @@ class AnimeWorld : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
episodeList
} else {
val seasonDataElements = document.select("li.sel-temp")
Log.d("season", seasonDataElements.toString())
val episodesList = mutableListOf<SEpisode>()
seasonDataElements.map {
val epList = episodeFromSeason(it)

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.hi.animeWorld.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import kotlinx.serialization.decodeFromString
@ -28,21 +27,15 @@ class StreamSBExtractor(private val client: OkHttpClient) {
fun videosFromUrl(url: String, headers: Headers, language: String): List<Video> {
val id = url.substringAfter("e/").substringBefore(".html")
Log.i("id", id)
val bytes = id.toByteArray()
Log.i("bytes", "$bytes")
val bytesToHex = bytesToHex(bytes)
Log.i("bytesToHex", bytesToHex)
val master = "https://sbplay2.com/sources43/566d337678566f743674494a7c7c${bytesToHex}7c7c346b6767586d6934774855537c7c73747265616d7362/6565417268755339773461447c7c346133383438333436313335376136323337373433383634376337633465366534393338373136643732373736343735373237613763376334363733353737303533366236333463353333363534366137633763373337343732363536313664373336327c7c6b586c3163614468645a47617c7c73747265616d7362"
Log.i("master", master)
val json = Json.decodeFromString<JsonObject>(
client.newCall(GET(master, headers))
.execute().body!!.string()
)
Log.i("json", "$json")
val masterUrl = json["stream_data"]!!.jsonObject["file"]!!.jsonPrimitive.content
val masterPlaylist = client.newCall(GET(masterUrl, headers)).execute().body!!.string()
Log.i("masterplayl", masterPlaylist)
val videoList = mutableListOf<Video>()
masterPlaylist.substringAfter("#EXT-X-STREAM-INF:").split("#EXT-X-STREAM-INF:").forEach {
val quality = "$language :" + it.substringAfter("RESOLUTION=").substringAfter("x").substringBefore(",") + "p"

View File

@ -19,10 +19,7 @@ import org.jsoup.nodes.Element
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.lang.Exception
import java.lang.RuntimeException
import java.lang.StringBuilder
import java.net.URLDecoder
import java.text.SimpleDateFormat
import java.util.Locale
class MiniOppai : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
@ -42,7 +39,7 @@ class MiniOppai : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
anime.title = infox.select("div.infox > h1").text().replace("Judul: ", "")
anime.genre = infox.select("div.spe > span:nth-child(1)").joinToString(", ") { it.text() }
anime.status = status
anime.artist = infox.select("div.spe > span:nth-child(3)").text().replace("Studio: ","")
anime.artist = infox.select("div.spe > span:nth-child(3)").text().replace("Studio: ", "")
anime.author = "UNKNOWN"
anime.description = "Synopsis: \n" + document.select("div.desc > div > span").text()
return anime
@ -186,4 +183,4 @@ class MiniOppai : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
}
screen.addPreference(videoQualityPref)
}
}
}

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.it.animeworld
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.it.animeworld.extractors.DoodExtractor
@ -93,7 +92,6 @@ class ANIMEWORLD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val elements = document.select(videoListSelector())
for (element in elements) {
val url = element.attr("href")
Log.i("lol", url)
val location = element.ownerDocument().location()
val videoHeaders = Headers.headersOf("Referer", location)
when {

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.it.animeworld.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import okhttp3.Headers
@ -26,7 +25,6 @@ class DoodExtractor(private val client: OkHttpClient) {
).execute().body!!.string()
val videoUrl = "$videoUrlStart$randomString?token=$token&expiry=$expiry"
val newQuality = "Doodstream mirror"
Log.i("lol", "$videoUrlStart$randomString?token=$token&expiry=$expiry")
return Video(url, newQuality, videoUrl, null, doodHeaders(doodTld))
}

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.it.animeworld.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import kotlinx.serialization.decodeFromString
@ -27,22 +26,16 @@ class StreamSBExtractor(private val client: OkHttpClient) {
fun videosFromUrl(url: String, headers: Headers): List<Video> {
val id = url.substringAfter("e/").substringBefore(".html")
Log.i("id", id)
val bytes = id.toByteArray()
Log.i("bytes", "$bytes")
val bytesToHex = bytesToHex(bytes)
Log.i("bytesToHex", bytesToHex)
val master =
"https://animeworld.biz/sources43/566d337678566f743674494a7c7c${bytesToHex}7c7c346b6767586d6934774855537c7c73747265616d7362/6565417268755339773461447c7c346133383438333436313335376136323337373433383634376337633465366534393338373136643732373736343735373237613763376334363733353737303533366236333463353333363534366137633763373337343732363536313664373336327c7c6b586c3163614468645a47617c7c73747265616d7362"
Log.i("master", master)
val json = Json.decodeFromString<JsonObject>(
client.newCall(GET(master, headers))
.execute().body!!.string()
)
Log.i("json", "$json")
val masterUrl = json["stream_data"]!!.jsonObject["file"].toString().trim('"')
val masterPlaylist = client.newCall(GET(masterUrl, headers)).execute().body!!.string()
Log.i("masterplayl", masterPlaylist)
val videoList = mutableListOf<Video>()
masterPlaylist.substringAfter("#EXT-X-STREAM-INF:").split("#EXT-X-STREAM-INF:").forEach {
val quality = "StreamSB:" + it.substringAfter("RESOLUTION=").substringAfter("x")

View File

@ -51,7 +51,7 @@ class AnimeFire : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
.add("Referer", baseUrl)
.add("Accept-Language", ACCEPT_LANGUAGE)
// ============================== Popular ===============================
// ============================== Popular ===============================
override fun popularAnimeSelector() = latestUpdatesSelector()
override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/top-animes/$page")
override fun popularAnimeFromElement(element: Element) = latestUpdatesFromElement(element)
@ -102,11 +102,11 @@ class AnimeFire : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
private fun searchAnimeRequest(page: Int, query: String, filters: AFFilters.FilterSearchParams): Request {
if (query.isBlank()) {
return when {
!filters.season.isBlank() -> GET("$baseUrl/temporada/${filters.season}/$page")
filters.season.isNotBlank() -> GET("$baseUrl/temporada/${filters.season}/$page")
else -> GET("$baseUrl/genero/${filters.genre}/$page")
}
}
val fixedQuery = query.trim().replace(" ", "-").toLowerCase()
val fixedQuery = query.trim().replace(" ", "-").lowercase()
return GET("$baseUrl/pesquisar/$fixedQuery/$page")
}
@ -155,7 +155,7 @@ class AnimeFire : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/home/$page")
// ============================== Settings ==============================
// ============================== Settings ==============================
override fun setupPreferenceScreen(screen: PreferenceScreen) {
val videoQualityPref = ListPreference(screen.context).apply {
key = PREFERRED_QUALITY
@ -200,7 +200,7 @@ class AnimeFire : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val newList = mutableListOf<Video>()
var preferred = 0
for (video in this) {
if (video.quality.equals(quality)) {
if (video.quality == quality) {
newList.add(preferred, video)
preferred++
} else {

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.animeextension.pt.animesvision.extractors
import android.util.Log
import eu.kanade.tachiyomi.animesource.model.Video
class VisionFreeExtractor {
@ -12,7 +11,6 @@ class VisionFreeExtractor {
return REGEX_VISION_PLAYER.findAll(html).map {
val videoUrl = it.groupValues[1].replace("\\", "")
val quality = it.groupValues[2]
Log.i(TAG, "$videoUrl -> $quality")
Video(videoUrl, quality, videoUrl, null)
}.toList()
}

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.pt.animeyabu
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.pt.animeyabu.AYFilters.applyFilterParams
@ -59,7 +58,7 @@ class AnimeYabu : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
.add("Accept-Language", AYConstants.ACCEPT_LANGUAGE)
.add("Referer", baseUrl)
// ============================== Popular ===============================
// ============================== Popular ===============================
override fun popularAnimeSelector(): String = "div.video-thumb > a.clip-link"
override fun popularAnimeRequest(page: Int): Request = GET(baseUrl)
@ -70,7 +69,6 @@ class AnimeYabu : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
anime.setUrlWithoutDomain(element.attr("href"))
anime.title = img.attr("title")
anime.thumbnail_url = "$baseUrl/${img.attr("src")}"
Log.i("ID", "$id")
return anime
}
@ -224,7 +222,7 @@ class AnimeYabu : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/page/$page/")
// ============================== Settings ==============================
// ============================== Settings ==============================
override fun setupPreferenceScreen(screen: PreferenceScreen) {
val videoPlayerPref = ListPreference(screen.context).apply {

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.pt.betteranime
import android.app.Application
import android.content.SharedPreferences
import android.util.Log
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.pt.betteranime.dto.LivewireResponseDto
@ -62,7 +61,7 @@ class BetterAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
.add("Referer", baseUrl)
.add("Accept-Language", ACCEPT_LANGUAGE)
// ============================== Popular ===============================
// ============================== Popular ===============================
private fun nextPageSelector(): String = "ul.pagination li.page-item:contains()"
override fun popularAnimeNextPageSelector() = throw Exception("not used")
override fun popularAnimeSelector(): String = "div.list-animes article"
@ -215,7 +214,7 @@ class BetterAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun latestUpdatesParse(response: Response) = popularAnimeParse(response)
// ============================== Settings ==============================
// ============================== Settings ==============================
override fun setupPreferenceScreen(screen: PreferenceScreen) {
val videoQualityPref = ListPreference(screen.context).apply {
key = PREFERRED_QUALITY
@ -274,7 +273,6 @@ class BetterAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val url = "$baseUrl/livewire/message/$path"
val items = updates.joinToString(",") { json.encodeToString(it) }
val data = "$INITIAL_DATA, \"updates\": [$items]}"
Log.d("wireData", data)
val reqBody = data.toRequestBody("application/json".toMediaType())
val headers = headersBuilder()
.add("x-livewire", "true")

View File

@ -1,6 +1,7 @@
package eu.kanade.tachiyomi.animeextension.pt.betteranime.dto
import kotlinx.serialization.EncodeDefault
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable
import kotlinx.serialization.builtins.ListSerializer
import kotlinx.serialization.builtins.serializer
@ -23,12 +24,14 @@ data class LivewireEffects(
val html: String? = null
)
@ExperimentalSerializationApi
@Serializable
data class PayloadItem(
val payload: PayloadData,
val type: String
)
@ExperimentalSerializationApi
@Serializable
data class PayloadData(
val name: String = "",

View File

@ -143,7 +143,7 @@ class AnimevostSource(override val name: String, override val baseUrl: String, p
if (animeData.rating != null && animeData.votes != null) {
val rating = (animeData.rating.toDouble() / animeData.votes.toDouble()).roundToInt()
description += "Рейтинг: ${"★".repeat(rating)}${"☆".repeat(Math.max(5 - rating, 0))} (Голосов: ${animeData.votes})\n"
description += "Рейтинг: ${"★".repeat(rating)}${"☆".repeat((5 - rating).coerceAtLeast(0))} (Голосов: ${animeData.votes})\n"
}
if (animeData.type != null) {
@ -256,6 +256,7 @@ class AnimevostSource(override val name: String, override val baseUrl: String, p
sortDirection = if (filter.state!!.ascending) SortDirection.ASC else SortDirection.DESC
}
}
else -> {}
}
}