From 84a9494bacf8b38bf41c44448ae603e2e8c5c737 Mon Sep 17 00:00:00 2001 From: jmir1 Date: Fri, 18 Jun 2021 22:11:45 +0200 Subject: [PATCH] tenshi: fix download links --- src/en/tenshimoe/build.gradle | 2 +- .../animeextension/en/tenshimoe/TenshiMoe.kt | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/en/tenshimoe/build.gradle b/src/en/tenshimoe/build.gradle index b3f92e8e5..e10727aa5 100644 --- a/src/en/tenshimoe/build.gradle +++ b/src/en/tenshimoe/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'tenshi.moe' pkgNameSuffix = 'en.tenshimoe' extClass = '.TenshiMoe' - extVersionCode = 14 + extVersionCode = 15 libVersion = '11' } dependencies { diff --git a/src/en/tenshimoe/src/eu/kanade/tachiyomi/animeextension/en/tenshimoe/TenshiMoe.kt b/src/en/tenshimoe/src/eu/kanade/tachiyomi/animeextension/en/tenshimoe/TenshiMoe.kt index b8814ec3b..745a8fe03 100644 --- a/src/en/tenshimoe/src/eu/kanade/tachiyomi/animeextension/en/tenshimoe/TenshiMoe.kt +++ b/src/en/tenshimoe/src/eu/kanade/tachiyomi/animeextension/en/tenshimoe/TenshiMoe.kt @@ -1,15 +1,23 @@ package eu.kanade.tachiyomi.animeextension.en.tenshimoe import android.annotation.SuppressLint +import android.util.Log import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.Link import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.SEpisode import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.asObservableSuccess +import eu.kanade.tachiyomi.network.await +import eu.kanade.tachiyomi.util.asJsoup +import kotlinx.coroutines.runBlocking +import okhttp3.Headers import okhttp3.Request +import okhttp3.Response import org.jsoup.nodes.Document import org.jsoup.nodes.Element +import rx.Observable import java.lang.Float.parseFloat import java.text.SimpleDateFormat import java.util.Date @@ -77,6 +85,24 @@ class TenshiMoe : ParsedAnimeHttpSource() { return Date(-1L) } + override fun fetchEpisodeLink(episode: SEpisode): Observable> { + return client.newCall(GET(baseUrl + episode.url)) + .asObservableSuccess() + .map { response -> + Log.w("tenshi", "linkReq") + runBlocking { linkRequest(response) } + } + } + + private suspend fun linkRequest(response: Response): List { + val elements = response.asJsoup() + val link = elements.select("iframe").attr("src") + val dlResponse = client.newCall(GET(link, Headers.headersOf("referer", response.request.url.toString()))) + .await() + val document = dlResponse.asJsoup() + return linksFromElement(document.select(episodeLinkSelector()).first()) + } + override fun episodeLinkSelector() = "video#player" override fun linksFromElement(element: Element): List {