changes for new extensions-lib

This commit is contained in:
jmir1
2021-09-20 00:32:21 +02:00
parent 8307569ae7
commit 2b8bf4ed90
15 changed files with 153 additions and 22 deletions

View File

@ -5,7 +5,7 @@ ext {
extName = 'أنمي بالكوم'
pkgNameSuffix = 'ar.animeblkom'
extClass = '.AnimeBlkom'
extVersionCode = 2
extVersionCode = 3
libVersion = '12'
}

View File

@ -5,7 +5,7 @@ ext {
extName = 'MY CIMA'
pkgNameSuffix = 'ar.mycima'
extClass = '.MyCima'
extVersionCode = 3
extVersionCode = 4
libVersion = '12'
}

View File

@ -5,7 +5,7 @@ ext {
extName = 'MY CIMA MOVIES'
pkgNameSuffix = 'ar.mycimamovie'
extClass = '.MyCimaMovie'
extVersionCode = 2
extVersionCode = 3
libVersion = '12'
}

View File

@ -5,7 +5,7 @@ ext {
extName = 'WIT ANIME'
pkgNameSuffix = 'ar.witanime'
extClass = '.WitAnime'
extVersionCode = 8
extVersionCode = 9
libVersion = '12'
}

View File

@ -5,7 +5,7 @@ ext {
extName = 'XS Anime'
pkgNameSuffix = 'ar.xsanime'
extClass = '.XsAnime'
extVersionCode = 4
extVersionCode = 5
libVersion = '12'
}

View File

@ -5,7 +5,7 @@ ext {
extName = 'XS Movie'
pkgNameSuffix = 'ar.xsmovie'
extClass = '.XsMovie'
extVersionCode = 1
extVersionCode = 2
libVersion = '12'
}

View File

@ -6,7 +6,7 @@ ext {
extName = 'Aniflix'
pkgNameSuffix = 'de.aniflix'
extClass = '.Aniflix'
extVersionCode = 1
extVersionCode = 2
libVersion = '12'
}

View File

