From f25ae53fa2264c2c88437349945645f4fcfea617 Mon Sep 17 00:00:00 2001 From: Secozzi <49240133+Secozzi@users.noreply.github.com> Date: Mon, 1 May 2023 09:24:38 +0200 Subject: [PATCH] Update google drive extractor (#1556) * Update google drive extractor * teehee --- src/all/googledrive/build.gradle | 2 +- .../animeextension/all/googledrive/GoogleDrive.kt | 4 +++- .../googledrive/extractors/GoogleDriveExtractor.kt | 13 ++++++++----- src/en/kayoanime/build.gradle | 2 +- .../animeextension/en/kayoanime/Kayoanime.kt | 4 +++- .../en/kayoanime/extractors/GoogleDriveExtractor.kt | 13 ++++++++----- src/en/ripcrabbyanime/build.gradle | 2 +- .../en/ripcrabbyanime/Ripcrabbyanime.kt | 4 +++- .../extractors/GoogleDriveExtractor.kt | 13 ++++++++----- 9 files changed, 36 insertions(+), 21 deletions(-) diff --git a/src/all/googledrive/build.gradle b/src/all/googledrive/build.gradle index ce9c0a7dc..ad5cd54af 100644 --- a/src/all/googledrive/build.gradle +++ b/src/all/googledrive/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'Google Drive' pkgNameSuffix = 'all.googledrive' extClass = '.GoogleDrive' - extVersionCode = 2 + extVersionCode = 3 libVersion = '13' } diff --git a/src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/GoogleDrive.kt b/src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/GoogleDrive.kt index 1bc3b50b6..155fa11b5 100644 --- a/src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/GoogleDrive.kt +++ b/src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/GoogleDrive.kt @@ -38,7 +38,9 @@ import java.text.StringCharacterIterator class GoogleDrive : ConfigurableAnimeSource, AnimeHttpSource() { - override val name = "Google Drive (Experimental)" + override val name = "Google Drive" + + override val id = 4222017068256633289 override var baseUrl = "" diff --git a/src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/extractors/GoogleDriveExtractor.kt b/src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/extractors/GoogleDriveExtractor.kt index 01dc3e94b..07964284f 100644 --- a/src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/extractors/GoogleDriveExtractor.kt +++ b/src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/extractors/GoogleDriveExtractor.kt @@ -28,6 +28,9 @@ class GoogleDriveExtractor(private val client: OkHttpClient, private val headers val noRedirectClient = OkHttpClient().newBuilder().followRedirects(false).build() val document = itemResponse.asJsoup() + val itemSize = document.selectFirst("span.uc-name-size")?.let { + " ${it.ownText().trim()} " + } ?: "" val url = document.selectFirst("form#download-form")?.attr("action") ?: return emptyList() val redirectHeaders = headers.newBuilder() .add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8") @@ -43,7 +46,7 @@ class GoogleDriveExtractor(private val client: OkHttpClient, private val headers val response = noRedirectClient.newCall( POST(url, headers = redirectHeaders, body = "".toRequestBody("application/x-www-form-urlencoded".toMediaType())), ).execute() - val redirected = response.headers["location"] ?: return listOf(Video(url, videoName, url)) + val redirected = response.headers["location"] ?: return listOf(Video(url, videoName + itemSize, url)) val redirectedHeaders = headers.newBuilder() .add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8") @@ -55,10 +58,10 @@ class GoogleDriveExtractor(private val client: OkHttpClient, private val headers val redirectedResponseHeaders = noRedirectClient.newCall( GET(redirected, headers = redirectedHeaders), ).execute().headers - val authCookie = redirectedResponseHeaders.first { + val authCookie = redirectedResponseHeaders.firstOrNull { it.first == "set-cookie" && it.second.startsWith("AUTH_") - }.second.substringBefore(";") - val newRedirected = redirectedResponseHeaders["location"] ?: return listOf(Video(redirected, videoName, redirected)) + }?.second?.substringBefore(";") ?: return listOf(Video(url, videoName + itemSize, url)) + val newRedirected = redirectedResponseHeaders["location"] ?: return listOf(Video(redirected, videoName + itemSize, redirected)) val googleDriveRedirectHeaders = headers.newBuilder() .add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8") @@ -80,7 +83,7 @@ class GoogleDriveExtractor(private val client: OkHttpClient, private val headers .build() return listOf( - Video(googleDriveRedirectUrl, videoName, googleDriveRedirectUrl, headers = videoHeaders), + Video(googleDriveRedirectUrl, videoName + itemSize, googleDriveRedirectUrl, headers = videoHeaders), ) } diff --git a/src/en/kayoanime/build.gradle b/src/en/kayoanime/build.gradle index 8b5d961ba..5fb8a5e43 100644 --- a/src/en/kayoanime/build.gradle +++ b/src/en/kayoanime/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'Kayoanime' pkgNameSuffix = 'en.kayoanime' extClass = '.Kayoanime' - extVersionCode = 3 + extVersionCode = 4 libVersion = '13' } diff --git a/src/en/kayoanime/src/eu/kanade/tachiyomi/animeextension/en/kayoanime/Kayoanime.kt b/src/en/kayoanime/src/eu/kanade/tachiyomi/animeextension/en/kayoanime/Kayoanime.kt index a4f45fcc8..73bbcf6fc 100644 --- a/src/en/kayoanime/src/eu/kanade/tachiyomi/animeextension/en/kayoanime/Kayoanime.kt +++ b/src/en/kayoanime/src/eu/kanade/tachiyomi/animeextension/en/kayoanime/Kayoanime.kt @@ -42,7 +42,9 @@ import java.util.Locale class Kayoanime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { - override val name = "Kayoanime (Experimental)" + override val name = "Kayoanime" + + override val id = 203922289858257167 override val baseUrl = "https://kayoanime.com" diff --git a/src/en/kayoanime/src/eu/kanade/tachiyomi/animeextension/en/kayoanime/extractors/GoogleDriveExtractor.kt b/src/en/kayoanime/src/eu/kanade/tachiyomi/animeextension/en/kayoanime/extractors/GoogleDriveExtractor.kt index c64697c44..ec1d7a1c2 100644 --- a/src/en/kayoanime/src/eu/kanade/tachiyomi/animeextension/en/kayoanime/extractors/GoogleDriveExtractor.kt +++ b/src/en/kayoanime/src/eu/kanade/tachiyomi/animeextension/en/kayoanime/extractors/GoogleDriveExtractor.kt @@ -28,6 +28,9 @@ class GoogleDriveExtractor(private val client: OkHttpClient, private val headers val noRedirectClient = OkHttpClient().newBuilder().followRedirects(false).build() val document = itemResponse.asJsoup() + val itemSize = document.selectFirst("span.uc-name-size")?.let { + " ${it.ownText().trim()} " + } ?: "" val url = document.selectFirst("form#download-form")?.attr("action") ?: return emptyList() val redirectHeaders = headers.newBuilder() .add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8") @@ -43,7 +46,7 @@ class GoogleDriveExtractor(private val client: OkHttpClient, private val headers val response = noRedirectClient.newCall( POST(url, headers = redirectHeaders, body = "".toRequestBody("application/x-www-form-urlencoded".toMediaType())), ).execute() - val redirected = response.headers["location"] ?: return listOf(Video(url, videoName, url)) + val redirected = response.headers["location"] ?: return listOf(Video(url, videoName + itemSize, url)) val redirectedHeaders = headers.newBuilder() .add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8") @@ -55,10 +58,10 @@ class GoogleDriveExtractor(private val client: OkHttpClient, private val headers val redirectedResponseHeaders = noRedirectClient.newCall( GET(redirected, headers = redirectedHeaders), ).execute().headers - val authCookie = redirectedResponseHeaders.first { + val authCookie = redirectedResponseHeaders.firstOrNull { it.first == "set-cookie" && it.second.startsWith("AUTH_") - }.second.substringBefore(";") - val newRedirected = redirectedResponseHeaders["location"] ?: return listOf(Video(redirected, videoName, redirected)) + }?.second?.substringBefore(";") ?: return listOf(Video(url, videoName + itemSize, url)) + val newRedirected = redirectedResponseHeaders["location"] ?: return listOf(Video(redirected, videoName + itemSize, redirected)) val googleDriveRedirectHeaders = headers.newBuilder() .add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8") @@ -80,7 +83,7 @@ class GoogleDriveExtractor(private val client: OkHttpClient, private val headers .build() return listOf( - Video(googleDriveRedirectUrl, videoName, googleDriveRedirectUrl, headers = videoHeaders), + Video(googleDriveRedirectUrl, videoName + itemSize, googleDriveRedirectUrl, headers = videoHeaders), ) } diff --git a/src/en/ripcrabbyanime/build.gradle b/src/en/ripcrabbyanime/build.gradle index c6cb3561b..93bfd4804 100644 --- a/src/en/ripcrabbyanime/build.gradle +++ b/src/en/ripcrabbyanime/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'Ripcrabbyanime' pkgNameSuffix = 'en.ripcrabbyanime' extClass = '.Ripcrabbyanime' - extVersionCode = 1 + extVersionCode = 2 libVersion = '13' } diff --git a/src/en/ripcrabbyanime/src/eu/kanade/tachiyomi/animeextension/en/ripcrabbyanime/Ripcrabbyanime.kt b/src/en/ripcrabbyanime/src/eu/kanade/tachiyomi/animeextension/en/ripcrabbyanime/Ripcrabbyanime.kt index dee77bd4d..dbe07b41e 100644 --- a/src/en/ripcrabbyanime/src/eu/kanade/tachiyomi/animeextension/en/ripcrabbyanime/Ripcrabbyanime.kt +++ b/src/en/ripcrabbyanime/src/eu/kanade/tachiyomi/animeextension/en/ripcrabbyanime/Ripcrabbyanime.kt @@ -38,7 +38,9 @@ import java.text.StringCharacterIterator class Ripcrabbyanime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { - override val name = "Ripcrabbyanime (Experimental)" + override val name = "Ripcrabbyanime" + + override val id = 623659475482363776 override val baseUrl = "https://ripcrabbyanime.in" diff --git a/src/en/ripcrabbyanime/src/eu/kanade/tachiyomi/animeextension/en/ripcrabbyanime/extractors/GoogleDriveExtractor.kt b/src/en/ripcrabbyanime/src/eu/kanade/tachiyomi/animeextension/en/ripcrabbyanime/extractors/GoogleDriveExtractor.kt index caef75e47..0baec45c3 100644 --- a/src/en/ripcrabbyanime/src/eu/kanade/tachiyomi/animeextension/en/ripcrabbyanime/extractors/GoogleDriveExtractor.kt +++ b/src/en/ripcrabbyanime/src/eu/kanade/tachiyomi/animeextension/en/ripcrabbyanime/extractors/GoogleDriveExtractor.kt @@ -28,6 +28,9 @@ class GoogleDriveExtractor(private val client: OkHttpClient, private val headers val noRedirectClient = OkHttpClient().newBuilder().followRedirects(false).build() val document = itemResponse.asJsoup() + val itemSize = document.selectFirst("span.uc-name-size")?.let { + " ${it.ownText().trim()} " + } ?: "" val url = document.selectFirst("form#download-form")?.attr("action") ?: return emptyList() val redirectHeaders = headers.newBuilder() .add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8") @@ -43,7 +46,7 @@ class GoogleDriveExtractor(private val client: OkHttpClient, private val headers val response = noRedirectClient.newCall( POST(url, headers = redirectHeaders, body = "".toRequestBody("application/x-www-form-urlencoded".toMediaType())), ).execute() - val redirected = response.headers["location"] ?: return listOf(Video(url, videoName, url)) + val redirected = response.headers["location"] ?: return listOf(Video(url, videoName + itemSize, url)) val redirectedHeaders = headers.newBuilder() .add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8") @@ -55,10 +58,10 @@ class GoogleDriveExtractor(private val client: OkHttpClient, private val headers val redirectedResponseHeaders = noRedirectClient.newCall( GET(redirected, headers = redirectedHeaders), ).execute().headers - val authCookie = redirectedResponseHeaders.first { + val authCookie = redirectedResponseHeaders.firstOrNull { it.first == "set-cookie" && it.second.startsWith("AUTH_") - }.second.substringBefore(";") - val newRedirected = redirectedResponseHeaders["location"] ?: return listOf(Video(redirected, videoName, redirected)) + }?.second?.substringBefore(";") ?: return listOf(Video(url, videoName + itemSize, url)) + val newRedirected = redirectedResponseHeaders["location"] ?: return listOf(Video(redirected, videoName + itemSize, redirected)) val googleDriveRedirectHeaders = headers.newBuilder() .add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8") @@ -80,7 +83,7 @@ class GoogleDriveExtractor(private val client: OkHttpClient, private val headers .build() return listOf( - Video(googleDriveRedirectUrl, videoName, googleDriveRedirectUrl, headers = videoHeaders), + Video(googleDriveRedirectUrl, videoName + itemSize, googleDriveRedirectUrl, headers = videoHeaders), ) }