From 3986c830cd98529bb00eeef53b691fc253fe567d Mon Sep 17 00:00:00 2001 From: jmir1 Date: Wed, 27 Jul 2022 18:10:31 +0200 Subject: [PATCH] fix crashing with subtitles --- src/en/dopebox/build.gradle | 2 +- .../tachiyomi/animeextension/en/dopebox/DopeBox.kt | 9 +++++---- src/en/sflix/build.gradle | 2 +- .../eu/kanade/tachiyomi/animeextension/en/sflix/SFlix.kt | 9 +++++---- src/en/zoro/build.gradle | 2 +- .../eu/kanade/tachiyomi/animeextension/en/zoro/Zoro.kt | 9 ++++++--- 6 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/en/dopebox/build.gradle b/src/en/dopebox/build.gradle index f3f419214..7ff2daf4b 100644 --- a/src/en/dopebox/build.gradle +++ b/src/en/dopebox/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'DopeBox' pkgNameSuffix = 'en.dopebox' extClass = '.DopeBox' - extVersionCode = 6 + extVersionCode = 7 libVersion = '13' } diff --git a/src/en/dopebox/src/eu/kanade/tachiyomi/animeextension/en/dopebox/DopeBox.kt b/src/en/dopebox/src/eu/kanade/tachiyomi/animeextension/en/dopebox/DopeBox.kt index a2e573091..de99391af 100644 --- a/src/en/dopebox/src/eu/kanade/tachiyomi/animeextension/en/dopebox/DopeBox.kt +++ b/src/en/dopebox/src/eu/kanade/tachiyomi/animeextension/en/dopebox/DopeBox.kt @@ -31,7 +31,6 @@ import org.jsoup.nodes.Document import org.jsoup.nodes.Element import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get -import java.lang.Exception class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() { @@ -184,7 +183,9 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() { json["tracks"]!!.jsonArray.forEach { val subLang = it.jsonObject["label"].toString().substringAfter("\"").substringBefore("\"") 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")) { val masterPlaylist = client.newCall(GET(masterUrl)).execute().body!!.string() @@ -195,7 +196,7 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() { videoList.add( try { Video(videoUrl, quality, videoUrl, subtitleTracks = subsList) - } catch (e: NoSuchMethodError) { + } catch (e: Error) { Video(videoUrl, quality, videoUrl) } ) @@ -205,7 +206,7 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() { return listOf( try { Video(masterUrl, "Default", masterUrl, subtitleTracks = subsList) - } catch (e: NoSuchMethodError) { + } catch (e: Error) { Video(masterUrl, "Default", masterUrl) } ) diff --git a/src/en/sflix/build.gradle b/src/en/sflix/build.gradle index 89d07ce5d..e6e9566d6 100644 --- a/src/en/sflix/build.gradle +++ b/src/en/sflix/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'Sflix' pkgNameSuffix = 'en.sflix' extClass = '.SFlix' - extVersionCode = 7 + extVersionCode = 8 libVersion = '13' } diff --git a/src/en/sflix/src/eu/kanade/tachiyomi/animeextension/en/sflix/SFlix.kt b/src/en/sflix/src/eu/kanade/tachiyomi/animeextension/en/sflix/SFlix.kt index bff286eaf..c306be63e 100644 --- a/src/en/sflix/src/eu/kanade/tachiyomi/animeextension/en/sflix/SFlix.kt +++ b/src/en/sflix/src/eu/kanade/tachiyomi/animeextension/en/sflix/SFlix.kt @@ -31,7 +31,6 @@ import org.jsoup.nodes.Document import org.jsoup.nodes.Element import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get -import java.lang.Exception class SFlix : ConfigurableAnimeSource, ParsedAnimeHttpSource() { @@ -183,7 +182,9 @@ class SFlix : ConfigurableAnimeSource, ParsedAnimeHttpSource() { json["tracks"]!!.jsonArray.forEach { val subLang = it.jsonObject["label"].toString().substringAfter("\"").substringBefore("\"") // .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")) { val masterPlaylist = client.newCall(GET(masterUrl)).execute().body!!.string() @@ -194,7 +195,7 @@ class SFlix : ConfigurableAnimeSource, ParsedAnimeHttpSource() { videoList.add( try { Video(videoUrl, quality, videoUrl, subtitleTracks = subsList) - } catch (e: NoSuchMethodError) { + } catch (e: Error) { Video(videoUrl, quality, videoUrl) } ) @@ -204,7 +205,7 @@ class SFlix : ConfigurableAnimeSource, ParsedAnimeHttpSource() { return listOf( try { Video(masterUrl, "Default", masterUrl, subtitleTracks = subsList) - } catch (e: NoSuchMethodError) { + } catch (e: Error) { Video(masterUrl, "Default", masterUrl) } ) diff --git a/src/en/zoro/build.gradle b/src/en/zoro/build.gradle index 2e00bf1b4..272ad0bd1 100644 --- a/src/en/zoro/build.gradle +++ b/src/en/zoro/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'zoro.to (experimental)' pkgNameSuffix = 'en.zoro' extClass = '.Zoro' - extVersionCode = 7 + extVersionCode = 8 libVersion = '13' } diff --git a/src/en/zoro/src/eu/kanade/tachiyomi/animeextension/en/zoro/Zoro.kt b/src/en/zoro/src/eu/kanade/tachiyomi/animeextension/en/zoro/Zoro.kt index 50305a078..0a4fb1ffd 100644 --- a/src/en/zoro/src/eu/kanade/tachiyomi/animeextension/en/zoro/Zoro.kt +++ b/src/en/zoro/src/eu/kanade/tachiyomi/animeextension/en/zoro/Zoro.kt @@ -124,12 +124,15 @@ class Zoro : ConfigurableAnimeSource, ParsedAnimeHttpSource() { if (!source.contains("{\"sources\":[{\"file\":\"")) return null val json = json.decodeFromString(source) val masterUrl = json["sources"]!!.jsonArray[0].jsonObject["file"]!!.jsonPrimitive.content - val subs = json["tracks"]?.jsonArray + val subs = mutableListOf() + json["tracks"]?.jsonArray ?.filter { it.jsonObject["kind"]!!.jsonPrimitive.content == "captions" } ?.map { track -> val trackUrl = track.jsonObject["file"]!!.jsonPrimitive.content val lang = track.jsonObject["label"]!!.jsonPrimitive.content - Track(trackUrl, lang) + try { + subs.add(Track(trackUrl, lang)) + } catch (e: Error) {} } ?: emptyList() val masterPlaylist = client.newCall(GET(masterUrl)).execute().body!!.string() val videoList = mutableListOf