refactor: Make extensions use the blogger-extractor lib (#2174)

This commit is contained in:
Claudemirovsky
2023-09-10 12:48:07 -03:00
committed by GitHub
parent b04ce515bd
commit 113fecaa24
18 changed files with 23 additions and 181 deletions

View File

@ -11,6 +11,7 @@ ext {
}
dependencies {
implementation(project(':lib-blogger-extractor'))
implementation(project(':lib-gdriveplayer-extractor'))
implementation(project(':lib-yourupload-extractor'))
implementation(project(':lib-okru-extractor'))

View File

@ -5,7 +5,6 @@ import android.content.SharedPreferences
import androidx.preference.ListPreference
import androidx.preference.MultiSelectListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.id.neonime.extractors.BloggerExtractor
import eu.kanade.tachiyomi.animeextension.id.neonime.extractors.LinkBoxExtractor
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
@ -14,6 +13,7 @@ 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.lib.bloggerextractor.BloggerExtractor
import eu.kanade.tachiyomi.lib.gdriveplayerextractor.GdrivePlayerExtractor
import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor
import eu.kanade.tachiyomi.lib.youruploadextractor.YourUploadExtractor
@ -228,7 +228,7 @@ class NeoNime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
videoList.addAll(OkruExtractor(client).videosFromUrl(link))
}
hosterSelection.contains("yourupload") && link.contains("blogger.com") -> {
videoList.addAll(BloggerExtractor(client).videosFromUrl(link, it.text()))
videoList.addAll(BloggerExtractor(client).videosFromUrl(link, headers, it.text()))
}
hosterSelection.contains("linkbox") && link.contains("yourupload.com") -> {
videoList.addAll(YourUploadExtractor(client).videoFromUrl(link, headers, it.text(), "Original - "))

View File

@ -1,38 +0,0 @@
package eu.kanade.tachiyomi.animeextension.id.neonime.extractors
import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup
import kotlinx.serialization.Serializable
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json
import okhttp3.OkHttpClient
import uy.kohesive.injekt.injectLazy
@Serializable
data class VideoConfig(
val streams: List<Stream>,
) {
@Serializable
data class Stream(
val play_url: String,
val format_id: Int,
)
}
class BloggerExtractor(private val client: OkHttpClient) {
private val json: Json by injectLazy()
fun videosFromUrl(url: String, name: String): List<Video> {
val document = client.newCall(GET(url)).execute().asJsoup()
val jsElement = document.selectFirst("script:containsData(VIDEO_CONFIG)") ?: return emptyList()
val js = jsElement.data()
val json = json.decodeFromString<VideoConfig>(js.substringAfter("var VIDEO_CONFIG = "))
return json.streams.map {
Video(it.play_url, "${it.format_id} - $name", it.play_url)
}
}
}