[SKIP CI] use lib version 12

This commit is contained in:
jmir1
2021-06-21 23:07:26 +02:00
parent 8de3e46d77
commit b57cf56492
9 changed files with 67 additions and 66 deletions

View File

@ -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:6467320"
compileOnly "com.github.jmir1:extensions-lib:632a3e4"
// These are provided by the app itself
compileOnly "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

View File

@ -6,7 +6,7 @@ ext {
pkgNameSuffix = 'en.fouranime'
extClass = '.FourAnime'
extVersionCode = 11
libVersion = '11'
libVersion = '12'
}
dependencies {
ext.coroutinesVersion = "1.4.3"

View File

@ -1,9 +1,9 @@
package eu.kanade.tachiyomi.animeextension.en.fouranime
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.model.Video
import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
import eu.kanade.tachiyomi.network.GET
import okhttp3.Request
@ -58,12 +58,21 @@ class FourAnime : ParsedAnimeHttpSource() {
text.replace("[^\\d]".toRegex(), "").toFloat() + firstLetterAsNumber
}
}
override fun episodeLinkSelector() = "source"
override fun linksFromElement(element: Element): List<Link> {
return mutableListOf(Link(element.attr("src"), "1080p"))
override fun videoListSelector() = "source"
override fun videoFromElement(element: Element): Video {
return Video(element.attr("src"), "1080p", null, null)
}
override fun fetchVideoUrl(video: Video): Observable<String> {
return Observable.just(video.url)
}
override fun videoUrlSelector() = throw Exception("not used")
override fun videoUrlFromElement(element: Element) = throw Exception("not used")
override fun searchAnimeFromElement(element: Element): SAnime {
val anime = SAnime.create()
anime.setUrlWithoutDomain(element.select("a").attr("href"))

View File

@ -6,7 +6,7 @@ ext {
pkgNameSuffix = 'en.gogoanime'
extClass = '.GogoAnime'
extVersionCode = 2
libVersion = '11'
libVersion = '12'
}
dependencies {
ext.coroutinesVersion = "1.4.3"

View File

@ -1,12 +1,11 @@
package eu.kanade.tachiyomi.animeextension.en.gogoanime
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.model.Video
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
@ -14,7 +13,7 @@ import okhttp3.Request
import okhttp3.Response
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import rx.Observable
import java.lang.Exception
class GogoAnime : ParsedAnimeHttpSource() {
@ -57,23 +56,6 @@ class GogoAnime : ParsedAnimeHttpSource() {
return document.select("a").map { episodeFromElement(it) }
}
override fun fetchEpisodeLink(episode: SEpisode): Observable<List<Link>> {
return client.newCall(GET(baseUrl + episode.url))
.asObservableSuccess()
.map { response ->
runBlocking { linkRequest(response) }
}
}
private suspend fun linkRequest(response: Response): List<Link> {
val elements = response.asJsoup()
val link = elements.select("li.dowloads a").attr("href")
val dlResponse = client.newCall(GET(link))
.await()
val document = dlResponse.asJsoup()
return linksFromElement(document.select(episodeLinkSelector()).first())
}
override fun episodeFromElement(element: Element): SEpisode {
val episode = SEpisode.create()
episode.setUrlWithoutDomain(baseUrl + element.attr("href").substringAfter(" "))
@ -84,16 +66,11 @@ class GogoAnime : ParsedAnimeHttpSource() {
return episode
}
override fun episodeLinkSelector() = "div.mirror_link:has(a[download])"
override fun videoListSelector() = "div.mirror_link a[download]"
override fun linksFromElement(element: Element): List<Link> {
val links = mutableListOf<Link>()
val linkElements = element.select("a[download]")
for (e in linkElements) {
val quality = e.text().substringAfter("Download (").replace("P - mp4)", "p")
links.add(Link(e.attr("href"), quality))
}
return links
override fun videoFromElement(element: Element): Video {
val quality = element.text().substringAfter("Download (").replace("P - mp4)", "p")
return Video(element.attr("href"), quality, element.attr("href"), null)
}
override fun searchAnimeFromElement(element: Element): SAnime {
@ -141,4 +118,8 @@ class GogoAnime : ParsedAnimeHttpSource() {
override fun latestUpdatesRequest(page: Int): Request = GET("https://ajax.gogo-load.com/ajax/page-recent-release-ongoing.html?page=$page&type=1")
override fun latestUpdatesSelector(): String = "div.added_series_body.popular li a:has(div)"
override fun videoUrlFromElement(element: Element) = throw Exception("not used")
override fun videoUrlSelector() = throw Exception("not used")
}

View File

@ -6,7 +6,7 @@ ext {
pkgNameSuffix = 'en.hanime'
extClass = '.Hanime'
extVersionCode = 6
libVersion = '11'
libVersion = '12'
containsNsfw = true
}
dependencies {

View File

@ -6,9 +6,9 @@ import com.google.gson.JsonObject
import com.google.gson.JsonParser
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
import eu.kanade.tachiyomi.animesource.model.AnimesPage
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.model.Video
import eu.kanade.tachiyomi.animesource.online.AnimeHttpSource
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.POST
@ -117,16 +117,16 @@ class Hanime : AnimeHttpSource() {
return anime
}
override fun episodeLinkParse(response: Response): List<Link> {
override fun videoListParse(response: Response): List<Video> {
val responseString = response.body!!.string()
val jElement: JsonElement = JsonParser.parseString(responseString)
val jObject: JsonObject = jElement.asJsonObject
val server = jObject.get("videos_manifest").asJsonObject.get("servers").asJsonArray[0].asJsonObject
val streams = server.get("streams").asJsonArray
val linkList = mutableListOf<Link>()
val linkList = mutableListOf<Video>()
for (stream in streams) {
if (stream.asJsonObject.get("kind").asString != "premium_alert") {
linkList.add(Link(stream.asJsonObject.get("url").asString, stream.asJsonObject.get("height").asString + "p"))
linkList.add(Video(stream.asJsonObject.get("url").asString, stream.asJsonObject.get("height").asString + "p", stream.asJsonObject.get("url").asString, null))
}
}
return linkList

View File

@ -6,7 +6,7 @@ ext {
pkgNameSuffix = 'en.tenshimoe'
extClass = '.TenshiMoe'
extVersionCode = 15
libVersion = '11'
libVersion = '12'
}
dependencies {
ext.coroutinesVersion = "1.4.3"

View File

@ -3,21 +3,20 @@ 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.model.Video
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.Exception
import java.lang.Float.parseFloat
import java.text.SimpleDateFormat
import java.util.Date
@ -85,34 +84,46 @@ class TenshiMoe : ParsedAnimeHttpSource() {
return Date(-1L)
}
override fun fetchEpisodeLink(episode: SEpisode): Observable<List<Link>> {
return client.newCall(GET(baseUrl + episode.url))
override fun videoListParse(response: Response): List<Video> {
val document = response.asJsoup()
val iframe = document.selectFirst("iframe")
val referer = response.request.url.encodedPath
return document.select(videoListSelector()).map { videoFromElement(it, iframe, referer) }
}
override fun videoListSelector() = "span.resolution a"
private fun videoFromElement(element: Element, iframe: Element, referer: String): Video {
Log.i("lol", iframe.attr("src") + "&referer=$referer")
return Video(iframe.attr("src") + "&referer=$referer", element.text(), null, null)
}
override fun videoFromElement(element: Element) = throw Exception("not used")
override fun videoUrlRequest(video: Video): Request {
Log.i("lol", baseUrl + video.url.substringAfter("&referer="))
return GET(video.url, Headers.headersOf("referer", baseUrl + video.url.substringAfter("&referer=")))
}
override fun fetchVideoUrl(video: Video): Observable<String> {
return client.newCall(videoUrlRequest(video))
.asObservableSuccess()
.map { response ->
Log.w("tenshi", "linkReq")
runBlocking { linkRequest(response) }
.map {
Log.i("lol", it.code.toString())
videoUrlParse(it, video.quality)
}
}
private suspend fun linkRequest(response: Response): List<Link> {
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())
private fun videoUrlParse(response: Response, quality: String): String {
val document = response.asJsoup()
return videoUrlFromElement(document.selectFirst(videoUrlSelector(quality)))
}
override fun episodeLinkSelector() = "video#player"
override fun videoUrlFromElement(element: Element): String = element.attr("src")
override fun linksFromElement(element: Element): List<Link> {
val linkList = mutableListOf<Link>()
val linkElements = element.select("source")
for (link in linkElements) {
linkList.add(Link(link.attr("src"), link.attr("title")))
}
return linkList
}
private fun videoUrlSelector(quality: String) = "source[title=$quality]"
override fun videoUrlSelector() = throw Exception("not used")
override fun searchAnimeFromElement(element: Element): SAnime {
val anime = SAnime.create()