fix fembed links bruh [AnimeOnlineNinja] (#714)

This commit is contained in:
Diego Peña Y Lillo
2022-07-31 14:07:43 -04:00
committed by GitHub
parent f728e6e016
commit 4967a8a0f8
4 changed files with 17 additions and 11 deletions

View File

@ -5,7 +5,7 @@ ext {
extName = 'AnimeonlineNinja'
pkgNameSuffix = 'es.animeonlineninja'
extClass = '.AnimeonlineNinja'
extVersionCode = 5
extVersionCode = 6
libVersion = '13'
}

View File

@ -137,8 +137,9 @@ class AnimeonlineNinja : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val videos = mutableListOf<Video>()
val langSelect = preferences.getString("preferred_lang", "SUB").toString()
when {
serverUrl.contains("fembed888") && lang.contains(langSelect) -> {
videos.addAll(FembedExtractor().videosFromUrl(serverUrl, lang))
serverUrl.contains("fembed") && lang.contains(langSelect) -> {
val video = FembedExtractor().videosFromUrl(serverUrl)
videos.addAll(video.map { Video(it.url, "$lang ${it.quality}", it.url) })
}
serverUrl.contains("streamtape") && lang.contains(langSelect) -> {
StreamTapeExtractor(client).videoFromUrl(serverUrl, "$lang StreamTape")?.let { it1 -> videos.add(it1) }
@ -158,7 +159,9 @@ class AnimeonlineNinja : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
.set("watchsb", "streamsb")
.set("authority", "embedsb.com")
.build()
videos.addAll(StreamSBExtractor(client).videosFromUrl(serverUrl, headers, lang))
val video = StreamSBExtractor(client).videosFromUrl(serverUrl, headers)
videos.addAll(video.map { Video(it.url, "$lang ${it.quality}", it.url) })
} catch (e: Exception) { }
}
serverUrl.contains("mixdrop") && lang.contains(langSelect) -> {

View File

@ -6,23 +6,24 @@ import org.jsoup.Connection
import org.jsoup.Jsoup
class FembedExtractor {
fun videosFromUrl(url: String, qualityP: String): List<Video> {
fun videosFromUrl(url: String, qualityPrefix: String = ""): List<Video> {
val videoApi = url.replace("/v/", "/api/source/")
val json = JSONObject(Jsoup.connect(videoApi).ignoreContentType(true).method(Connection.Method.POST).execute().body())
val videoList = mutableListOf<Video>()
val prefix = qualityPrefix
if (json.getBoolean("success")) {
val videoList = mutableListOf<Video>()
val jsonArray = json.getJSONArray("data")
for (i in 0 until jsonArray.length()) {
val `object` = jsonArray.getJSONObject(i)
val videoUrl = `object`.getString("file")
val quality = "$qualityP Fembed:" + `object`.getString("label")
val quality = prefix + "Fembed:" + `object`.getString("label")
videoList.add(Video(videoUrl, quality, videoUrl))
}
return videoList
} else {
val videoUrl = "not used"
val quality = "$qualityP Video taken down for dmca"
val quality = "Video taken down for dmca"
videoList.add(Video(videoUrl, quality, videoUrl))
}
return videoList

View File

@ -24,12 +24,14 @@ class StreamSBExtractor(private val client: OkHttpClient) {
return String(hexChars)
}
fun videosFromUrl(url: String, headers: Headers, lang: String): List<Video> {
val id = url.substringAfter("embed-").substringBefore(".html").substringAfter("/e/")
fun videosFromUrl(url: String, headers: Headers): List<Video> {
val sbUrl = url.substringBefore("/e/")
val id = url.substringAfter("/e/").substringBefore(".html")
val bytes = id.toByteArray()
val bytesToHex = bytesToHex(bytes)
val master =
"https://embedsb.com/sources43/566d337678566f743674494a7c7c${bytesToHex}7c7c346b6767586d6934774855537c7c73747265616d7362/6565417268755339773461447c7c346133383438333436313335376136323337373433383634376337633465366534393338373136643732373736343735373237613763376334363733353737303533366236333463353333363534366137633763373337343732363536313664373336327c7c6b586c3163614468645a47617c7c73747265616d7362"
"$sbUrl/sources43/416f794d637048744d4565577c7c${bytesToHex}7c7c776e6c7a365964385a484b767c7c73747265616d7362/656d5a62394f713230524a667c7c373635353537333734623561373634613330353134633631376337633339353037343631363934393335363434333730373633363763376337613737353836323434353534363431343633323533376137633763373337343732363536313664373336327c7c59304b7778506d424c4c32767c7c73747265616d7362"
val json = Json.decodeFromString<JsonObject>(
client.newCall(GET(master, headers))
.execute().body!!.string()
@ -38,7 +40,7 @@ class StreamSBExtractor(private val client: OkHttpClient) {
val masterPlaylist = client.newCall(GET(masterUrl, headers)).execute().body!!.string()
val videoList = mutableListOf<Video>()
masterPlaylist.substringAfter("#EXT-X-STREAM-INF:").split("#EXT-X-STREAM-INF:").forEach {
val quality = "$lang StreamSB:" + it.substringAfter("RESOLUTION=").substringAfter("x")
val quality = "StreamSB:" + it.substringAfter("RESOLUTION=").substringAfter("x")
.substringBefore(",") + "p"
val videoUrl = it.substringAfter("\n").substringBefore("\n")
videoList.add(Video(videoUrl, quality, videoUrl, headers = headers))