From ac4937a61e4cc1b648f84418ff27e1ad1ecc8ac6 Mon Sep 17 00:00:00 2001 From: Secozzi <49240133+Secozzi@users.noreply.github.com> Date: Sat, 16 Mar 2024 19:28:32 +0000 Subject: [PATCH] chore(src/all): Remove yomiroll (#3053) --- src/all/kamyroll/build.gradle | 7 - .../kamyroll/res/mipmap-hdpi/ic_launcher.png | Bin 4482 -> 0 bytes .../kamyroll/res/mipmap-mdpi/ic_launcher.png | Bin 2513 -> 0 bytes .../kamyroll/res/mipmap-xhdpi/ic_launcher.png | Bin 5933 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 10811 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 15318 -> 0 bytes src/all/kamyroll/res/web_hi_res_512.png | Bin 78219 -> 0 bytes .../all/kamyroll/AccessTokenInterceptor.kt | 170 ----- .../animeextension/all/kamyroll/DataModel.kt | 191 ------ .../animeextension/all/kamyroll/Yomiroll.kt | 630 ------------------ .../all/kamyroll/YomirollFilters.kt | 201 ------ 11 files changed, 1199 deletions(-) delete mode 100644 src/all/kamyroll/build.gradle delete mode 100644 src/all/kamyroll/res/mipmap-hdpi/ic_launcher.png delete mode 100644 src/all/kamyroll/res/mipmap-mdpi/ic_launcher.png delete mode 100644 src/all/kamyroll/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 src/all/kamyroll/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 src/all/kamyroll/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 src/all/kamyroll/res/web_hi_res_512.png delete mode 100644 src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/AccessTokenInterceptor.kt delete mode 100644 src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/DataModel.kt delete mode 100644 src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/Yomiroll.kt delete mode 100644 src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/YomirollFilters.kt diff --git a/src/all/kamyroll/build.gradle b/src/all/kamyroll/build.gradle deleted file mode 100644 index f14ece26c..000000000 --- a/src/all/kamyroll/build.gradle +++ /dev/null @@ -1,7 +0,0 @@ -ext { - extName = 'Yomiroll' - extClass = '.Yomiroll' - extVersionCode = 31 -} - -apply from: "$rootDir/common.gradle" diff --git a/src/all/kamyroll/res/mipmap-hdpi/ic_launcher.png b/src/all/kamyroll/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index de285daf12cc23df50bef5e2b0fe53d2a542ce15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4482 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 b*8}(;Zx+&ggobT<00000NkvXXu0mjffq>yC diff --git a/src/all/kamyroll/res/mipmap-xhdpi/ic_launcher.png b/src/all/kamyroll/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 9a281fbba86ce3df4f3dd0984d9d3b36e56582c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5933 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 P00000NkvXXu0mjfE<{WP diff --git a/src/all/kamyroll/res/mipmap-xxhdpi/ic_launcher.png b/src/all/kamyroll/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index c27403f12057705b2880200018b692ced8a430c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10811 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 diff --git a/src/all/kamyroll/res/web_hi_res_512.png b/src/all/kamyroll/res/web_hi_res_512.png deleted file mode 100644 index 63c77b7d1d3f29c190b64a2ff5dd8d92a456d3f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78219 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�A$uobW$TG%HJ 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

pSKBbA%1>LUu&RV@A_yUf6`qJ@gJ1?0oM2ANC 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 diff --git a/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/AccessTokenInterceptor.kt b/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/AccessTokenInterceptor.kt deleted file mode 100644 index 22e7d5294..000000000 --- a/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/AccessTokenInterceptor.kt +++ /dev/null @@ -1,170 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.all.kamyroll - -import android.content.SharedPreferences -import android.net.Uri -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.POST -import kotlinx.serialization.encodeToString -import kotlinx.serialization.json.Json -import okhttp3.Headers -import okhttp3.Interceptor -import okhttp3.MediaType.Companion.toMediaType -import okhttp3.OkHttpClient -import okhttp3.Request -import okhttp3.RequestBody.Companion.toRequestBody -import okhttp3.Response -import java.net.Authenticator -import java.net.HttpURLConnection -import java.net.InetSocketAddress -import java.net.PasswordAuthentication -import java.net.Proxy -import java.text.MessageFormat -import java.text.SimpleDateFormat -import java.util.Locale - -class AccessTokenInterceptor( - private val crUrl: String, - private val json: Json, - private val preferences: SharedPreferences, - private val PREF_USE_LOCAL_Token: String, -) : Interceptor { - - override fun intercept(chain: Interceptor.Chain): Response { - val accessTokenN = getAccessToken() - - val request = newRequestWithAccessToken(chain.request(), accessTokenN) - val response = chain.proceed(request) - when (response.code) { - HttpURLConnection.HTTP_UNAUTHORIZED -> { - synchronized(this) { - response.close() - // Access token is refreshed in another thread. Check if it has changed. - val newAccessToken = getAccessToken() - if (accessTokenN != newAccessToken) { - return chain.proceed(newRequestWithAccessToken(request, newAccessToken)) - } - val refreshedToken = getAccessToken(true) - // Retry the request - return chain.proceed( - newRequestWithAccessToken(chain.request(), refreshedToken), - ) - } - } - else -> return response - } - } - - private fun newRequestWithAccessToken(request: Request, tokenData: AccessToken): Request { - return request.newBuilder().let { - it.header("authorization", "${tokenData.token_type} ${tokenData.access_token}") - val requestUrl = Uri.decode(request.url.toString()) - if (requestUrl.contains("/cms/v2")) { - it.url( - MessageFormat.format( - requestUrl, - tokenData.bucket, - tokenData.policy, - tokenData.signature, - tokenData.key_pair_id, - ), - ) - } - it.build() - } - } - - fun getAccessToken(force: Boolean = false): AccessToken { - val token = preferences.getString(TOKEN_PREF_KEY, null) - return if (!force && token != null) { - token.toAccessToken() - } else { - synchronized(this) { - if (!preferences.getBoolean(PREF_USE_LOCAL_Token, false)) { - refreshAccessToken() - } else { - refreshAccessToken(false) - } - } - } - } - - fun removeToken() { - preferences.edit().putString(TOKEN_PREF_KEY, null).apply() - } - - private fun refreshAccessToken(useProxy: Boolean = true): AccessToken { - removeToken() - val client = OkHttpClient().newBuilder().let { - if (useProxy) { - Authenticator.setDefault( - object : Authenticator() { - override fun getPasswordAuthentication(): PasswordAuthentication { - return PasswordAuthentication("crunblocker", "crunblocker".toCharArray()) - } - }, - ) - it.proxy( - Proxy( - Proxy.Type.SOCKS, - InetSocketAddress("cr-unblocker.us.to", 1080), - ), - ) - .build() - } else { - it.build() - } - } - val response = client.newCall(getRequest()).execute() - val parsedJson = json.decodeFromString(response.body.string()) - - val policy = client.newCall(newRequestWithAccessToken(GET("$crUrl/index/v2"), parsedJson)).execute() - val policyJson = json.decodeFromString(policy.body.string()) - val allTokens = AccessToken( - parsedJson.access_token, - parsedJson.token_type, - policyJson.cms.policy, - policyJson.cms.signature, - policyJson.cms.key_pair_id, - policyJson.cms.bucket, - DATE_FORMATTER.parse(policyJson.cms.expires)?.time, - ) - - preferences.edit().putString(TOKEN_PREF_KEY, allTokens.toJsonString()).apply() - return allTokens - } - - private fun getRequest(): Request { - val client = OkHttpClient().newBuilder().build() - val refreshTokenResp = client.newCall( - GET("https://raw.githubusercontent.com/Samfun75/File-host/main/aniyomi/refreshToken.txt"), - ).execute() - val refreshToken = refreshTokenResp.body.string().replace("[\n\r]".toRegex(), "") - val headers = Headers.Builder() - .add("Content-Type", "application/x-www-form-urlencoded") - .add( - "Authorization", - "Basic b2VkYXJteHN0bGgxanZhd2ltbnE6OWxFaHZIWkpEMzJqdVY1ZFc5Vk9TNTdkb3BkSnBnbzE=", - ) - .build() - val postBody = "grant_type=refresh_token&refresh_token=$refreshToken&scope=offline_access".toRequestBody( - "application/x-www-form-urlencoded".toMediaType(), - ) - return POST("$crUrl/auth/v1/token", headers, postBody) - } - - private fun AccessToken.toJsonString(): String { - return json.encodeToString(this) - } - - private fun String.toAccessToken(): AccessToken { - return json.decodeFromString(this) - } - - companion object { - private const val TOKEN_PREF_KEY = "access_token_data" - - private val DATE_FORMATTER by lazy { - SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH) - } - } -} diff --git a/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/DataModel.kt b/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/DataModel.kt deleted file mode 100644 index c3194906e..000000000 --- a/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/DataModel.kt +++ /dev/null @@ -1,191 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.all.kamyroll - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable -import kotlinx.serialization.json.JsonObject - -@Serializable -data class AccessToken( - val access_token: String, - val token_type: String, - val policy: String? = null, - val signature: String? = null, - val key_pair_id: String? = null, - val bucket: String? = null, - val policyExpire: Long? = null, -) - -@Serializable -data class Policy( - val cms: Tokens, -) { - @Serializable - data class Tokens( - val policy: String, - val signature: String, - val key_pair_id: String, - val bucket: String, - val expires: String, - ) -} - -@Serializable -data class LinkData( - val id: String, - val media_type: String, -) - -@Serializable -data class Images( - val poster_tall: List>? = null, -) { - @Serializable - data class Image( - val width: Int, - val height: Int, - val type: String, - val source: String, - ) -} - -@Serializable -data class Anime( - val id: String, - val type: String? = null, - val title: String, - val description: String, - val images: Images, - @SerialName("keywords") - val genres: ArrayList? = null, - val series_metadata: Metadata? = null, - @SerialName("movie_listing_metadata") - val movie_metadata: Metadata? = null, - val content_provider: String? = null, - val audio_locale: String? = null, - val audio_locales: ArrayList? = null, - val subtitle_locales: ArrayList? = null, - val maturity_ratings: ArrayList? = null, - val is_dubbed: Boolean? = null, - val is_subbed: Boolean? = null, -) { - @Serializable - data class Metadata( - val maturity_ratings: ArrayList, - val is_simulcast: Boolean? = null, - val audio_locales: ArrayList? = null, - val subtitle_locales: ArrayList, - val is_dubbed: Boolean, - val is_subbed: Boolean, - @SerialName("tenant_categories") - val genres: ArrayList? = null, - ) -} - -@Serializable -data class AnimeResult( - val total: Int, - val data: ArrayList, -) - -@Serializable -data class SearchAnimeResult( - val data: ArrayList, -) { - @Serializable - data class SearchAnime( - val type: String, - val count: Int, - val items: ArrayList, - ) -} - -@Serializable -data class SeasonResult( - val total: Int, - val data: ArrayList, -) { - @Serializable - data class Season( - val id: String, - val season_number: Int? = null, - @SerialName("premium_available_date") - val date: String? = null, - ) -} - -@Serializable -data class EpisodeResult( - val total: Int, - val data: ArrayList, -) { - @Serializable - data class Episode( - val audio_locale: String, - val title: String, - @SerialName("sequence_number") - val episode_number: Float, - val episode: String? = null, - @SerialName("episode_air_date") - val airDate: String? = null, - val versions: ArrayList? = null, - val streams_link: String? = null, - ) { - @Serializable - data class Version( - val audio_locale: String, - @SerialName("media_guid") - val mediaId: String, - ) - } -} - -@Serializable -data class EpisodeData( - val ids: List>, -) - -@Serializable -data class VideoStreams( - val streams: Stream? = null, - val subtitles: JsonObject? = null, - val audio_locale: String? = null, -) { - @Serializable - data class Stream( - @SerialName("vo_adaptive_hls") - val adaptiveHls: JsonObject, - ) -} - -@Serializable -data class HlsLinks( - val hardsub_locale: String, - val url: String, -) - -@Serializable -data class Subtitle( - val locale: String, - val url: String, -) - -@Serializable -data class AnilistResult( - val data: AniData, -) { - @Serializable - data class AniData( - @SerialName("Media") - val media: Media? = null, - ) - - @Serializable - data class Media( - val status: String, - ) -} - -fun List.thirdLast(): T? { - if (size < 3) return null - return this[size - 3] -} diff --git a/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/Yomiroll.kt b/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/Yomiroll.kt deleted file mode 100644 index a041db1a5..000000000 --- a/src/all/kamyroll/src/eu/kanade/tachiyomi/animeextension/all/kamyroll/Yomiroll.kt +++ /dev/null @@ -1,630 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.all.kamyroll - -import android.app.Application -import android.content.Context -import android.content.SharedPreferences -import androidx.preference.ListPreference -import androidx.preference.PreferenceScreen -import androidx.preference.SwitchPreferenceCompat -import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource -import eu.kanade.tachiyomi.animesource.model.AnimeFilterList -import eu.kanade.tachiyomi.animesource.model.AnimesPage -import eu.kanade.tachiyomi.animesource.model.SAnime -import eu.kanade.tachiyomi.animesource.model.SEpisode -import eu.kanade.tachiyomi.animesource.model.Track -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.animesource.online.AnimeHttpSource -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.POST -import eu.kanade.tachiyomi.util.parallelCatchingFlatMap -import eu.kanade.tachiyomi.util.parallelCatchingFlatMapBlocking -import eu.kanade.tachiyomi.util.parallelMapNotNullBlocking -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.MainScope -import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext -import kotlinx.serialization.ExperimentalSerializationApi -import kotlinx.serialization.encodeToString -import kotlinx.serialization.json.Json -import kotlinx.serialization.json.jsonObject -import okhttp3.FormBody -import okhttp3.Request -import okhttp3.Response -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get -import uy.kohesive.injekt.injectLazy -import java.text.DecimalFormat -import java.text.SimpleDateFormat -import java.util.Locale - -@ExperimentalSerializationApi -class Yomiroll : ConfigurableAnimeSource, AnimeHttpSource() { - - // No more renaming, no matter what 3rd party service is used :) - override val name = "Yomiroll" - - override val baseUrl = "https://crunchyroll.com" - - private val crUrl = "https://beta-api.crunchyroll.com" - private val crApiUrl = "$crUrl/content/v2" - - override val lang = "all" - - override val supportsLatest = true - - override val id: Long = 7463514907068706782 - - private val json: Json by injectLazy() - - private val mainScope by lazy { MainScope() } - - private val preferences: SharedPreferences by lazy { - Injekt.get().getSharedPreferences("source_$id", 0x0000) - } - - private val tokenInterceptor by lazy { - AccessTokenInterceptor(crUrl, json, preferences, PREF_USE_LOCAL_TOKEN_KEY) - } - - override val client by lazy { - super.client.newBuilder().addInterceptor(tokenInterceptor).build() - } - - private val noTokenClient = super.client - - // ============================== Popular =============================== - - override fun popularAnimeRequest(page: Int): Request { - val start = if (page != 1) "start=${(page - 1) * 36}&" else "" - return GET("$crApiUrl/discover/browse?${start}n=36&sort_by=popularity&locale=en-US") - } - - override fun popularAnimeParse(response: Response): AnimesPage { - val parsed = json.decodeFromString(response.body.string()) - val animeList = parsed.data.mapNotNull { it.toSAnimeOrNull() } - val position = response.request.url.queryParameter("start")?.toIntOrNull() ?: 0 - return AnimesPage(animeList, position + 36 < parsed.total) - } - - // =============================== Latest =============================== - - override fun latestUpdatesRequest(page: Int): Request { - val start = if (page != 1) "start=${(page - 1) * 36}&" else "" - return GET("$crApiUrl/discover/browse?${start}n=36&sort_by=newly_added&locale=en-US") - } - - override fun latestUpdatesParse(response: Response): AnimesPage = popularAnimeParse(response) - - // =============================== Search =============================== - - override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request { - val params = YomirollFilters.getSearchParameters(filters) - val start = if (page != 1) "start=${(page - 1) * 36}&" else "" - val url = if (query.isNotBlank()) { - val cleanQuery = query.replace(" ", "+").lowercase() - "$crApiUrl/discover/search?${start}n=36&q=$cleanQuery&type=${params.type}" - } else { - "$crApiUrl/discover/browse?${start}n=36${params.media}${params.language}&sort_by=${params.sort}${params.category}" - } - return GET(url) - } - - override fun searchAnimeParse(response: Response): AnimesPage { - val bod = response.body.string() - val total: Int - val items = - if (response.request.url.encodedPath.contains("search")) { - val parsed = json.decodeFromString(bod).data.first() - total = parsed.count - parsed.items - } else { - val parsed = json.decodeFromString(bod) - total = parsed.total - parsed.data - } - - val animeList = items.mapNotNull { it.toSAnimeOrNull() } - val position = response.request.url.queryParameter("start")?.toIntOrNull() ?: 0 - return AnimesPage(animeList, position + 36 < total) - } - - override fun getFilterList(): AnimeFilterList = YomirollFilters.FILTER_LIST - - // =========================== Anime Details ============================ - - // Function to fetch anime status using AniList GraphQL API ispired by OppaiStream.kt - private fun fetchStatusByTitle(title: String): Int { - val query = """ - query { - Media( - search: "$title", - sort: STATUS_DESC, - status_not_in: [NOT_YET_RELEASED], - format_not_in: [SPECIAL, MOVIE], - isAdult: false, - type: ANIME - ) { - id - idMal - title { - romaji - native - english - } - status - } - } - """.trimIndent() - - val requestBody = FormBody.Builder() - .add("query", query) - .build() - - val response = noTokenClient.newCall( - POST("https://graphql.anilist.co", body = requestBody), - ).execute().body.string() - - val responseParsed = json.decodeFromString(response) - - return when (responseParsed.data.media?.status) { - "FINISHED" -> SAnime.COMPLETED - "RELEASING" -> SAnime.ONGOING - "CANCELLED" -> SAnime.CANCELLED - "HIATUS" -> SAnime.ON_HIATUS - else -> SAnime.UNKNOWN - } - } - - override suspend fun getAnimeDetails(anime: SAnime): SAnime { - val mediaId = json.decodeFromString(anime.url) - val resp = client.newCall( - if (mediaId.media_type == "series") { - GET("$crApiUrl/cms/series/${mediaId.id}?locale=en-US") - } else { - GET("$crApiUrl/cms/movie_listings/${mediaId.id}?locale=en-US") - }, - ).execute().body.string() - val info = json.decodeFromString(resp) - return info.data.first().toSAnimeOrNull(anime) ?: anime - } - - override fun animeDetailsParse(response: Response): SAnime = - throw UnsupportedOperationException() - - // ============================== Episodes ============================== - - override fun episodeListRequest(anime: SAnime): Request { - val mediaId = json.decodeFromString(anime.url) - return if (mediaId.media_type == "series") { - GET("$crApiUrl/cms/series/${mediaId.id}/seasons") - } else { - GET("$crApiUrl/cms/movie_listings/${mediaId.id}/movies") - } - } - - override fun episodeListParse(response: Response): List { - val seasons = json.decodeFromString(response.body.string()) - val series = response.request.url.encodedPath.contains("series/") - val chunkSize = Runtime.getRuntime().availableProcessors() - return if (series) { - seasons.data.sortedBy { it.season_number }.chunked(chunkSize).flatMap { chunk -> - chunk.parallelCatchingFlatMapBlocking(::getEpisodes) - }.reversed() - } else { - seasons.data.mapIndexed { index, movie -> - SEpisode.create().apply { - url = EpisodeData(listOf(Pair(movie.id, ""))).toJsonString() - name = "Movie ${index + 1}" - episode_number = (index + 1).toFloat() - date_upload = movie.date?.let(::parseDate) ?: 0L - } - } - } - } - - private fun getEpisodes(seasonData: SeasonResult.Season): List { - val body = - client.newCall(GET("$crApiUrl/cms/seasons/${seasonData.id}/episodes")) - .execute().body.string() - val episodes = json.decodeFromString(body) - - return episodes.data.sortedBy { it.episode_number }.mapNotNull EpisodeMap@{ ep -> - SEpisode.create().apply { - url = EpisodeData( - ep.versions?.map { Pair(it.mediaId, it.audio_locale) } - ?: listOf( - Pair( - ep.streams_link?.substringAfter("videos/") - ?.substringBefore("/streams") - ?: return@EpisodeMap null, - ep.audio_locale, - ), - ), - ).toJsonString() - name = if (ep.episode_number > 0 && ep.episode.isNumeric()) { - "Season ${seasonData.season_number} Ep ${df.format(ep.episode_number)}: " + ep.title - } else { - ep.title - } - episode_number = ep.episode_number - date_upload = ep.airDate?.let(::parseDate) ?: 0L - scanlator = ep.versions?.sortedBy { it.audio_locale } - ?.joinToString { it.audio_locale.substringBefore("-") } - ?: ep.audio_locale.substringBefore("-") - } - } - } - - // ============================ Video Links ============================= - - override suspend fun getVideoList(episode: SEpisode): List