fix crashing with subtitles
This commit is contained in:
@ -5,7 +5,7 @@ ext {
|
|||||||
extName = 'DopeBox'
|
extName = 'DopeBox'
|
||||||
pkgNameSuffix = 'en.dopebox'
|
pkgNameSuffix = 'en.dopebox'
|
||||||
extClass = '.DopeBox'
|
extClass = '.DopeBox'
|
||||||
extVersionCode = 6
|
extVersionCode = 7
|
||||||
libVersion = '13'
|
libVersion = '13'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,6 @@ import org.jsoup.nodes.Document
|
|||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
import uy.kohesive.injekt.Injekt
|
import uy.kohesive.injekt.Injekt
|
||||||
import uy.kohesive.injekt.api.get
|
import uy.kohesive.injekt.api.get
|
||||||
import java.lang.Exception
|
|
||||||
|
|
||||||
class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||||
|
|
||||||
@ -184,7 +183,9 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
json["tracks"]!!.jsonArray.forEach {
|
json["tracks"]!!.jsonArray.forEach {
|
||||||
val subLang = it.jsonObject["label"].toString().substringAfter("\"").substringBefore("\"")
|
val subLang = it.jsonObject["label"].toString().substringAfter("\"").substringBefore("\"")
|
||||||
val subUrl = it.jsonObject["file"].toString().trim('"')
|
val subUrl = it.jsonObject["file"].toString().trim('"')
|
||||||
subsList.add(Track(subUrl, subLang))
|
try {
|
||||||
|
subsList.add(Track(subUrl, subLang))
|
||||||
|
} catch (e: Error) {}
|
||||||
}
|
}
|
||||||
if (masterUrl.contains("playlist.m3u8")) {
|
if (masterUrl.contains("playlist.m3u8")) {
|
||||||
val masterPlaylist = client.newCall(GET(masterUrl)).execute().body!!.string()
|
val masterPlaylist = client.newCall(GET(masterUrl)).execute().body!!.string()
|
||||||
@ -195,7 +196,7 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
videoList.add(
|
videoList.add(
|
||||||
try {
|
try {
|
||||||
Video(videoUrl, quality, videoUrl, subtitleTracks = subsList)
|
Video(videoUrl, quality, videoUrl, subtitleTracks = subsList)
|
||||||
} catch (e: NoSuchMethodError) {
|
} catch (e: Error) {
|
||||||
Video(videoUrl, quality, videoUrl)
|
Video(videoUrl, quality, videoUrl)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@ -205,7 +206,7 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
return listOf(
|
return listOf(
|
||||||
try {
|
try {
|
||||||
Video(masterUrl, "Default", masterUrl, subtitleTracks = subsList)
|
Video(masterUrl, "Default", masterUrl, subtitleTracks = subsList)
|
||||||
} catch (e: NoSuchMethodError) {
|
} catch (e: Error) {
|
||||||
Video(masterUrl, "Default", masterUrl)
|
Video(masterUrl, "Default", masterUrl)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -5,7 +5,7 @@ ext {
|
|||||||
extName = 'Sflix'
|
extName = 'Sflix'
|
||||||
pkgNameSuffix = 'en.sflix'
|
pkgNameSuffix = 'en.sflix'
|
||||||
extClass = '.SFlix'
|
extClass = '.SFlix'
|
||||||
extVersionCode = 7
|
extVersionCode = 8
|
||||||
libVersion = '13'
|
libVersion = '13'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,6 @@ import org.jsoup.nodes.Document
|
|||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
import uy.kohesive.injekt.Injekt
|
import uy.kohesive.injekt.Injekt
|
||||||
import uy.kohesive.injekt.api.get
|
import uy.kohesive.injekt.api.get
|
||||||
import java.lang.Exception
|
|
||||||
|
|
||||||
class SFlix : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
class SFlix : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||||
|
|
||||||
@ -183,7 +182,9 @@ class SFlix : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
json["tracks"]!!.jsonArray.forEach {
|
json["tracks"]!!.jsonArray.forEach {
|
||||||
val subLang = it.jsonObject["label"].toString().substringAfter("\"").substringBefore("\"") // .trim('"')
|
val subLang = it.jsonObject["label"].toString().substringAfter("\"").substringBefore("\"") // .trim('"')
|
||||||
val subUrl = it.jsonObject["file"].toString().trim('"')
|
val subUrl = it.jsonObject["file"].toString().trim('"')
|
||||||
subsList.add(Track(subUrl, subLang))
|
try {
|
||||||
|
subsList.add(Track(subUrl, subLang))
|
||||||
|
} catch (e: Error) {}
|
||||||
}
|
}
|
||||||
if (masterUrl.contains("playlist.m3u8")) {
|
if (masterUrl.contains("playlist.m3u8")) {
|
||||||
val masterPlaylist = client.newCall(GET(masterUrl)).execute().body!!.string()
|
val masterPlaylist = client.newCall(GET(masterUrl)).execute().body!!.string()
|
||||||
@ -194,7 +195,7 @@ class SFlix : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
videoList.add(
|
videoList.add(
|
||||||
try {
|
try {
|
||||||
Video(videoUrl, quality, videoUrl, subtitleTracks = subsList)
|
Video(videoUrl, quality, videoUrl, subtitleTracks = subsList)
|
||||||
} catch (e: NoSuchMethodError) {
|
} catch (e: Error) {
|
||||||
Video(videoUrl, quality, videoUrl)
|
Video(videoUrl, quality, videoUrl)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@ -204,7 +205,7 @@ class SFlix : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
return listOf(
|
return listOf(
|
||||||
try {
|
try {
|
||||||
Video(masterUrl, "Default", masterUrl, subtitleTracks = subsList)
|
Video(masterUrl, "Default", masterUrl, subtitleTracks = subsList)
|
||||||
} catch (e: NoSuchMethodError) {
|
} catch (e: Error) {
|
||||||
Video(masterUrl, "Default", masterUrl)
|
Video(masterUrl, "Default", masterUrl)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -5,7 +5,7 @@ ext {
|
|||||||
extName = 'zoro.to (experimental)'
|
extName = 'zoro.to (experimental)'
|
||||||
pkgNameSuffix = 'en.zoro'
|
pkgNameSuffix = 'en.zoro'
|
||||||
extClass = '.Zoro'
|
extClass = '.Zoro'
|
||||||
extVersionCode = 7
|
extVersionCode = 8
|
||||||
libVersion = '13'
|
libVersion = '13'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,12 +124,15 @@ class Zoro : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
if (!source.contains("{\"sources\":[{\"file\":\"")) return null
|
if (!source.contains("{\"sources\":[{\"file\":\"")) return null
|
||||||
val json = json.decodeFromString<JsonObject>(source)
|
val json = json.decodeFromString<JsonObject>(source)
|
||||||
val masterUrl = json["sources"]!!.jsonArray[0].jsonObject["file"]!!.jsonPrimitive.content
|
val masterUrl = json["sources"]!!.jsonArray[0].jsonObject["file"]!!.jsonPrimitive.content
|
||||||
val subs = json["tracks"]?.jsonArray
|
val subs = mutableListOf<Track>()
|
||||||
|
json["tracks"]?.jsonArray
|
||||||
?.filter { it.jsonObject["kind"]!!.jsonPrimitive.content == "captions" }
|
?.filter { it.jsonObject["kind"]!!.jsonPrimitive.content == "captions" }
|
||||||
?.map { track ->
|
?.map { track ->
|
||||||
val trackUrl = track.jsonObject["file"]!!.jsonPrimitive.content
|
val trackUrl = track.jsonObject["file"]!!.jsonPrimitive.content
|
||||||
val lang = track.jsonObject["label"]!!.jsonPrimitive.content
|
val lang = track.jsonObject["label"]!!.jsonPrimitive.content
|
||||||
Track(trackUrl, lang)
|
try {
|
||||||
|
subs.add(Track(trackUrl, lang))
|
||||||
|
} catch (e: Error) {}
|
||||||
} ?: emptyList()
|
} ?: emptyList()
|
||||||
val masterPlaylist = client.newCall(GET(masterUrl)).execute().body!!.string()
|
val masterPlaylist = client.newCall(GET(masterUrl)).execute().body!!.string()
|
||||||
val videoList = mutableListOf<Video>()
|
val videoList = mutableListOf<Video>()
|
||||||
@ -139,7 +142,7 @@ class Zoro : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
videoList.add(
|
videoList.add(
|
||||||
try {
|
try {
|
||||||
Video(videoUrl, quality, videoUrl, subtitleTracks = subs)
|
Video(videoUrl, quality, videoUrl, subtitleTracks = subs)
|
||||||
} catch (e: NoSuchMethodError) {
|
} catch (e: Error) {
|
||||||
Video(videoUrl, quality, videoUrl)
|
Video(videoUrl, quality, videoUrl)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user