@ -1,9 +1,14 @@
package eu.kanade.tachiyomi.animeextension.de.aniflix
import android.app.Application
import android.content.SharedPreferences
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animeextension.de.aniflix.dto.AnimeDetailsDto
import eu.kanade.tachiyomi.animeextension.de.aniflix.dto.AnimeDto
import eu.kanade.tachiyomi.animeextension.de.aniflix.dto.Episode
import eu.kanade.tachiyomi.animeextension.de.aniflix.dto.Release
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
import eu.kanade.tachiyomi.animesource.model.AnimesPage
import eu.kanade.tachiyomi.animesource.model.SAnime
@ -20,8 +25,10 @@ import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.Response
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
class Aniflix : AnimeHttpSource() {
class Aniflix : ConfigurableAnimeSource, AnimeHttpSource() {
override val name = "Aniflix"
@ -33,10 +40,14 @@ class Aniflix : AnimeHttpSource() {
override val client: OkHttpClient = network.cloudflareClient
override fun headersBuilder() = Headers.Builder().apply {
private val preferences: SharedPreferences by lazy {
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
private val doodHeaders = Headers.Builder().apply {
add("User-Agent", "Aniyomi")
add("Referer", "https://dood.la/")
}
}.build()
private val json = Json {
isLenient = true
@ -156,12 +167,43 @@ class Aniflix : AnimeHttpSource() {
for (stream in streams) {
val quality = "${stream.hoster!!.name}, ${stream.lang!!}"
if (stream.link!!.contains("https://dood.la/e/")) {
videoList.add(Video(stream.link, quality, null, null))
videoList.add(Video(stream.link, quality, null, null, doodHeaders))
}
}
return videoList
}
override fun List<Video>.sort(): List<Video> {
val hoster = preferences.getString("preferred_hoster", null)
val subPreference = preferences.getString("preferred_sub", "SUB")!!
val hosterList = mutableListOf<Video>()
val otherList = mutableListOf<Video>()
if (hoster != null) {
for (video in this) {
if (video.url.contains(hoster)) {
hosterList.add(video)
} else {
otherList.add(video)
}
}
} else otherList += this
val newList = mutableListOf<Video>()
var preferred = 0
for (video in hosterList) {
if (video.quality.contains(subPreference)) {
newList.add(preferred, video)
preferred++
} else newList.add(video)
}
for (video in otherList) {
if (video.quality.contains(subPreference)) {
newList.add(preferred, video)
preferred++
} else newList.add(video)
}
return newList
}
override fun videoUrlParse(response: Response): String {
val url = response.request.url.toString()
response.priorResponse
@ -188,4 +230,39 @@ class Aniflix : AnimeHttpSource() {
.map { allowedChars.random() }
.joinToString("")
}
override fun setupPreferenceScreen(screen: PreferenceScreen) {
val hosterPref = ListPreference(screen.context).apply {
key = "preferred_hoster"
title = "Standard-Hoster"
entries = arrayOf("Doodstream")
entryValues = arrayOf("https://dood.la/e/")
setDefaultValue("https://dood.la/e/")
summary = "%s"
setOnPreferenceChangeListener { _, newValue ->
val selected = newValue as String
val index = findIndexOfValue(selected)
val entry = entryValues[index] as String
preferences.edit().putString(key, entry).commit()
}
}
val subPref = ListPreference(screen.context).apply {
key = "preferred_sub"
title = "Standardmäßig Sub oder Dub?"
entries = arrayOf("Sub", "Dub")
entryValues = arrayOf("SUB", "DUB")
setDefaultValue("SUB")
summary = "%s"
setOnPreferenceChangeListener { _, newValue ->
val selected = newValue as String
val index = findIndexOfValue(selected)
val entry = entryValues[index] as String
preferences.edit().putString(key, entry).commit()
}
}
screen.addPreference(subPref)
screen.addPreference(hosterPref)
}
}

View File

@ -5,7 +5,7 @@ ext {
extName = 'AnimePahe'
pkgNameSuffix = 'en.animepahe'
extClass = '.AnimePahe'
extVersionCode = 4
extVersionCode = 5
libVersion = '12'
}

View File

@ -5,7 +5,7 @@ ext {
extName = 'Gogoanime'
pkgNameSuffix = 'en.gogoanime'
extClass = '.GogoAnime'
extVersionCode = 12
extVersionCode = 13
libVersion = '12'
}

View File

@ -1,5 +1,10 @@
package eu.kanade.tachiyomi.animeextension.en.gogoanime
import android.app.Application
import android.content.SharedPreferences
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
import eu.kanade.tachiyomi.animesource.model.SAnime
import eu.kanade.tachiyomi.animesource.model.SEpisode
@ -14,9 +19,11 @@ import okhttp3.Response
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import org.jsoup.select.Elements
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.lang.Exception
class GogoAnime : ParsedAnimeHttpSource() {
class GogoAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override val name = "Gogoanime"
@ -28,10 +35,14 @@ class GogoAnime : ParsedAnimeHttpSource() {
override val client: OkHttpClient = network.cloudflareClient
override fun headersBuilder() = Headers.Builder().apply {
private val preferences: SharedPreferences by lazy {
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
private val videoHeaders = Headers.Builder().apply {
add("User-Agent", "Aniyomi")
add("Referer", "https://streamani.io/")
}
}.build()
override fun popularAnimeSelector(): String = "div.img a"
@ -102,9 +113,15 @@ class GogoAnime : ParsedAnimeHttpSource() {
val quality = element.text().substringAfter("Download (").replace("P - mp4)", "p")
val url = element.attr("href")
return if (url.startsWith("https://storage.googleapis.com")) {
Video(url, quality, url, null)
val parsedQuality = "Google server: " + when (quality) {
"FullHDp" -> "1080p"
"HDp" -> "720p"
"SDp" -> "360p"
else -> quality
}
Video(url, parsedQuality, url, null)
} else {
Video(url, quality, videoUrlParse(url), null)
Video(url, quality, videoUrlParse(url), null, videoHeaders)
}
}
@ -118,6 +135,24 @@ class GogoAnime : ParsedAnimeHttpSource() {
return videoUrl ?: url
}
override fun List<Video>.sort(): List<Video> {
val quality = preferences.getString("preferred_quality", null)
if (quality != null) {
val newList = mutableListOf<Video>()
var preferred = 0
for (video in this) {
if (video.quality.contains(quality)) {
newList.add(preferred, video)
preferred++
} else {
newList.add(video)
}
}
return newList
}
return this
}
override fun searchAnimeFromElement(element: Element): SAnime {
val anime = SAnime.create()
anime.setUrlWithoutDomain(element.attr("href"))
@ -165,4 +200,23 @@ class GogoAnime : ParsedAnimeHttpSource() {
GET("https://ajax.gogo-load.com/ajax/page-recent-release-ongoing.html?page=$page&type=1", headers)
override fun latestUpdatesSelector(): String = "div.added_series_body.popular li a:has(div)"
override fun setupPreferenceScreen(screen: PreferenceScreen) {
val videoQualityPref = ListPreference(screen.context).apply {
key = "preferred_quality"
title = "Preferred quality"
entries = arrayOf("1080p", "720p", "480p", "360p")
entryValues = arrayOf("1080", "720", "480", "360")
setDefaultValue("1080")
summary = "%s"
setOnPreferenceChangeListener { _, newValue ->
val selected = newValue as String
val index = findIndexOfValue(selected)
val entry = entryValues[index] as String
preferences.edit().putString(key, entry).commit()
}
}
screen.addPreference(videoQualityPref)
}
}

View File

@ -5,7 +5,7 @@ ext {
extName = 'haho.moe'
pkgNameSuffix = 'en.hahomoe'
extClass = '.HahoMoe'
extVersionCode = 2
extVersionCode = 3
libVersion = '12'
containsNsfw = true
}

View File

@ -5,7 +5,7 @@ ext {
extName = 'hanime.tv'
pkgNameSuffix = 'en.hanime'
extClass = '.Hanime'
extVersionCode = 8
extVersionCode = 9
libVersion = '12'
containsNsfw = true
}

View File

@ -5,7 +5,7 @@ ext {
extName = 'tenshi.moe'
pkgNameSuffix = 'en.tenshimoe'
extClass = '.TenshiMoe'
extVersionCode = 20
extVersionCode = 21
libVersion = '12'
}

View File

@ -5,7 +5,7 @@ ext {
extName = 'twist.moe'
pkgNameSuffix = 'en.twistmoe'
extClass = '.TwistMoe'
extVersionCode = 6
extVersionCode = 7
libVersion = '12'
}