[shabakatycinemana] add staff filter, and more Anime
info #837
344 changed files with 946 additions and 3075 deletions
.github/workflows
lib/amazon-extractor
src
all
animeonsen/res
animeworldindia
build.gradle
src/eu/kanade/tachiyomi/animeextension/all/animeworldindia
chineseanime/res
javguru/res
missav/res
ar
akwam/res
anime4up/res
animeblkom/res
animeiat/res
animelek/res
animerco/res
arabanime/res
arabseed/res
asia2tv/res
egydead/res
faselhd/res
mycima/res
tuktukcinema/res
witanime/res
xsanime/res
xsmovie/res
de
animeloads/res
mipmap-hdpi
mipmap-mdpi
mipmap-xhdpi
mipmap-xxhdpi
mipmap-xxxhdpi
aniworld/res
mipmap-hdpi
mipmap-mdpi
mipmap-xhdpi
mipmap-xxhdpi
mipmap-xxxhdpi
cineclix/res
mipmap-hdpi
mipmap-mdpi
mipmap-xhdpi
mipmap-xxhdpi
mipmap-xxxhdpi
cinemathek/res
mipmap-hdpi
mipmap-mdpi
mipmap-xhdpi
mipmap-xxhdpi
mipmap-xxxhdpi
filmpalast/res
mipmap-hdpi
mipmap-mdpi
mipmap-xhdpi
mipmap-xxhdpi
mipmap-xxxhdpi
kinoking/res
mipmap-hdpi
mipmap-mdpi
mipmap-xhdpi
mipmap-xxhdpi
mipmap-xxxhdpi
kool/res
29
.github/workflows/build_push.yml
vendored
29
.github/workflows/build_push.yml
vendored
|
@ -31,14 +31,15 @@ jobs:
|
||||||
ref: main
|
ref: main
|
||||||
token: ${{ secrets.BOT_PAT }}
|
token: ${{ secrets.BOT_PAT }}
|
||||||
|
|
||||||
- name: Find lib changes
|
# Temporary pause because of leak of tj-actions/changed-files
|
||||||
id: modified-libs
|
# - name: Find lib changes
|
||||||
uses: tj-actions/changed-files@90a06d6ba9543371ab4df8eeca0be07ca6054959 #v42
|
# id: modified-libs
|
||||||
with:
|
# uses: tj-actions/changed-files@90a06d6ba9543371ab4df8eeca0be07ca6054959 #v42
|
||||||
files: lib/
|
# with:
|
||||||
files_ignore: lib/**.md
|
# files: lib/
|
||||||
files_separator: " "
|
# files_ignore: lib/**.md
|
||||||
safe_output: false
|
# files_separator: " "
|
||||||
|
# safe_output: false
|
||||||
|
|
||||||
- name: Import GPG key
|
- name: Import GPG key
|
||||||
uses: crazy-max/ghaction-import-gpg@v6 # v6.1.0
|
uses: crazy-max/ghaction-import-gpg@v6 # v6.1.0
|
||||||
|
@ -48,12 +49,12 @@ jobs:
|
||||||
git_user_signingkey: true
|
git_user_signingkey: true
|
||||||
git_commit_gpgsign: true
|
git_commit_gpgsign: true
|
||||||
|
|
||||||
# This step is going to commit, but this will not trigger another workflow.
|
# # This step is going to commit, but this will not trigger another workflow.
|
||||||
- name: Bump extensions that uses a modified lib
|
# - name: Bump extensions that uses a modified lib
|
||||||
if: steps.modified-libs.outputs.any_changed == 'true'
|
# if: steps.modified-libs.outputs.any_changed == 'true'
|
||||||
run: |
|
# run: |
|
||||||
chmod +x ./.github/scripts/bump-versions.py
|
# chmod +x ./.github/scripts/bump-versions.py
|
||||||
./.github/scripts/bump-versions.py ${{ steps.modified-libs.outputs.all_changed_files }}
|
# ./.github/scripts/bump-versions.py ${{ steps.modified-libs.outputs.all_changed_files }}
|
||||||
|
|
||||||
- name: Validate Gradle Wrapper
|
- name: Validate Gradle Wrapper
|
||||||
uses: gradle/wrapper-validation-action@a494d935f4b56874c4a5a87d19af7afcf3a163d0 # v2
|
uses: gradle/wrapper-validation-action@a494d935f4b56874c4a5a87d19af7afcf3a163d0 # v2
|
||||||
|
|
7
lib/amazon-extractor/build.gradle.kts
Normal file
7
lib/amazon-extractor/build.gradle.kts
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
plugins {
|
||||||
|
id("lib-android")
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(project(":lib:playlist-utils"))
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
package eu.kanade.tachiyomi.lib.amazonextractor
|
||||||
|
|
||||||
|
import eu.kanade.tachiyomi.animesource.model.Video
|
||||||
|
import eu.kanade.tachiyomi.lib.playlistutils.PlaylistUtils
|
||||||
|
import eu.kanade.tachiyomi.network.GET
|
||||||
|
import eu.kanade.tachiyomi.util.asJsoup
|
||||||
|
import okhttp3.OkHttpClient
|
||||||
|
|
||||||
|
class AmazonExtractor(private val client: OkHttpClient) {
|
||||||
|
|
||||||
|
private val playlistUtils by lazy { PlaylistUtils(client) }
|
||||||
|
|
||||||
|
fun videosFromUrl(url: String, prefix: String = ""): List<Video> {
|
||||||
|
if (url.contains("disable", true)) return emptyList()
|
||||||
|
|
||||||
|
val document = client.newCall(GET(url)).execute().asJsoup()
|
||||||
|
|
||||||
|
val shareIdScript = document.select("script:containsData(var shareId)").firstOrNull()?.data()
|
||||||
|
if (shareIdScript.isNullOrBlank()) return emptyList()
|
||||||
|
|
||||||
|
val shareId = shareIdScript.substringAfter("shareId = \"").substringBefore("\"")
|
||||||
|
val amazonApiJsonUrl = "https://www.amazon.com/drive/v1/shares/$shareId?resourceVersion=V2&ContentType=JSON&asset=ALL"
|
||||||
|
|
||||||
|
val amazonApiJson = client.newCall(GET(amazonApiJsonUrl)).execute().asJsoup()
|
||||||
|
|
||||||
|
val epId = amazonApiJson.toString().substringAfter("\"id\":\"").substringBefore("\"")
|
||||||
|
val amazonApiUrl = "https://www.amazon.com/drive/v1/nodes/$epId/children?resourceVersion=V2&ContentType=JSON&limit=200&sort=%5B%22kind+DESC%22%2C+%22modifiedDate+DESC%22%5D&asset=ALL&tempLink=true&shareId=$shareId"
|
||||||
|
|
||||||
|
val amazonApi = client.newCall(GET(amazonApiUrl)).execute().asJsoup()
|
||||||
|
|
||||||
|
val videoUrl = amazonApi.toString().substringAfter("\"FOLDER\":").substringAfter("tempLink\":\"").substringBefore("\"")
|
||||||
|
|
||||||
|
val serverName = if (videoUrl.contains("&ext=es")) "AmazonES" else "Amazon"
|
||||||
|
|
||||||
|
return if (videoUrl.contains(".m3u8")) {
|
||||||
|
playlistUtils.extractFromHls(videoUrl, videoNameGen = { "${prefix}$serverName:$it" })
|
||||||
|
} else {
|
||||||
|
listOf(Video(videoUrl, "${prefix}$serverName", videoUrl))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
|
@ -1,7 +1,7 @@
|
||||||
ext {
|
ext {
|
||||||
extName = 'AnimeWorld India'
|
extName = 'AnimeWorld India'
|
||||||
extClass = '.AnimeWorldIndiaFactory'
|
extClass = '.AnimeWorldIndiaFactory'
|
||||||
extVersionCode = 14
|
extVersionCode = 15
|
||||||
}
|
}
|
||||||
|
|
||||||
apply from: "$rootDir/common.gradle"
|
apply from: "$rootDir/common.gradle"
|
||||||
|
|
|
@ -29,7 +29,7 @@ class AnimeWorldIndia(
|
||||||
|
|
||||||
override val name = "AnimeWorld India"
|
override val name = "AnimeWorld India"
|
||||||
|
|
||||||
override val baseUrl = "https://anime-world.in"
|
override val baseUrl = "https://anime-world.co"
|
||||||
|
|
||||||
override val supportsLatest = true
|
override val supportsLatest = true
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,7 @@ class AnimeWorldIndiaFilters {
|
||||||
|
|
||||||
private fun getYearList() = listOf(
|
private fun getYearList() = listOf(
|
||||||
StringQuery("Any", "all"),
|
StringQuery("Any", "all"),
|
||||||
|
StringQuery("2025", "2025"),
|
||||||
StringQuery("2024", "2024"),
|
StringQuery("2024", "2024"),
|
||||||
StringQuery("2023", "2023"),
|
StringQuery("2023", "2023"),
|
||||||
StringQuery("2022", "2022"),
|
StringQuery("2022", "2022"),
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue