diff --git a/common-dependencies.gradle b/common-dependencies.gradle index 32db9e600..7fb244918 100644 --- a/common-dependencies.gradle +++ b/common-dependencies.gradle @@ -1,7 +1,7 @@ // used both in common.gradle and themesources library dependencies { // Lib 1.3, but using specific commit so we don't need to bump up the version - compileOnly "com.github.jmir1:extensions-lib:7d796e4" + compileOnly "com.github.jmir1:extensions-lib:ad509d7" // These are provided by the app itself compileOnly "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" diff --git a/src/en/fouranime/src/eu/kanade/tachiyomi/animeextension/en/fouranime/FourAnime.kt b/src/en/fouranime/src/eu/kanade/tachiyomi/animeextension/en/fouranime/FourAnime.kt index d717db3fb..6ac6476de 100644 --- a/src/en/fouranime/src/eu/kanade/tachiyomi/animeextension/en/fouranime/FourAnime.kt +++ b/src/en/fouranime/src/eu/kanade/tachiyomi/animeextension/en/fouranime/FourAnime.kt @@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.animeextension.en.fouranime import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.source.model.FilterList -import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.SAnime import eu.kanade.tachiyomi.source.model.SEpisode import eu.kanade.tachiyomi.source.online.ParsedAnimeHttpSource @@ -28,7 +27,7 @@ class FourAnime : ParsedAnimeHttpSource() { val anime = SAnime.create() anime.setUrlWithoutDomain(element.select("#headerA_5").first().attr("href")) anime.thumbnail_url = element.select("#headerIMG_6").first().attr("src") - anime.title = "Episode " + element.select("#headerIMG_6").first().attr("title") + anime.title = element.select("#headerIMG_6").first().attr("title") return anime } @@ -40,7 +39,7 @@ class FourAnime : ParsedAnimeHttpSource() { val episode = SEpisode.create() episode.setUrlWithoutDomain(element.attr("href")) episode.episode_number = element.text().toFloat() - episode.name = element.text() + episode.name = "Episode " + element.text() return episode } @@ -50,12 +49,6 @@ class FourAnime : ParsedAnimeHttpSource() { return element.attr("src") } - override fun pageListParse(document: Document): List = throw Exception("Not used") - - override fun imageUrlRequest(page: Page) = throw Exception("Not used") - - override fun imageUrlParse(document: Document) = throw Exception("Not used") - override fun searchAnimeFromElement(element: Element): SAnime { val anime = SAnime.create() anime.setUrlWithoutDomain(element.select("a").attr("href")) @@ -64,7 +57,7 @@ class FourAnime : ParsedAnimeHttpSource() { return anime } - override fun searchAnimeNextPageSelector(): String? = "a.nextpostslink" + override fun searchAnimeNextPageSelector(): String = "a.nextpostslink" override fun searchAnimeSelector(): String = "#headerDIV_95" @@ -73,16 +66,16 @@ class FourAnime : ParsedAnimeHttpSource() { override fun animeDetailsParse(document: Document): SAnime { val anime = SAnime.create() anime.title = document.select("p.single-anime-desktop").text() - anime.genre = document.select("div.tag").text().replace(" ", ", ") - anime.description = document.select("div#description-mob p").not("p.description-mobile").text() + anime.genre = document.select("div.tag a").joinToString(", ") { it.text() } + anime.description = document.select("div#description-mob div#fullcontent p").text() return anime } - override fun latestUpdatesNextPageSelector(): String? = "a.nextpostslink" + override fun latestUpdatesNextPageSelector(): String = "a.nextpostslink" override fun latestUpdatesFromElement(element: Element): SAnime { val anime = SAnime.create() - anime.setUrlWithoutDomain(element.select("#headerA_5").first().attr("href").split("-episode-").first()) + anime.setUrlWithoutDomain("https://4anime.to/anime" + element.select("#headerA_5").first().attr("href").removePrefix("https://4anime.to").split("-episode-").first()) anime.thumbnail_url = element.select("#headerIMG_6").first().attr("src") anime.title = element.select("#headerA_5").first().attr("alt") return anime diff --git a/src/en/twodgirlstech/src/eu/kanade/tachiyomi/animeextension/en/twodgirlstech/TwoDGirlsTech.kt b/src/en/twodgirlstech/src/eu/kanade/tachiyomi/animeextension/en/twodgirlstech/TwoDGirlsTech.kt index 892f911d8..b036d1d40 100644 --- a/src/en/twodgirlstech/src/eu/kanade/tachiyomi/animeextension/en/twodgirlstech/TwoDGirlsTech.kt +++ b/src/en/twodgirlstech/src/eu/kanade/tachiyomi/animeextension/en/twodgirlstech/TwoDGirlsTech.kt @@ -3,7 +3,6 @@ package eu.kanade.tachiyomi.animeextension.en.twodgirlstech import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.source.model.AnimesPage import eu.kanade.tachiyomi.source.model.FilterList -import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.SAnime import eu.kanade.tachiyomi.source.model.SEpisode import eu.kanade.tachiyomi.source.online.ParsedAnimeHttpSource @@ -161,63 +160,6 @@ class TwoDGirlsTech : ParsedAnimeHttpSource() { return url } - override fun pageListParse(document: Document): List { - val titleWords: Sequence - val altTextWords: Sequence - val interactiveText = listOf( - "To experience the", "interactive version of this comic,", - "open it in WebView/browser." - ) - .joinToString(separator = "%0A") - .replace(" ", "%20") - - // transforming filename from info.0.json isn't guaranteed to work, stick to html - // if an HD image is available it'll be the srcset attribute - // if img tag is empty then it is an interactive comic viewable only in browser - val image = document.select("div#comic img").let { - when { - it == null || it.isEmpty() -> baseAltTextUrl + interactiveText + baseAltTextPostUrl - it.hasAttr("srcset") -> it.attr("abs:srcset").substringBefore(" ") - else -> it.attr("abs:src") - } - } - - // create a text image for the alt text - document.select("div#comic img").let { - titleWords = it.attr("alt").splitToSequence(" ") - altTextWords = it.attr("title").splitToSequence(" ") - } - - val builder = StringBuilder() - var count = 0 - - for (i in titleWords) { - if (count != 0 && count.rem(7) == 0) { - builder.append("%0A") - } - builder.append(i).append("+") - count++ - } - builder.append("%0A%0A") - - var charCount = 0 - - for (i in altTextWords) { - if (charCount > 25) { - builder.append("%0A") - charCount = 0 - } - builder.append(i).append("+") - charCount += i.length + 1 - } - - return listOf(Page(0, "", image), Page(1, "", baseAltTextUrl + builder.toString() + baseAltTextPostUrl)) - } - - override fun imageUrlRequest(page: Page) = GET(page.url) - - override fun imageUrlParse(document: Document) = throw Exception("Not used") - override fun popularAnimeSelector(): String = throw Exception("Not used") override fun searchAnimeFromElement(element: Element): SAnime = throw Exception("Not used")