refactor: Make extensions use the blogger-extractor lib (#2174)
This commit is contained in:
@ -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'))
|
||||
|
@ -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 - "))
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user