From 0e66646a9698061ed7f7b3614670a207aa91bfb4 Mon Sep 17 00:00:00 2001 From: LuftVerbot <97435834+LuftVerbot@users.noreply.github.com> Date: Thu, 13 Oct 2022 21:13:43 +0200 Subject: [PATCH] add german extension: Aniking (#928) --- src/de/aniking/AndroidManifest.xml | 2 + src/de/aniking/build.gradle | 18 + .../aniking/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2245 bytes .../aniking/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1517 bytes .../aniking/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3233 bytes .../aniking/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 5270 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 8414 bytes .../animeextension/de/aniking/Aniking.kt | 331 ++++++++++++++++++ .../de/aniking/CloudflareInterceptor.kt | 88 +++++ .../aniking/extractors/StreamTapeExtractor.kt | 18 + .../de/aniking/extractors/StreamZExtractor.kt | 15 + 11 files changed, 472 insertions(+) create mode 100644 src/de/aniking/AndroidManifest.xml create mode 100644 src/de/aniking/build.gradle create mode 100644 src/de/aniking/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/de/aniking/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/de/aniking/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/de/aniking/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/de/aniking/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/de/aniking/src/eu/kanade/tachiyomi/animeextension/de/aniking/Aniking.kt create mode 100644 src/de/aniking/src/eu/kanade/tachiyomi/animeextension/de/aniking/CloudflareInterceptor.kt create mode 100644 src/de/aniking/src/eu/kanade/tachiyomi/animeextension/de/aniking/extractors/StreamTapeExtractor.kt create mode 100644 src/de/aniking/src/eu/kanade/tachiyomi/animeextension/de/aniking/extractors/StreamZExtractor.kt diff --git a/src/de/aniking/AndroidManifest.xml b/src/de/aniking/AndroidManifest.xml new file mode 100644 index 000000000..acb4de356 --- /dev/null +++ b/src/de/aniking/AndroidManifest.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/src/de/aniking/build.gradle b/src/de/aniking/build.gradle new file mode 100644 index 000000000..41215a0e8 --- /dev/null +++ b/src/de/aniking/build.gradle @@ -0,0 +1,18 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlinx-serialization' + +ext { + extName = 'Aniking' + pkgNameSuffix = 'de.aniking' + extClass = '.Aniking' + extVersionCode = 1 + libVersion = '13' +} + +dependencies { + implementation(project(':lib-dood-extractor')) + implementation(project(':lib-streamsb-extractor')) +} + +apply from: "$rootDir/common.gradle" diff --git a/src/de/aniking/res/mipmap-hdpi/ic_launcher.png b/src/de/aniking/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d79f402d37f4ae2b4c8f6560600b37cefb32465 GIT binary patch literal 2245 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 r2Yqa9P-}Mwc>VttpZsqNVYvV!f8C().getSharedPreferences("source_$id", 0x0000) + } + + override fun popularAnimeSelector(): String = "div.item-container div.item" + + override fun popularAnimeRequest(page: Int): Request { + val interceptor = client.newBuilder().addInterceptor(CloudflareInterceptor()).build() + val headers = interceptor.newCall(GET(baseUrl)).execute().request.headers + return GET("$baseUrl/page/$page/?order=rating", headers = headers) + } + + override fun popularAnimeFromElement(element: Element): SAnime { + val anime = SAnime.create() + val postid = element.attr("id").replace("post-", "") + anime.setUrlWithoutDomain(element.select("a").attr("href")) + anime.thumbnail_url = element.select("a img").attr("data-src") + anime.title = element.select("a h2").text() + return anime + } + + override fun popularAnimeNextPageSelector(): String = "footer" + + // episodes + + override fun episodeListRequest(anime: SAnime): Request { + return GET("$baseUrl${anime.url}", headers = Headers.headersOf("if-modified-since", "")) + } + + override fun episodeListSelector() = throw Exception("not used") + + override fun episodeListParse(response: Response): List { + val document = response.asJsoup() + val episodeList = mutableListOf() + if (document.select("#movie-js-extra").isNullOrEmpty()) { + val episodeElement = document.select("script[id=\"tv-js-after\"]") + val episodeString = episodeElement.toString() + .substringAfter("var streaming = {").substringBefore("}; var").split(",") + episodeString.forEach { + val episode = episodeFromString(it) + episodeList.add(episode) + } + } else { + val episode = SEpisode.create() + episode.name = document.select("h1.entry-title").text() + episode.episode_number = 1F + episode.setUrlWithoutDomain(document.select("meta[property=\"og:url\"]").attr("content")) + episodeList.add(episode) + } + return episodeList.reversed() + } + + override fun episodeFromElement(element: Element): SEpisode = throw Exception("not Used") + + private fun episodeFromString(string: String): SEpisode { + val episode = SEpisode.create() + val season = string.substringAfter("\"s").substringBefore("_") + val ep = string.substringAfter("_").substringBefore("\":") + episode.episode_number = ep.toFloat() + episode.name = "Staffel $season Folge $ep" + episode.url = (string.replace("\\", "").replace("\"", "").replace("s${season}_$ep:", "")) + return episode + } + + // Video Extractor + + override fun videoListRequest(episode: SEpisode): Request { + if (!episode.url.contains("https://")) { + return GET("$baseUrl${episode.url}") + } else { + return GET(episode.url.replace(baseUrl, "")) + } + } + + override fun videoListParse(response: Response): List