feat(all/hikari): Add streamwish extractor (#3205)

This commit is contained in:
Secozzi 2024-04-29 21:30:43 +00:00 committed by GitHub
parent 21fe3802c4
commit b47be9e853
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 7 deletions

View File

@ -1,11 +1,12 @@
ext { ext {
extName = 'Hikari' extName = 'Hikari'
extClass = '.Hikari' extClass = '.Hikari'
extVersionCode = 2 extVersionCode = 3
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"
dependencies { dependencies {
implementation(project(':lib:filemoon-extractor')) implementation(project(':lib:filemoon-extractor'))
implementation(project(':lib:streamwish-extractor'))
} }

View File

@ -8,6 +8,7 @@ import eu.kanade.tachiyomi.animesource.model.SEpisode
import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
import eu.kanade.tachiyomi.lib.filemoonextractor.FilemoonExtractor import eu.kanade.tachiyomi.lib.filemoonextractor.FilemoonExtractor
import eu.kanade.tachiyomi.lib.streamwishextractor.StreamWishExtractor
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.parallelCatchingFlatMapBlocking import eu.kanade.tachiyomi.util.parallelCatchingFlatMapBlocking
import eu.kanade.tachiyomi.util.parseAs import eu.kanade.tachiyomi.util.parseAs
@ -205,6 +206,7 @@ class Hikari : ParsedAnimeHttpSource() {
// ============================ Video Links ============================= // ============================ Video Links =============================
private val filemoonExtractor by lazy { FilemoonExtractor(client) } private val filemoonExtractor by lazy { FilemoonExtractor(client) }
private val streamWishExtractor by lazy { StreamWishExtractor(client, headers) }
private val embedRegex = Regex("""getEmbed\(\s*(\d+)\s*,\s*(\d+)\s*,\s*'(\d+)'""") private val embedRegex = Regex("""getEmbed\(\s*(\d+)\s*,\s*(\d+)\s*,\s*'(\d+)'""")
override fun videoListRequest(episode: SEpisode): Request { override fun videoListRequest(episode: SEpisode): Request {
@ -245,14 +247,13 @@ class Hikari : ParsedAnimeHttpSource() {
} }
} }
private fun getVideosFromEmbed(embedUrl: String, name: String): List<Video> { private fun getVideosFromEmbed(embedUrl: String, name: String): List<Video> = when {
return when { name.contains("streamwish", true) -> streamWishExtractor.videosFromUrl(embedUrl, name)
embedUrl.contains("filemoon", true) -> { embedUrl.contains("filemoon", true) -> {
filemoonExtractor.videosFromUrl(embedUrl, prefix = "$name - ", headers = headers) filemoonExtractor.videosFromUrl(embedUrl, prefix = "$name - ", headers = headers)
} }
else -> emptyList() else -> emptyList()
} }
}
override fun videoListSelector() = ".server-item:has(a[onclick~=getEmbed])" override fun videoListSelector() = ".server-item:has(a[onclick~=getEmbed])"