mirror of
https://github.com/Dark25/aniyomi-extensions.git
synced 2024-10-27 23:59:36 +01:00
refactor: Refactor extensions and bump AGP (#2764)
This commit is contained in:
parent
8936f7746e
commit
5532818846
326 changed files with 1120 additions and 2114 deletions
|
@ -211,6 +211,10 @@ src/<lang>/<mysourcename>/
|
|||
13 directories, 9 files
|
||||
```
|
||||
|
||||
`<lang>` should be an ISO 639-1 compliant language code (two letters or `all`). `<mysourcename>`
|
||||
should be adapted from the site name, and can only contain lowercase ASCII letters and digits.
|
||||
Your extension code must be placed in the package `eu.kanade.tachiyomi.animeextension.<lang>.<mysourcename>`.
|
||||
|
||||
#### AndroidManifest.xml
|
||||
A minimal [Android manifest file](https://developer.android.com/guide/topics/manifest/manifest-intro) is needed for Android to recognize a extension when it's compiled into an APK file. You can also add intent filters inside this file (see [URL intent filter](#url-intent-filter) for more information).
|
||||
|
||||
|
@ -218,12 +222,8 @@ A minimal [Android manifest file](https://developer.android.com/guide/topics/man
|
|||
Make sure that your new extension's `build.gradle` file follows the following structure:
|
||||
|
||||
```gradle
|
||||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
|
||||
ext {
|
||||
extName = '<My source name>'
|
||||
pkgNameSuffix = '<lang>.<mysourcename>'
|
||||
extClass = '.<MySourceName>'
|
||||
extVersionCode = 1
|
||||
containsNsfw = true
|
||||
|
@ -234,8 +234,7 @@ apply from: "$rootDir/common.gradle"
|
|||
|
||||
| Field | Description |
|
||||
| ----- | ----------- |
|
||||
| `extName` | The name of the extension. |
|
||||
| `pkgNameSuffix` | A unique suffix added to `eu.kanade.tachiyomi.animeextension`. The language and the site name should be enough. Remember your extension code implementation must be placed in this package. |
|
||||
| `extName` | The name of the extension. Should be romanized if site name is not in English.|
|
||||
| `extClass` | Points to the class that implements `AnimeSource`. You can use a relative path starting with a dot (the package name is the base path). This is used to find and instantiate the source(s). |
|
||||
| `extVersionCode` | The extension version code. This must be a positive integer and incremented with any change to the code. |
|
||||
| `libVersion` | (Optional, defaults to `14`) The version of the [extensions library](https://github.com/aniyomiorg/extensions-lib) used. |
|
||||
|
@ -408,7 +407,7 @@ open class UriPartFilter(displayName: String, private val vals: Array<Pair<Strin
|
|||
|
||||
### Misc notes
|
||||
|
||||
- Sometimes you may find no use for some inherited methods. If so just override them and throw exceptions: `throw UnsupportedOperationException("Not used.")`
|
||||
- Sometimes you may find no use for some inherited methods. If so just override them and throw exceptions: `throw UnsupportedOperationException()`
|
||||
- You probably will find `getUrlWithoutDomain` useful when parsing the target source URLs. Keep in mind there's a current issue with spaces in the URL though, so if you use it, replace all spaces with URL encoded characters (like `%20`).
|
||||
- If possible try to stick to the general workflow from `AnimeHttpSource`/`AnimeParsedHttpSource`; breaking them may cause you more headache than necessary.
|
||||
- By implementing `ConfigurableAnimeSource` you can add settings to your source, which is backed by [`SharedPreferences`](https://developer.android.com/reference/android/content/SharedPreferences).
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlinx-serialization'
|
||||
apply plugin: 'org.jmailen.kotlinter'
|
||||
|
||||
android {
|
||||
|
@ -21,11 +24,11 @@ android {
|
|||
defaultConfig {
|
||||
minSdkVersion AndroidConfig.minSdk
|
||||
targetSdkVersion AndroidConfig.targetSdk
|
||||
applicationIdSuffix pkgNameSuffix
|
||||
applicationIdSuffix project.parent.name + "." + project.name
|
||||
versionCode extVersionCode
|
||||
versionName project.ext.properties.getOrDefault("libVersion", "14") + ".$extVersionCode"
|
||||
base {
|
||||
archivesName = "aniyomi-$pkgNameSuffix-v$versionName"
|
||||
archivesName = "aniyomi-$applicationIdSuffix-v$versionName"
|
||||
}
|
||||
def readmes = project.projectDir.listFiles({ File file ->
|
||||
file.name.equals("README.md") ||
|
||||
|
|
|
@ -21,3 +21,5 @@ org.gradle.caching=true
|
|||
|
||||
# Enable AndroidX dependencies
|
||||
android.useAndroidX=true
|
||||
android.nonTransitiveRClass=false
|
||||
android.nonFinalResIds=false
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[versions]
|
||||
agp_version = "8.0.2"
|
||||
agp_version = "8.2.1"
|
||||
coroutines_version = "1.7.1"
|
||||
kotlin_version = "1.8.22"
|
||||
serialization_version = "1.5.1"
|
||||
|
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
3
gradle/wrapper/gradle-wrapper.properties
vendored
3
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -1,6 +1,7 @@
|
|||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
|
22
gradlew
vendored
22
gradlew
vendored
|
@ -83,7 +83,8 @@ done
|
|||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
|
@ -130,10 +131,13 @@ location of your Java installation."
|
|||
fi
|
||||
else
|
||||
JAVACMD=java
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
if ! command -v java >/dev/null 2>&1
|
||||
then
|
||||
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
|
@ -141,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
|||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC3045
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
|
@ -149,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
|||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC3045
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
|
@ -198,11 +202,11 @@ fi
|
|||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command;
|
||||
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
||||
# shell script including quotes and variable substitutions, so put them in
|
||||
# double quotes to make sure that they get re-expanded; and
|
||||
# * put everything else in single quotes, so that it's not re-expanded.
|
||||
# Collect all arguments for the java command:
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# and any embedded shellness will be escaped.
|
||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||
# treated as '${Hostname}' itself on the command line.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
|
|
|
@ -20,7 +20,6 @@ import okhttp3.Request
|
|||
import okhttp3.Response
|
||||
import org.jsoup.nodes.Document
|
||||
import org.jsoup.nodes.Element
|
||||
import java.lang.Exception
|
||||
|
||||
class FrenchAnime : DataLifeEngine(
|
||||
"French Anime",
|
||||
|
@ -82,9 +81,9 @@ class FrenchAnime : DataLifeEngine(
|
|||
return episodeList.reversed()
|
||||
}
|
||||
|
||||
override fun episodeListSelector(): String = throw Exception("not used")
|
||||
override fun episodeListSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw Exception("not used")
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw UnsupportedOperationException()
|
||||
|
||||
// ============================ Video Links =============================
|
||||
override suspend fun getVideoList(episode: SEpisode): List<Video> {
|
||||
|
@ -109,9 +108,9 @@ class FrenchAnime : DataLifeEngine(
|
|||
return list
|
||||
}
|
||||
|
||||
override fun videoFromElement(element: Element): Video = throw Exception("Not Used")
|
||||
override fun videoFromElement(element: Element): Video = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoListSelector(): String = throw Exception("Not Used")
|
||||
override fun videoListSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document): String = throw Exception("Not Used")
|
||||
override fun videoUrlParse(document: Document): String = throw UnsupportedOperationException()
|
||||
}
|
||||
|
|
|
@ -95,9 +95,9 @@ class Wiflix : DataLifeEngine(
|
|||
return list
|
||||
}
|
||||
|
||||
override fun videoFromElement(element: Element): Video = throw Exception("Not Used")
|
||||
override fun videoFromElement(element: Element): Video = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoListSelector(): String = throw Exception("Not Used")
|
||||
override fun videoListSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document): String = throw Exception("Not Used")
|
||||
override fun videoUrlParse(document: Document): String = throw UnsupportedOperationException()
|
||||
}
|
||||
|
|
|
@ -361,9 +361,9 @@ abstract class AnimeStream(
|
|||
return emptyList()
|
||||
}
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("Not Used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("Not Used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// ============================== Settings ==============================
|
||||
override fun setupPreferenceScreen(screen: PreferenceScreen) {
|
||||
|
|
|
@ -50,13 +50,13 @@ abstract class DataLifeEngine(
|
|||
|
||||
// =============================== Latest ===============================
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not Used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesSelector(): String = throw Exception("Not Used")
|
||||
override fun latestUpdatesSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesNextPageSelector(): String = throw Exception("Not Used")
|
||||
override fun latestUpdatesNextPageSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("Not Used")
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw UnsupportedOperationException()
|
||||
|
||||
// =============================== Search ===============================
|
||||
|
||||
|
@ -139,7 +139,7 @@ abstract class DataLifeEngine(
|
|||
}
|
||||
}
|
||||
|
||||
override fun animeDetailsParse(document: Document): SAnime = throw Exception("Not used")
|
||||
override fun animeDetailsParse(document: Document): SAnime = throw UnsupportedOperationException()
|
||||
|
||||
private fun animeDetailsParse(response: Response, baseAnime: SAnime): SAnime {
|
||||
val document = response.asJsoup()
|
||||
|
|
|
@ -21,7 +21,6 @@ import org.jsoup.nodes.Document
|
|||
import org.jsoup.nodes.Element
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.lang.Exception
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
|
||||
|
@ -124,7 +123,7 @@ abstract class DooPlay(
|
|||
}
|
||||
}
|
||||
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw Exception("not used")
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw UnsupportedOperationException()
|
||||
|
||||
protected open fun episodeFromElement(element: Element, seasonName: String): SEpisode {
|
||||
return SEpisode.create().apply {
|
||||
|
@ -145,13 +144,13 @@ abstract class DooPlay(
|
|||
}
|
||||
|
||||
// ============================ Video Links =============================
|
||||
override fun videoListParse(response: Response): List<Video> = throw Exception("not used")
|
||||
override fun videoListParse(response: Response): List<Video> = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoListSelector(): String = throw Exception("not used")
|
||||
override fun videoListSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoFromElement(element: Element): Video = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element): Video = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document): String = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document): String = throw UnsupportedOperationException()
|
||||
|
||||
// =============================== Search ===============================
|
||||
|
||||
|
|
|
@ -125,7 +125,7 @@ abstract class DopeFlix(
|
|||
}
|
||||
|
||||
// ============================== Episodes ==============================
|
||||
override fun episodeListSelector() = throw Exception("not used")
|
||||
override fun episodeListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun episodeListParse(response: Response): List<SEpisode> {
|
||||
val document = response.use { it.asJsoup() }
|
||||
|
@ -154,7 +154,7 @@ abstract class DopeFlix(
|
|||
}
|
||||
}
|
||||
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw Exception("not used")
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw UnsupportedOperationException()
|
||||
|
||||
private fun parseEpisodesFromSeries(element: Element): List<SEpisode> {
|
||||
val seasonId = element.attr("data-id")
|
||||
|
@ -245,11 +245,11 @@ abstract class DopeFlix(
|
|||
).reversed()
|
||||
}
|
||||
|
||||
override fun videoListSelector() = throw Exception("not used")
|
||||
override fun videoListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// ============================== Settings ==============================
|
||||
override fun setupPreferenceScreen(screen: PreferenceScreen) {
|
||||
|
|
|
@ -242,11 +242,11 @@ abstract class ZoroTheme(
|
|||
return emptyList()
|
||||
}
|
||||
|
||||
override fun videoListSelector() = throw Exception("not used")
|
||||
override fun videoListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// ============================= Utilities ==============================
|
||||
private fun Set<String>.contains(s: String, ignoreCase: Boolean): Boolean {
|
||||
|
|
|
@ -69,23 +69,18 @@ interface ThemeSourceGenerator {
|
|||
gradle.writeText(
|
||||
"""
|
||||
|// THIS FILE IS AUTO-GENERATED; DO NOT EDIT
|
||||
|plugins {
|
||||
| alias(libs.plugins.android.application)
|
||||
| alias(libs.plugins.kotlin.android)
|
||||
| alias(libs.plugins.kotlin.serialization)
|
||||
|}
|
||||
|
|
||||
|ext {
|
||||
| extName = '${source.name}'
|
||||
| pkgNameSuffix = '${pkgNameSuffix(source, ".")}'
|
||||
| extClass = '.${source.className}'
|
||||
| extFactory = '$themePkg'
|
||||
| extVersionCode = ${baseVersionCode + source.overrideVersionCode + MULTISRC_LIBRARY_VERSION}
|
||||
| ${if (source.isNsfw) "containsNsfw = true\n" else ""}
|
||||
|}
|
||||
|
|
||||
|apply from: "${'$'}rootDir/common.gradle"
|
||||
|
|
||||
|$defaultAdditionalGradleText
|
||||
|$additionalGradleOverrideText
|
||||
|apply from: "${'$'}rootDir/common.gradle"
|
||||
|
|
||||
|android {
|
||||
| defaultConfig {
|
||||
|
|
|
@ -1,12 +1,5 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.serialization)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'AnimeOnsen'
|
||||
pkgNameSuffix = 'all.animeonsen'
|
||||
extClass = '.AnimeOnsen'
|
||||
extVersionCode = 7
|
||||
}
|
||||
|
|
|
@ -27,7 +27,6 @@ import okhttp3.Response
|
|||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
import kotlin.Exception
|
||||
|
||||
class AnimeOnsen : ConfigurableAnimeSource, AnimeHttpSource() {
|
||||
|
||||
|
@ -70,8 +69,8 @@ class AnimeOnsen : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||
}
|
||||
|
||||
// =============================== Latest ===============================
|
||||
override fun latestUpdatesRequest(page: Int) = throw Exception("not used")
|
||||
override fun latestUpdatesParse(response: Response) = throw Exception("not used")
|
||||
override fun latestUpdatesRequest(page: Int) = throw UnsupportedOperationException()
|
||||
override fun latestUpdatesParse(response: Response) = throw UnsupportedOperationException()
|
||||
|
||||
// =============================== Search ===============================
|
||||
override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList) =
|
||||
|
@ -133,7 +132,7 @@ class AnimeOnsen : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||
|
||||
override fun videoListRequest(episode: SEpisode) = GET("$apiUrl/content/${episode.url}")
|
||||
|
||||
override fun videoUrlParse(response: Response) = throw Exception("not used")
|
||||
override fun videoUrlParse(response: Response) = throw UnsupportedOperationException()
|
||||
|
||||
// ============================== Settings ==============================
|
||||
override fun setupPreferenceScreen(screen: PreferenceScreen) {
|
||||
|
|
|
@ -1,18 +1,11 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.serialization)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'AnimeWorld India'
|
||||
pkgNameSuffix = 'all.animeworldindia'
|
||||
extClass = '.AnimeWorldIndiaFactory'
|
||||
extVersionCode = 8
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(":lib-playlist-utils"))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -21,7 +21,6 @@ import org.jsoup.nodes.Element
|
|||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
import java.lang.Exception
|
||||
|
||||
class AnimeWorldIndia(
|
||||
final override val lang: String,
|
||||
|
@ -109,9 +108,9 @@ class AnimeWorldIndia(
|
|||
}
|
||||
|
||||
// ============================== Episodes ==============================
|
||||
override fun episodeListSelector() = throw Exception("not used")
|
||||
override fun episodeListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw Exception("not used")
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw UnsupportedOperationException()
|
||||
|
||||
@Serializable
|
||||
data class SeasonDto(val episodes: EpisodeTypeDto)
|
||||
|
@ -173,11 +172,11 @@ class AnimeWorldIndia(
|
|||
}
|
||||
|
||||
// ============================ Video Links =============================
|
||||
override fun videoFromElement(element: Element): Video = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element): Video = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoListSelector() = throw Exception("not used")
|
||||
override fun videoListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
@Serializable
|
||||
private data class PlayerDto(
|
||||
|
|
|
@ -1,18 +1,11 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.serialization)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'Google Drive'
|
||||
pkgNameSuffix = 'all.googledrive'
|
||||
extClass = '.GoogleDrive'
|
||||
extVersionCode = 14
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-googledrive-extractor'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -91,17 +91,17 @@ class GoogleDrive : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||
)
|
||||
}
|
||||
|
||||
override fun popularAnimeParse(response: Response): AnimesPage = throw Exception("Not used")
|
||||
override fun popularAnimeParse(response: Response): AnimesPage = throw UnsupportedOperationException()
|
||||
|
||||
// =============================== Latest ===============================
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesParse(response: Response): AnimesPage = throw Exception("Not used")
|
||||
override fun latestUpdatesParse(response: Response): AnimesPage = throw UnsupportedOperationException()
|
||||
|
||||
// =============================== Search ===============================
|
||||
|
||||
override fun searchAnimeParse(response: Response): AnimesPage = throw Exception("Not used")
|
||||
override fun searchAnimeParse(response: Response): AnimesPage = throw UnsupportedOperationException()
|
||||
|
||||
override suspend fun getSearchAnime(
|
||||
page: Int,
|
||||
|
@ -251,7 +251,7 @@ class GoogleDrive : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||
return anime
|
||||
}
|
||||
|
||||
override fun animeDetailsParse(response: Response): SAnime = throw Exception("Not used")
|
||||
override fun animeDetailsParse(response: Response): SAnime = throw UnsupportedOperationException()
|
||||
|
||||
// ============================== Episodes ==============================
|
||||
|
||||
|
@ -352,7 +352,7 @@ class GoogleDrive : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||
return episodeList.reversed()
|
||||
}
|
||||
|
||||
override fun episodeListParse(response: Response): List<SEpisode> = throw Exception("Not used")
|
||||
override fun episodeListParse(response: Response): List<SEpisode> = throw UnsupportedOperationException()
|
||||
|
||||
// ============================ Video Links =============================
|
||||
|
||||
|
|
|
@ -1,10 +1,5 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlinx-serialization'
|
||||
|
||||
ext {
|
||||
extName = 'GoogleDriveIndex'
|
||||
pkgNameSuffix = 'all.googledriveindex'
|
||||
extClass = '.GoogleDriveIndex'
|
||||
extVersionCode = 7
|
||||
}
|
||||
|
|
|
@ -110,13 +110,13 @@ class GoogleDriveIndex : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||
|
||||
// =============================== Latest ===============================
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesParse(response: Response): AnimesPage = throw Exception("Not used")
|
||||
override fun latestUpdatesParse(response: Response): AnimesPage = throw UnsupportedOperationException()
|
||||
|
||||
// =============================== Search ===============================
|
||||
|
||||
override fun searchAnimeParse(response: Response): AnimesPage = throw Exception("Not used")
|
||||
override fun searchAnimeParse(response: Response): AnimesPage = throw UnsupportedOperationException()
|
||||
|
||||
override suspend fun getSearchAnime(
|
||||
page: Int,
|
||||
|
@ -304,7 +304,7 @@ class GoogleDriveIndex : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||
return anime
|
||||
}
|
||||
|
||||
override fun animeDetailsParse(response: Response): SAnime = throw Exception("Not used")
|
||||
override fun animeDetailsParse(response: Response): SAnime = throw UnsupportedOperationException()
|
||||
|
||||
// ============================== Episodes ==============================
|
||||
|
||||
|
@ -441,7 +441,7 @@ class GoogleDriveIndex : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||
return episodeList.reversed()
|
||||
}
|
||||
|
||||
override fun episodeListParse(response: Response): List<SEpisode> = throw Exception("Not used")
|
||||
override fun episodeListParse(response: Response): List<SEpisode> = throw UnsupportedOperationException()
|
||||
|
||||
// ============================ Video Links =============================
|
||||
|
||||
|
|
|
@ -1,16 +1,12 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'Jav Guru'
|
||||
pkgNameSuffix = 'all.javguru'
|
||||
extClass = '.JavGuru'
|
||||
extVersionCode = 10
|
||||
containsNsfw = true
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-streamwish-extractor'))
|
||||
implementation(project(':lib-streamtape-extractor'))
|
||||
|
@ -19,6 +15,4 @@ dependencies {
|
|||
implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1"
|
||||
implementation(project(':lib-playlist-utils'))
|
||||
implementation(project(':lib-javcoverfetcher'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -375,6 +375,6 @@ class JavGuru : AnimeHttpSource(), ConfigurableAnimeSource {
|
|||
}
|
||||
|
||||
override fun episodeListParse(response: Response): List<SEpisode> {
|
||||
throw UnsupportedOperationException("Not used")
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,12 +1,5 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.serialization)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'Jellyfin'
|
||||
pkgNameSuffix = 'all.jellyfin'
|
||||
extClass = '.JellyfinFactory'
|
||||
extVersionCode = 11
|
||||
}
|
||||
|
|
|
@ -133,7 +133,7 @@ class Jellyfin(private val suffix: String) : ConfigurableAnimeSource, AnimeHttpS
|
|||
|
||||
// ============================== Popular ===============================
|
||||
|
||||
override fun popularAnimeParse(response: Response): AnimesPage = throw Exception("Not used")
|
||||
override fun popularAnimeParse(response: Response): AnimesPage = throw UnsupportedOperationException()
|
||||
|
||||
override suspend fun getPopularAnime(page: Int): AnimesPage {
|
||||
return client.newCall(popularAnimeRequest(page))
|
||||
|
@ -173,7 +173,7 @@ class Jellyfin(private val suffix: String) : ConfigurableAnimeSource, AnimeHttpS
|
|||
|
||||
// =============================== Latest ===============================
|
||||
|
||||
override fun latestUpdatesParse(response: Response) = throw Exception("Not used")
|
||||
override fun latestUpdatesParse(response: Response) = throw UnsupportedOperationException()
|
||||
|
||||
override suspend fun getLatestUpdates(page: Int): AnimesPage {
|
||||
return client.newCall(latestUpdatesRequest(page))
|
||||
|
@ -207,9 +207,9 @@ class Jellyfin(private val suffix: String) : ConfigurableAnimeSource, AnimeHttpS
|
|||
|
||||
// =============================== Search ===============================
|
||||
|
||||
override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request = throw Exception("Not used")
|
||||
override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun searchAnimeParse(response: Response) = throw Exception("Not used")
|
||||
override fun searchAnimeParse(response: Response) = throw UnsupportedOperationException()
|
||||
|
||||
override suspend fun getSearchAnime(page: Int, query: String, filters: AnimeFilterList): AnimesPage {
|
||||
require(parentId.isNotEmpty()) { "Select library in the extension settings." }
|
||||
|
|
|
@ -1,12 +1,5 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.serialization)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'Yomiroll'
|
||||
pkgNameSuffix = 'all.kamyroll'
|
||||
extClass = '.Yomiroll'
|
||||
extVersionCode = 29
|
||||
}
|
||||
|
|
|
@ -188,7 +188,7 @@ class Yomiroll : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||
return info.data.first().toSAnimeOrNull(anime) ?: anime
|
||||
}
|
||||
|
||||
override fun animeDetailsParse(response: Response): SAnime = throw Exception("not used")
|
||||
override fun animeDetailsParse(response: Response): SAnime = throw UnsupportedOperationException()
|
||||
|
||||
// ============================== Episodes ==============================
|
||||
|
||||
|
|
|
@ -1,20 +1,14 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'MissAV'
|
||||
pkgNameSuffix = 'all.missav'
|
||||
extClass = '.MissAV'
|
||||
extVersionCode = 6
|
||||
containsNsfw = true
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-unpacker'))
|
||||
implementation(project(':lib-playlist-utils'))
|
||||
implementation(project(':lib-javcoverfetcher'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -177,7 +177,7 @@ class MissAV : AnimeHttpSource(), ConfigurableAnimeSource {
|
|||
}
|
||||
|
||||
override fun episodeListParse(response: Response): List<SEpisode> {
|
||||
throw UnsupportedOperationException("Not Used")
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
private inline fun <reified T> List<*>.firstInstanceOrNull(): T? =
|
||||
|
|
|
@ -1,21 +1,15 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'SupJav'
|
||||
pkgNameSuffix = 'all.supjav'
|
||||
extClass = '.SupJavFactory'
|
||||
extVersionCode = 2
|
||||
containsNsfw = true
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(":lib-streamtape-extractor"))
|
||||
implementation(project(":lib-streamwish-extractor"))
|
||||
implementation(project(":lib-voe-extractor"))
|
||||
implementation(project(":lib-playlist-utils"))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -65,19 +65,19 @@ class SupJav(override val lang: String = "en") : ConfigurableAnimeSource, Parsed
|
|||
|
||||
// =============================== Latest ===============================
|
||||
override fun latestUpdatesRequest(page: Int): Request {
|
||||
throw UnsupportedOperationException("Not used.")
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun latestUpdatesSelector(): String {
|
||||
throw UnsupportedOperationException("Not used.")
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime {
|
||||
throw UnsupportedOperationException("Not used.")
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun latestUpdatesNextPageSelector(): String? {
|
||||
throw UnsupportedOperationException("Not used.")
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
// =============================== Search ===============================
|
||||
|
@ -134,11 +134,11 @@ class SupJav(override val lang: String = "en") : ConfigurableAnimeSource, Parsed
|
|||
}
|
||||
|
||||
override fun episodeListSelector(): String {
|
||||
throw UnsupportedOperationException("Not used.")
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun episodeFromElement(element: Element): SEpisode {
|
||||
throw UnsupportedOperationException("Not used.")
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
// ============================ Video Links =============================
|
||||
|
@ -190,15 +190,15 @@ class SupJav(override val lang: String = "en") : ConfigurableAnimeSource, Parsed
|
|||
}
|
||||
|
||||
override fun videoListSelector(): String {
|
||||
throw UnsupportedOperationException("Not used.")
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun videoFromElement(element: Element): Video {
|
||||
throw UnsupportedOperationException("Not used.")
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun videoUrlParse(document: Document): String {
|
||||
throw UnsupportedOperationException("Not used.")
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
// ============================== Settings ==============================
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
|
||||
ext {
|
||||
extName = 'أكوام'
|
||||
pkgNameSuffix = 'ar.akwam'
|
||||
extClass = '.Akwam'
|
||||
extVersionCode = 9
|
||||
}
|
||||
|
|
|
@ -21,7 +21,6 @@ import org.jsoup.nodes.Document
|
|||
import org.jsoup.nodes.Element
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.lang.Exception
|
||||
|
||||
class Akwam : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
|
||||
|
@ -129,7 +128,7 @@ class Akwam : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return this
|
||||
}
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// Search
|
||||
|
||||
|
@ -191,13 +190,13 @@ class Akwam : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
|
||||
// Latest
|
||||
|
||||
override fun latestUpdatesNextPageSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesNextPageSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("Not used")
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
// Filters
|
||||
|
||||
|
|
|
@ -1,16 +1,11 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.serialization)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'Anime4up'
|
||||
pkgNameSuffix = 'ar.anime4up'
|
||||
extClass = '.Anime4Up'
|
||||
extVersionCode = 53
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-dood-extractor'))
|
||||
implementation(project(':lib-gdriveplayer-extractor'))
|
||||
|
@ -21,6 +16,4 @@ dependencies {
|
|||
implementation(project(':lib-vidbom-extractor'))
|
||||
implementation(project(':lib-voe-extractor'))
|
||||
implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1"
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -69,10 +69,10 @@ class Anime4Up : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
override fun popularAnimeNextPageSelector() = "ul.pagination > li > a.next"
|
||||
|
||||
// =============================== Latest ===============================
|
||||
override fun latestUpdatesRequest(page: Int) = throw Exception("not used")
|
||||
override fun latestUpdatesSelector() = throw Exception("not used")
|
||||
override fun latestUpdatesFromElement(element: Element) = throw Exception("not used")
|
||||
override fun latestUpdatesNextPageSelector() = throw Exception("not used")
|
||||
override fun latestUpdatesRequest(page: Int) = throw UnsupportedOperationException()
|
||||
override fun latestUpdatesSelector() = throw UnsupportedOperationException()
|
||||
override fun latestUpdatesFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
override fun latestUpdatesNextPageSelector() = throw UnsupportedOperationException()
|
||||
|
||||
// =============================== Search ===============================
|
||||
override fun getFilterList() = Anime4UpFilters.FILTER_LIST
|
||||
|
@ -187,9 +187,9 @@ class Anime4Up : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
} ?: emptyList()
|
||||
}
|
||||
|
||||
override fun videoListSelector() = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoListSelector() = throw UnsupportedOperationException()
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// ============================== Settings ==============================
|
||||
override fun setupPreferenceScreen(screen: PreferenceScreen) {
|
||||
|
|
|
@ -1,18 +1,12 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'أنمي بالكوم'
|
||||
pkgNameSuffix = 'ar.animeblkom'
|
||||
extClass = '.AnimeBlkom'
|
||||
extVersionCode = 17
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-mp4upload-extractor'))
|
||||
implementation(project(":lib-okru-extractor"))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -54,13 +54,13 @@ class AnimeBlkom : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
override fun popularAnimeNextPageSelector() = "ul.pagination li.page-item a[rel=next]"
|
||||
|
||||
// =============================== Latest ===============================
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("Not used")
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesNextPageSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesNextPageSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
// =============================== Search ===============================
|
||||
override fun searchAnimeFromElement(element: Element) = popularAnimeFromElement(element)
|
||||
|
@ -168,7 +168,7 @@ class AnimeBlkom : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return Video(videoUrl, "Blkom - " + element.attr("label"), videoUrl, headers)
|
||||
}
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// ============================== Filters ===============================
|
||||
override fun getFilterList() = AnimeFilterList(
|
||||
|
|
|
@ -1,10 +1,5 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlinx-serialization'
|
||||
|
||||
ext {
|
||||
extName = 'Animeiat'
|
||||
pkgNameSuffix = 'ar.animeiat'
|
||||
extClass = '.Animeiat'
|
||||
extVersionCode = 1
|
||||
}
|
||||
|
|
|
@ -1,20 +1,14 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'AnimeLek'
|
||||
pkgNameSuffix = 'ar.animelek'
|
||||
extClass = '.AnimeLek'
|
||||
extVersionCode = 28
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-streamtape-extractor'))
|
||||
implementation(project(':lib-okru-extractor'))
|
||||
implementation(project(':lib-dood-extractor'))
|
||||
implementation(project(':lib-vidbom-extractor'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -23,7 +23,6 @@ import org.jsoup.nodes.Document
|
|||
import org.jsoup.nodes.Element
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.lang.Exception
|
||||
|
||||
class AnimeLek : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
|
||||
|
@ -112,9 +111,9 @@ class AnimeLek : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}.flatten()
|
||||
}
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// =============================== Search ===============================
|
||||
// TODO: Add search filters
|
||||
|
|
|
@ -1,15 +1,11 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'Animerco'
|
||||
pkgNameSuffix = 'ar.animerco'
|
||||
extClass = '.Animerco'
|
||||
extVersionCode = 35
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-uqload-extractor'))
|
||||
implementation(project(':lib-gdriveplayer-extractor'))
|
||||
|
@ -20,6 +16,4 @@ dependencies {
|
|||
implementation(project(':lib-streamwish-extractor'))
|
||||
implementation(project(':lib-yourupload-extractor'))
|
||||
implementation(project(':lib-okru-extractor'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -31,7 +31,6 @@ import org.jsoup.nodes.Document
|
|||
import org.jsoup.nodes.Element
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.lang.Exception
|
||||
|
||||
class Animerco : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
|
||||
|
@ -61,10 +60,10 @@ class Animerco : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
override fun popularAnimeNextPageSelector() = "ul.pagination li a:has(i.fa-left-long)"
|
||||
|
||||
// =============================== Latest ===============================
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("Not used")
|
||||
override fun latestUpdatesNextPageSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
override fun latestUpdatesSelector(): String = throw UnsupportedOperationException()
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw UnsupportedOperationException()
|
||||
override fun latestUpdatesNextPageSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
// =============================== Search ===============================
|
||||
override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList) = GET("$baseUrl/page/$page/?s=$query")
|
||||
|
@ -148,7 +147,7 @@ class Animerco : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
episode_number = "$seasonNum.${epNum.padStart(3, '0')}".toFloatOrNull() ?: 1F
|
||||
}
|
||||
|
||||
override fun episodeFromElement(element: Element) = throw Exception("not used")
|
||||
override fun episodeFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
// ============================ Video Links =============================
|
||||
override fun videoListParse(response: Response): List<Video> {
|
||||
|
@ -210,9 +209,9 @@ class Animerco : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}
|
||||
}
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
override fun List<Video>.sort(): List<Video> {
|
||||
val quality = preferences.getString(PREF_QUALITY_KEY, PREF_QUALITY_DEFAULT)!!
|
||||
|
|
|
@ -1,12 +1,5 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.serialization)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'ArabAnime'
|
||||
pkgNameSuffix = 'ar.arabanime'
|
||||
extClass = '.ArabAnime'
|
||||
extVersionCode = 2
|
||||
}
|
||||
|
|
|
@ -1,19 +1,13 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'عرب سيد'
|
||||
pkgNameSuffix = 'ar.arabseed'
|
||||
extClass = '.ArabSeed'
|
||||
extVersionCode = 10
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(":lib-dood-extractor"))
|
||||
implementation(project(":lib-voe-extractor"))
|
||||
implementation(project(":lib-streamwish-extractor"))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -118,8 +118,8 @@ class ArabSeed : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
} ?: emptyList()
|
||||
}
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
override fun List<Video>.sort(): List<Video> {
|
||||
val quality = preferences.getString(PREF_QUALITY_KEY, PREF_QUALITY_DEFAULT)!!
|
||||
|
@ -202,10 +202,10 @@ class ArabSeed : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
)
|
||||
|
||||
// =============================== Latest ===============================
|
||||
override fun latestUpdatesNextPageSelector(): String? = throw Exception("Not used")
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesNextPageSelector(): String? = throw UnsupportedOperationException()
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw UnsupportedOperationException()
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
override fun latestUpdatesSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
// =============================== Preferences ===============================
|
||||
override fun setupPreferenceScreen(screen: PreferenceScreen) {
|
||||
|
|
|
@ -1,15 +1,11 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'asia2tv'
|
||||
pkgNameSuffix = 'ar.asia2tv'
|
||||
extClass = '.Asia2TV'
|
||||
extVersionCode = 16
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-dood-extractor'))
|
||||
implementation(project(':lib-okru-extractor'))
|
||||
|
@ -17,6 +13,4 @@ dependencies {
|
|||
implementation(project(':lib-streamwish-extractor'))
|
||||
implementation(project(':lib-uqload-extractor'))
|
||||
implementation(project(':lib-vidbom-extractor'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -119,9 +119,9 @@ class Asia2TV : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
} ?: emptyList()
|
||||
}
|
||||
|
||||
override fun videoFromElement(element: Element): Video = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element): Video = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document): String = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document): String = throw UnsupportedOperationException()
|
||||
|
||||
override fun List<Video>.sort(): List<Video> {
|
||||
val quality = preferences.getString("preferred_quality", null)
|
||||
|
@ -194,13 +194,13 @@ class Asia2TV : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}
|
||||
|
||||
// =============================== Latest ===============================
|
||||
override fun latestUpdatesNextPageSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesNextPageSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("Not used")
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
// ============================== Filters ===============================
|
||||
override fun getFilterList() = AnimeFilterList(
|
||||
|
|
|
@ -1,17 +1,13 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
|
||||
ext {
|
||||
extName = 'Egy Dead'
|
||||
pkgNameSuffix = 'ar.egydead'
|
||||
extClass = '.EgyDead'
|
||||
extVersionCode = 11
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-dood-extractor'))
|
||||
implementation(project(':lib-mixdrop-extractor'))
|
||||
implementation(project(':lib-streamwish-extractor'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -177,7 +177,7 @@ class EgyDead : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
|
||||
override fun videoListSelector() = "ul.serversList li"
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun List<Video>.sort(): List<Video> {
|
||||
val quality = preferences.getString("preferred_quality", "1080p")
|
||||
|
@ -197,7 +197,7 @@ class EgyDead : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return this
|
||||
}
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// ================================== search ==================================
|
||||
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
|
||||
ext {
|
||||
extName = 'فاصل اعلاني'
|
||||
pkgNameSuffix = 'ar.faselhd'
|
||||
extClass = '.FASELHD'
|
||||
extVersionCode = 14
|
||||
}
|
||||
|
|
|
@ -21,7 +21,6 @@ import org.jsoup.nodes.Document
|
|||
import org.jsoup.nodes.Element
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.lang.Exception
|
||||
|
||||
class FASELHD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
|
||||
|
@ -107,7 +106,7 @@ class FASELHD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
|
||||
// Video urls
|
||||
|
||||
override fun videoListSelector() = throw UnsupportedOperationException("Not used.")
|
||||
override fun videoListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoListParse(response: Response): List<Video> {
|
||||
val document = response.asJsoup()
|
||||
|
@ -143,9 +142,9 @@ class FASELHD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return this
|
||||
}
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// search
|
||||
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
|
||||
ext {
|
||||
extName = 'موفيز فور يو'
|
||||
pkgNameSuffix = 'ar.movies4u'
|
||||
extClass = '.Movies4U'
|
||||
extVersionCode = 4
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ class Movies4U : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
|
||||
// Episodes
|
||||
|
||||
override fun episodeListSelector() = throw Exception("not used")
|
||||
override fun episodeListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun episodeListParse(response: Response): List<SEpisode> {
|
||||
val document = response.asJsoup()
|
||||
|
@ -90,7 +90,7 @@ class Movies4U : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return episodeList.reversed()
|
||||
}
|
||||
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw Exception("not used")
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw UnsupportedOperationException()
|
||||
|
||||
private fun parseEpisodesFromSeries(element: Element): List<SEpisode> {
|
||||
val seasonId = element.select("div.card__content h3.card__title a").attr("href")
|
||||
|
@ -161,9 +161,9 @@ class Movies4U : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return this
|
||||
}
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// Search
|
||||
|
||||
|
@ -238,13 +238,13 @@ class Movies4U : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
|
||||
// Latest
|
||||
|
||||
override fun latestUpdatesNextPageSelector(): String? = throw Exception("Not used")
|
||||
override fun latestUpdatesNextPageSelector(): String? = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("Not used")
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
// preferred quality settings
|
||||
|
||||
|
|
|
@ -1,15 +1,11 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
|
||||
ext {
|
||||
extName = 'MY CIMA'
|
||||
pkgNameSuffix = 'ar.mycima'
|
||||
extClass = '.MyCima'
|
||||
extVersionCode = 20
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-uqload-extractor'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -108,7 +108,7 @@ class MyCima : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return episode
|
||||
}
|
||||
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw Exception("not used")
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw UnsupportedOperationException()
|
||||
|
||||
private fun getNumberFromEpsString(epsStr: String): String {
|
||||
return epsStr.filter { it.isDigit() }
|
||||
|
@ -174,9 +174,9 @@ class MyCima : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
).reversed()
|
||||
}
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// ============================== search ==============================
|
||||
|
||||
|
|
|
@ -1,21 +1,15 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'Okanime'
|
||||
pkgNameSuffix = 'ar.okanime'
|
||||
extClass = '.Okanime'
|
||||
extVersionCode = 6
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(":lib-dood-extractor"))
|
||||
implementation(project(":lib-voe-extractor"))
|
||||
implementation(project(":lib-okru-extractor"))
|
||||
implementation(project(":lib-vidbom-extractor"))
|
||||
implementation(project(":lib-mp4upload-extractor"))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -182,15 +182,15 @@ class Okanime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}
|
||||
|
||||
override fun videoListSelector(): String {
|
||||
throw UnsupportedOperationException("Not used.")
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun videoFromElement(element: Element): Video {
|
||||
throw UnsupportedOperationException("Not used.")
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun videoUrlParse(document: Document): String {
|
||||
throw UnsupportedOperationException("Not used.")
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun List<Video>.sort(): List<Video> {
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
|
||||
ext {
|
||||
extName = 'توك توك سينما'
|
||||
pkgNameSuffix = 'ar.tuktukcinema'
|
||||
extClass = '.Tuktukcinema'
|
||||
extVersionCode = 16
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-uqload-extractor'))
|
||||
implementation(project(':lib-okru-extractor'))
|
||||
|
@ -16,6 +14,4 @@ dependencies {
|
|||
implementation(project(':lib-vidbom-extractor'))
|
||||
implementation(project(':lib-playlist-utils'))
|
||||
implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1"
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -128,7 +128,7 @@ class Tuktukcinema : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
|
||||
override fun episodeListSelector() = "link[rel=canonical]"
|
||||
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw Exception("not used")
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw UnsupportedOperationException()
|
||||
|
||||
// ============================ video links ============================
|
||||
override fun videoListRequest(episode: SEpisode): Request {
|
||||
|
@ -183,9 +183,9 @@ class Tuktukcinema : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
).reversed()
|
||||
}
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
private fun videosFromMain(url: String): List<Video> {
|
||||
val jsE = client.newCall(GET(url)).execute().asJsoup().selectFirst("script:containsData(player)")!!.data()
|
||||
|
|
|
@ -1,21 +1,15 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'WIT ANIME'
|
||||
pkgNameSuffix = 'ar.witanime'
|
||||
extClass = '.WitAnime'
|
||||
extVersionCode = 48
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-dailymotion-extractor'))
|
||||
implementation(project(':lib-dood-extractor'))
|
||||
implementation(project(':lib-okru-extractor'))
|
||||
implementation(project(':lib-mp4upload-extractor'))
|
||||
implementation(project(':lib-vidbom-extractor'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -25,7 +25,6 @@ import org.jsoup.nodes.Document
|
|||
import org.jsoup.nodes.Element
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.lang.Exception
|
||||
|
||||
class WitAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
|
||||
|
@ -201,9 +200,9 @@ class WitAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}
|
||||
}
|
||||
|
||||
override fun videoListSelector() = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoListSelector() = throw UnsupportedOperationException()
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
override fun List<Video>.sort(): List<Video> {
|
||||
val quality = preferences.getString(PREF_QUALITY_KEY, PREF_QUALITY_DEFAULT)!!
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
|
||||
ext {
|
||||
extName = 'XS Anime'
|
||||
pkgNameSuffix = 'ar.xsanime'
|
||||
extClass = '.XsAnime'
|
||||
extVersionCode = 10
|
||||
}
|
||||
|
|
|
@ -21,7 +21,6 @@ import org.jsoup.nodes.Document
|
|||
import org.jsoup.nodes.Element
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.lang.Exception
|
||||
|
||||
class XsAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
|
||||
|
@ -92,7 +91,7 @@ class XsAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return Video(element.attr("src"), "Default: If you want to change the quality go to extension settings", element.attr("src"))
|
||||
}
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// Search
|
||||
|
||||
|
@ -195,13 +194,13 @@ class XsAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
|
||||
// Latest
|
||||
|
||||
override fun latestUpdatesNextPageSelector(): String? = throw Exception("Not used")
|
||||
override fun latestUpdatesNextPageSelector(): String? = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("Not used")
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
// Preferences
|
||||
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
|
||||
ext {
|
||||
extName = 'XS Movie'
|
||||
pkgNameSuffix = 'ar.xsmovie'
|
||||
extClass = '.XsMovie'
|
||||
extVersionCode = 5
|
||||
}
|
||||
|
|
|
@ -19,7 +19,6 @@ import org.jsoup.nodes.Document
|
|||
import org.jsoup.nodes.Element
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.lang.Exception
|
||||
|
||||
class XsMovie : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
|
||||
|
@ -80,7 +79,7 @@ class XsMovie : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return Video(element.attr("src"), "Default: If you want to change the quality go to extension settings", element.attr("src"))
|
||||
}
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// Search
|
||||
|
||||
|
@ -119,13 +118,13 @@ class XsMovie : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
|
||||
// Latest
|
||||
|
||||
override fun latestUpdatesNextPageSelector(): String? = throw Exception("Not used")
|
||||
override fun latestUpdatesNextPageSelector(): String? = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("Not used")
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
// Preferences
|
||||
|
||||
|
|
|
@ -1,19 +1,14 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlinx-serialization'
|
||||
|
||||
ext {
|
||||
extName = 'Aniflix'
|
||||
pkgNameSuffix = 'de.aniflix'
|
||||
extClass = '.Aniflix'
|
||||
extVersionCode = 25
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-streamlare-extractor'))
|
||||
implementation(project(':lib-voe-extractor'))
|
||||
implementation(project(':lib-streamtape-extractor'))
|
||||
implementation(project(':lib-dood-extractor'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -247,7 +247,7 @@ class Aniflix : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||
return newList
|
||||
}
|
||||
|
||||
override fun videoUrlParse(response: Response) = throw Exception("not used")
|
||||
override fun videoUrlParse(response: Response) = throw UnsupportedOperationException()
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun setupPreferenceScreen(screen: PreferenceScreen) {
|
||||
|
|
|
@ -1,19 +1,12 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.serialization)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'Aniking'
|
||||
pkgNameSuffix = 'de.aniking'
|
||||
extClass = '.Aniking'
|
||||
extVersionCode = 16
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-streamtape-extractor'))
|
||||
implementation(project(':lib-dood-extractor'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -22,7 +22,6 @@ import org.jsoup.nodes.Document
|
|||
import org.jsoup.nodes.Element
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import kotlin.Exception
|
||||
|
||||
class Aniking : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
|
||||
|
@ -52,7 +51,7 @@ class Aniking : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
override fun popularAnimeNextPageSelector() = "div.pagination i#nextpagination"
|
||||
|
||||
// ============================== Episodes ==============================
|
||||
override fun episodeListSelector() = throw Exception("not used")
|
||||
override fun episodeListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun episodeListParse(response: Response): List<SEpisode> {
|
||||
val document = response.use { it.asJsoup() }
|
||||
|
@ -73,7 +72,7 @@ class Aniking : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}
|
||||
}
|
||||
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw Exception("not Used")
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw UnsupportedOperationException()
|
||||
|
||||
private fun episodeFromString(string: String) = SEpisode.create().apply {
|
||||
val season = string.substringAfter("\"s").substringBefore("_")
|
||||
|
@ -145,11 +144,11 @@ class Aniking : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
).reversed()
|
||||
}
|
||||
|
||||
override fun videoListSelector() = throw Exception("not used")
|
||||
override fun videoListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// =============================== Search ===============================
|
||||
// TODO: Implement search filters
|
||||
|
@ -179,13 +178,13 @@ class Aniking : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}
|
||||
|
||||
// =============================== Latest ===============================
|
||||
override fun latestUpdatesNextPageSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesNextPageSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("Not used")
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
// ============================== Settings ==============================
|
||||
override fun setupPreferenceScreen(screen: PreferenceScreen) {
|
||||
|
|
|
@ -1,21 +1,15 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'Anime-Base'
|
||||
pkgNameSuffix = 'de.animebase'
|
||||
extClass = '.AnimeBase'
|
||||
extVersionCode = 19
|
||||
containsNsfw = true
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(":lib-voe-extractor"))
|
||||
implementation(project(":lib-streamwish-extractor"))
|
||||
implementation(project(":lib-playlist-utils"))
|
||||
implementation("dev.datlag.jsunpacker:jsunpacker:1.0.1")
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -241,11 +241,11 @@ class AnimeBase : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
).reversed()
|
||||
}
|
||||
|
||||
override fun videoListSelector() = throw Exception("not used")
|
||||
override fun videoListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// =============================== Search ===============================
|
||||
override fun setupPreferenceScreen(screen: PreferenceScreen) {
|
||||
|
|
|
@ -1,19 +1,14 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlinx-serialization'
|
||||
|
||||
ext {
|
||||
extName = 'Anime-Loads'
|
||||
pkgNameSuffix = 'de.animeloads'
|
||||
extClass = '.AnimeLoads'
|
||||
extVersionCode = 12
|
||||
containsNsfw = true
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-voe-extractor'))
|
||||
implementation(project(':lib-streamtape-extractor'))
|
||||
implementation(project(':lib-dood-extractor'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -67,7 +67,7 @@ class AnimeLoads : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
|
||||
// episodes
|
||||
|
||||
override fun episodeListSelector() = throw Exception("not used")
|
||||
override fun episodeListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun episodeListParse(response: Response): List<SEpisode> {
|
||||
val document = response.asJsoup()
|
||||
|
@ -93,7 +93,7 @@ class AnimeLoads : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return episodeElement.map { episodeFromElement(it, url) }
|
||||
}
|
||||
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw Exception("not Used")
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw UnsupportedOperationException()
|
||||
|
||||
private fun episodeFromElement(element: Element, url: String): SEpisode {
|
||||
val episode = SEpisode.create()
|
||||
|
@ -785,11 +785,11 @@ class AnimeLoads : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return this
|
||||
}
|
||||
|
||||
override fun videoListSelector() = throw Exception("not used")
|
||||
override fun videoListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// Search
|
||||
|
||||
|
@ -822,13 +822,13 @@ class AnimeLoads : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
|
||||
// Latest
|
||||
|
||||
override fun latestUpdatesNextPageSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesNextPageSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("Not used")
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
// Preferences
|
||||
|
||||
|
|
|
@ -1,10 +1,5 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlinx-serialization'
|
||||
|
||||
ext {
|
||||
extName = 'Anime-Stream'
|
||||
pkgNameSuffix = 'de.animestream'
|
||||
extClass = '.AnimeStream'
|
||||
extVersionCode = 2
|
||||
}
|
||||
|
|
|
@ -13,7 +13,6 @@ import okhttp3.Response
|
|||
import org.jsoup.nodes.Document
|
||||
import org.jsoup.nodes.Element
|
||||
import uy.kohesive.injekt.api.get
|
||||
import kotlin.Exception
|
||||
|
||||
class AnimeStream : ParsedAnimeHttpSource() {
|
||||
|
||||
|
@ -43,7 +42,7 @@ class AnimeStream : ParsedAnimeHttpSource() {
|
|||
|
||||
// episodes
|
||||
|
||||
override fun episodeListSelector() = throw Exception("not used")
|
||||
override fun episodeListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun episodeListParse(response: Response): List<SEpisode> {
|
||||
val document = response.asJsoup()
|
||||
|
@ -67,7 +66,7 @@ class AnimeStream : ParsedAnimeHttpSource() {
|
|||
return episode
|
||||
}
|
||||
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw Exception("not used")
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw UnsupportedOperationException()
|
||||
|
||||
// Video Extractor
|
||||
|
||||
|
@ -87,11 +86,11 @@ class AnimeStream : ParsedAnimeHttpSource() {
|
|||
return videoList.reversed()
|
||||
}
|
||||
|
||||
override fun videoListSelector() = throw Exception("not used")
|
||||
override fun videoListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// Search
|
||||
|
||||
|
@ -129,11 +128,11 @@ class AnimeStream : ParsedAnimeHttpSource() {
|
|||
|
||||
// Latest
|
||||
|
||||
override fun latestUpdatesNextPageSelector(): String = throw Exception("not used")
|
||||
override fun latestUpdatesNextPageSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("not used")
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesSelector(): String = throw Exception("not used")
|
||||
override fun latestUpdatesSelector(): String = throw UnsupportedOperationException()
|
||||
}
|
||||
|
|
|
@ -1,19 +1,14 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlinx-serialization'
|
||||
|
||||
ext {
|
||||
extName = 'AnimeToast'
|
||||
pkgNameSuffix = 'de.animetoast'
|
||||
extClass = '.AnimeToast'
|
||||
extVersionCode = 11
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-voe-extractor'))
|
||||
implementation(project(':lib-dood-extractor'))
|
||||
implementation(project(':lib-filemoon-extractor'))
|
||||
implementation(project(':lib-mp4upload-extractor'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -55,7 +55,7 @@ class AnimeToast : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
|
||||
// episodes
|
||||
|
||||
override fun episodeListSelector() = throw Exception("not used")
|
||||
override fun episodeListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun episodeListParse(response: Response): List<SEpisode> {
|
||||
val document = response.asJsoup()
|
||||
|
@ -275,11 +275,11 @@ class AnimeToast : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return this
|
||||
}
|
||||
|
||||
override fun videoListSelector() = throw Exception("not used")
|
||||
override fun videoListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// Search
|
||||
|
||||
|
@ -321,13 +321,13 @@ class AnimeToast : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
|
||||
// Latest
|
||||
|
||||
override fun latestUpdatesNextPageSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesNextPageSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("Not used")
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
// Preferences
|
||||
|
||||
|
|
|
@ -1,18 +1,13 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlinx-serialization'
|
||||
|
||||
ext {
|
||||
extName = 'AniWorld (experimental)'
|
||||
pkgNameSuffix = 'de.aniworld'
|
||||
extClass = '.AniWorld'
|
||||
extVersionCode = 20
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-voe-extractor'))
|
||||
implementation(project(':lib-streamtape-extractor'))
|
||||
implementation(project(':lib-dood-extractor'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -120,9 +120,9 @@ class AniWorld : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
.build()
|
||||
return POST("$baseUrl/ajax/search", body = FormBody.Builder().add("keyword", query).build(), headers = headers)
|
||||
}
|
||||
override fun searchAnimeSelector() = throw UnsupportedOperationException("Not used.")
|
||||
override fun searchAnimeSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun searchAnimeNextPageSelector() = throw UnsupportedOperationException("Not used.")
|
||||
override fun searchAnimeNextPageSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun searchAnimeParse(response: Response): AnimesPage {
|
||||
val body = response.body.string()
|
||||
|
@ -149,7 +149,7 @@ class AniWorld : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return anime
|
||||
}
|
||||
|
||||
override fun searchAnimeFromElement(element: Element) = throw UnsupportedOperationException("Not used.")
|
||||
override fun searchAnimeFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
// ===== ANIME DETAILS =====
|
||||
override fun animeDetailsParse(document: Document): SAnime {
|
||||
|
@ -168,7 +168,7 @@ class AniWorld : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}
|
||||
|
||||
// ===== EPISODE =====
|
||||
override fun episodeListSelector() = throw UnsupportedOperationException("Not used.")
|
||||
override fun episodeListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun episodeListParse(response: Response): List<SEpisode> {
|
||||
val document = response.asJsoup()
|
||||
|
@ -221,7 +221,7 @@ class AniWorld : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}
|
||||
|
||||
// ===== VIDEO SOURCES =====
|
||||
override fun videoListSelector() = throw UnsupportedOperationException("Not used.")
|
||||
override fun videoListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoListParse(response: Response): List<Video> {
|
||||
val document = response.asJsoup()
|
||||
|
@ -312,7 +312,7 @@ class AniWorld : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}
|
||||
}
|
||||
|
||||
override fun videoFromElement(element: Element): Video = throw Exception("not Used")
|
||||
override fun videoFromElement(element: Element): Video = throw UnsupportedOperationException()
|
||||
|
||||
override fun List<Video>.sort(): List<Video> {
|
||||
val hoster = preferences.getString(AWConstants.PREFERRED_HOSTER, null)
|
||||
|
@ -352,7 +352,7 @@ class AniWorld : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return newList
|
||||
}
|
||||
|
||||
override fun videoUrlParse(document: Document): String = throw UnsupportedOperationException("Not used.")
|
||||
override fun videoUrlParse(document: Document): String = throw UnsupportedOperationException()
|
||||
|
||||
// ===== PREFERENCES ======
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
|
|
|
@ -1,14 +1,11 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlinx-serialization'
|
||||
|
||||
ext {
|
||||
extName = 'CineClix'
|
||||
pkgNameSuffix = 'de.cineclix'
|
||||
extClass = '.CineClix'
|
||||
extVersionCode = 8
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-streamtape-extractor'))
|
||||
implementation(project(':lib-mixdrop-extractor'))
|
||||
|
@ -17,6 +14,3 @@ dependencies {
|
|||
implementation(project(':lib-playlist-utils'))
|
||||
implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1"
|
||||
}
|
||||
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -30,7 +30,6 @@ import okhttp3.Request
|
|||
import okhttp3.Response
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import kotlin.Exception
|
||||
|
||||
class CineClix : ConfigurableAnimeSource, AnimeHttpSource() {
|
||||
|
||||
|
@ -332,9 +331,9 @@ class CineClix : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||
|
||||
// Latest
|
||||
|
||||
override fun latestUpdatesParse(response: Response): AnimesPage = throw Exception("not Used")
|
||||
override fun latestUpdatesParse(response: Response): AnimesPage = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
// Preferences
|
||||
|
||||
|
|
|
@ -1,15 +1,11 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'Einfach'
|
||||
pkgNameSuffix = 'de.einfach'
|
||||
extClass = '.Einfach'
|
||||
extVersionCode = 2
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(":lib-dood-extractor"))
|
||||
implementation(project(":lib-filemoon-extractor"))
|
||||
|
@ -19,6 +15,4 @@ dependencies {
|
|||
implementation(project(":lib-streamwish-extractor"))
|
||||
implementation(project(":lib-voe-extractor"))
|
||||
implementation("dev.datlag.jsunpacker:jsunpacker:1.0.1")
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -211,11 +211,11 @@ class Einfach : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}
|
||||
|
||||
override fun videoFromElement(element: Element): Video {
|
||||
throw UnsupportedOperationException("Not used.")
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun videoUrlParse(document: Document): String {
|
||||
throw UnsupportedOperationException("Not used.")
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
// ============================== Settings ==============================
|
||||
|
|
|
@ -1,18 +1,12 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlinx-serialization'
|
||||
|
||||
ext {
|
||||
extName = 'FilmPalast'
|
||||
pkgNameSuffix = 'de.filmpalast'
|
||||
extClass = '.FilmPalast'
|
||||
extVersionCode = 14
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-filemoon-extractor'))
|
||||
implementation(project(':lib-voe-extractor'))
|
||||
}
|
||||
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -25,7 +25,6 @@ import org.jsoup.nodes.Document
|
|||
import org.jsoup.nodes.Element
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.lang.Exception
|
||||
|
||||
class FilmPalast : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
|
||||
|
@ -58,7 +57,7 @@ class FilmPalast : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
|
||||
// episodes
|
||||
|
||||
override fun episodeListSelector() = throw Exception("not used")
|
||||
override fun episodeListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun episodeListParse(response: Response): List<SEpisode> {
|
||||
val document = response.asJsoup()
|
||||
|
@ -71,7 +70,7 @@ class FilmPalast : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return episodeList.reversed()
|
||||
}
|
||||
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw Exception("not used")
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw UnsupportedOperationException()
|
||||
|
||||
// Video Extractor
|
||||
|
||||
|
@ -161,11 +160,11 @@ class FilmPalast : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
).reversed()
|
||||
}
|
||||
|
||||
override fun videoListSelector() = throw Exception("not used")
|
||||
override fun videoListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// Search
|
||||
|
||||
|
|
|
@ -1,18 +1,13 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlinx-serialization'
|
||||
|
||||
ext {
|
||||
extName = 'Kool'
|
||||
pkgNameSuffix = 'de.kool'
|
||||
extClass = '.Kool'
|
||||
extVersionCode = 7
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-filemoon-extractor'))
|
||||
implementation(project(':lib-streamtape-extractor'))
|
||||
implementation(project(':lib-voe-extractor'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -728,9 +728,9 @@ class Kool : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||
|
||||
// Latest
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesParse(response: Response): AnimesPage = throw Exception("not Used")
|
||||
override fun latestUpdatesParse(response: Response): AnimesPage = throw UnsupportedOperationException()
|
||||
|
||||
// Preferences
|
||||
|
||||
|
|
|
@ -1,16 +1,11 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.serialization)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'Moflix-Stream'
|
||||
pkgNameSuffix = 'de.moflixstream'
|
||||
extClass = '.MoflixStream'
|
||||
extVersionCode = 4
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-streamvid-extractor'))
|
||||
implementation(project(':lib-streamwish-extractor'))
|
||||
|
@ -18,6 +13,3 @@ dependencies {
|
|||
implementation(project(':lib-playlist-utils'))
|
||||
implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1"
|
||||
}
|
||||
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -69,9 +69,9 @@ class MoflixStream : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||
}
|
||||
|
||||
// =============================== Latest ===============================
|
||||
override fun latestUpdatesParse(response: Response) = throw Exception("not Used")
|
||||
override fun latestUpdatesParse(response: Response) = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesRequest(page: Int) = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int) = throw UnsupportedOperationException()
|
||||
|
||||
// =============================== Search ===============================
|
||||
override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList) = GET(
|
||||
|
|
|
@ -1,20 +1,14 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlinx-serialization'
|
||||
|
||||
ext {
|
||||
extName = 'Movie2k'
|
||||
pkgNameSuffix = 'de.movie2k'
|
||||
extClass = '.Movie2k'
|
||||
extVersionCode = 5
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-dood-extractor'))
|
||||
implementation(project(':lib-streamtape-extractor'))
|
||||
implementation(project(':lib-mixdrop-extractor'))
|
||||
implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1"
|
||||
}
|
||||
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -24,7 +24,6 @@ import org.jsoup.nodes.Document
|
|||
import org.jsoup.nodes.Element
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import kotlin.Exception
|
||||
|
||||
class Movie2k : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
|
||||
|
@ -56,7 +55,7 @@ class Movie2k : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
|
||||
// episodes
|
||||
|
||||
override fun episodeListSelector() = throw Exception("not used")
|
||||
override fun episodeListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun episodeListParse(response: Response): List<SEpisode> {
|
||||
val document = response.asJsoup()
|
||||
|
@ -70,7 +69,7 @@ class Movie2k : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return episodeList.reversed()
|
||||
}
|
||||
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw Exception("not used")
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw UnsupportedOperationException()
|
||||
|
||||
// Video Extractor
|
||||
|
||||
|
@ -180,11 +179,11 @@ class Movie2k : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return this
|
||||
}
|
||||
|
||||
override fun videoListSelector() = throw Exception("not used")
|
||||
override fun videoListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// Search
|
||||
|
||||
|
@ -217,13 +216,13 @@ class Movie2k : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
|
||||
// Latest
|
||||
|
||||
override fun latestUpdatesNextPageSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesNextPageSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("Not used")
|
||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesSelector(): String = throw Exception("Not used")
|
||||
override fun latestUpdatesSelector(): String = throw UnsupportedOperationException()
|
||||
|
||||
// Preferences
|
||||
|
||||
|
|
|
@ -1,17 +1,12 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlinx-serialization'
|
||||
|
||||
ext {
|
||||
extName = 'Movie4k'
|
||||
pkgNameSuffix = 'de.movie4k'
|
||||
extClass = '.Movie4k'
|
||||
extVersionCode = 7
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-streamtape-extractor'))
|
||||
implementation(project(':lib-voe-extractor'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -418,9 +418,9 @@ class Movie4k : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||
|
||||
// Latest
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesParse(response: Response): AnimesPage = throw Exception("not Used")
|
||||
override fun latestUpdatesParse(response: Response): AnimesPage = throw UnsupportedOperationException()
|
||||
|
||||
// Preferences
|
||||
|
||||
|
|
|
@ -1,18 +1,13 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlinx-serialization'
|
||||
|
||||
ext {
|
||||
extName = 'Serienstream'
|
||||
pkgNameSuffix = 'de.serienstream'
|
||||
extClass = '.Serienstream'
|
||||
extVersionCode = 14
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-voe-extractor'))
|
||||
implementation(project(':lib-streamtape-extractor'))
|
||||
implementation(project(':lib-dood-extractor'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -119,9 +119,9 @@ class Serienstream : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
.build()
|
||||
return POST("$baseUrl/ajax/search", body = FormBody.Builder().add("keyword", query).build(), headers = headers)
|
||||
}
|
||||
override fun searchAnimeSelector() = throw UnsupportedOperationException("Not used.")
|
||||
override fun searchAnimeSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun searchAnimeNextPageSelector() = throw UnsupportedOperationException("Not used.")
|
||||
override fun searchAnimeNextPageSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun searchAnimeParse(response: Response): AnimesPage {
|
||||
val body = response.body.string()
|
||||
|
@ -147,7 +147,7 @@ class Serienstream : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return anime
|
||||
}
|
||||
|
||||
override fun searchAnimeFromElement(element: Element) = throw UnsupportedOperationException("Not used.")
|
||||
override fun searchAnimeFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
// ===== ANIME DETAILS =====
|
||||
override fun animeDetailsParse(document: Document): SAnime {
|
||||
|
@ -165,7 +165,7 @@ class Serienstream : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}
|
||||
|
||||
// ===== EPISODE =====
|
||||
override fun episodeListSelector() = throw UnsupportedOperationException("Not used.")
|
||||
override fun episodeListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun episodeListParse(response: Response): List<SEpisode> {
|
||||
val document = response.asJsoup()
|
||||
|
@ -218,7 +218,7 @@ class Serienstream : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}
|
||||
|
||||
// ===== VIDEO SOURCES =====
|
||||
override fun videoListSelector() = throw UnsupportedOperationException("Not used.")
|
||||
override fun videoListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoListParse(response: Response): List<Video> {
|
||||
val document = response.asJsoup()
|
||||
|
@ -281,7 +281,7 @@ class Serienstream : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}
|
||||
}
|
||||
|
||||
override fun videoFromElement(element: Element): Video = throw Exception("not Used")
|
||||
override fun videoFromElement(element: Element): Video = throw UnsupportedOperationException()
|
||||
|
||||
override fun List<Video>.sort(): List<Video> {
|
||||
val hoster = preferences.getString(SConstants.PREFERRED_HOSTER, null)
|
||||
|
@ -321,7 +321,7 @@ class Serienstream : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return newList
|
||||
}
|
||||
|
||||
override fun videoUrlParse(document: Document): String = throw UnsupportedOperationException("Not used.")
|
||||
override fun videoUrlParse(document: Document): String = throw UnsupportedOperationException()
|
||||
|
||||
// ===== PREFERENCES ======
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
|
|
|
@ -1,19 +1,13 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'StreamCloud'
|
||||
pkgNameSuffix = 'de.streamcloud'
|
||||
extClass = '.StreamCloud'
|
||||
extVersionCode = 7
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-dood-extractor'))
|
||||
implementation(project(':lib-streamtape-extractor'))
|
||||
implementation(project(':lib-mixdrop-extractor'))
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
}
|
|
@ -20,7 +20,6 @@ import org.jsoup.nodes.Document
|
|||
import org.jsoup.nodes.Element
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.lang.Exception
|
||||
|
||||
class StreamCloud : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
|
||||
|
@ -52,13 +51,13 @@ class StreamCloud : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
override fun popularAnimeNextPageSelector() = null
|
||||
|
||||
// =============================== Latest ===============================
|
||||
override fun latestUpdatesNextPageSelector() = throw Exception("Not used")
|
||||
override fun latestUpdatesNextPageSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesFromElement(element: Element) = throw Exception("Not used")
|
||||
override fun latestUpdatesFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesRequest(page: Int) = throw Exception("Not used")
|
||||
override fun latestUpdatesRequest(page: Int) = throw UnsupportedOperationException()
|
||||
|
||||
override fun latestUpdatesSelector() = throw Exception("Not used")
|
||||
override fun latestUpdatesSelector() = throw UnsupportedOperationException()
|
||||
|
||||
// =============================== Search ===============================
|
||||
override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList) =
|
||||
|
@ -95,9 +94,9 @@ class StreamCloud : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
return listOf(episode)
|
||||
}
|
||||
|
||||
override fun episodeListSelector() = throw Exception("not used")
|
||||
override fun episodeListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw Exception("not used")
|
||||
override fun episodeFromElement(element: Element): SEpisode = throw UnsupportedOperationException()
|
||||
|
||||
// ============================ Video Links =============================
|
||||
private val streamtapeExtractor by lazy { StreamTapeExtractor(client) }
|
||||
|
@ -145,11 +144,11 @@ class StreamCloud : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
).reversed()
|
||||
}
|
||||
|
||||
override fun videoListSelector() = throw Exception("not used")
|
||||
override fun videoListSelector() = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoFromElement(element: Element) = throw Exception("not used")
|
||||
override fun videoFromElement(element: Element) = throw UnsupportedOperationException()
|
||||
|
||||
override fun videoUrlParse(document: Document) = throw Exception("not used")
|
||||
override fun videoUrlParse(document: Document) = throw UnsupportedOperationException()
|
||||
|
||||
// ============================== Settings ==============================
|
||||
override fun setupPreferenceScreen(screen: PreferenceScreen) {
|
||||
|
|
|
@ -1,16 +1,11 @@
|
|||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.serialization)
|
||||
}
|
||||
|
||||
ext {
|
||||
extName = 'AllAnime'
|
||||
pkgNameSuffix = 'en.allanime'
|
||||
extClass = '.AllAnime'
|
||||
extVersionCode = 31
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-streamlare-extractor'))
|
||||
implementation(project(':lib-mp4upload-extractor'))
|
||||
|
@ -19,6 +14,3 @@ dependencies {
|
|||
implementation(project(':lib-gogostream-extractor'))
|
||||
implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1"
|
||||
}
|
||||
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue