From 9d97d3f2e91bd81836dd2dbf57b44402c9608d3a Mon Sep 17 00:00:00 2001 From: nitin Date: Mon, 29 Jan 2024 20:16:59 +0530 Subject: [PATCH 01/13] New Source: Torrentio --- src/all/torrentio/AndroidManifest.xml | 22 + src/all/torrentio/build.gradle | 7 + src/all/torrentio/ic_launcher-playstore.png | Bin 0 -> 50172 bytes .../torrentio/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 1784 bytes .../torrentio/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1058 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 2272 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 4152 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 6193 bytes .../animeextension/all/torrentio/Torrentio.kt | 715 ++++++++++++++++++ .../all/torrentio/TorrentioUrlActivity.kt | 41 + .../all/torrentio/dto/TorrentioDto.kt | 153 ++++ 11 files changed, 938 insertions(+) create mode 100644 src/all/torrentio/AndroidManifest.xml create mode 100644 src/all/torrentio/build.gradle create mode 100644 src/all/torrentio/ic_launcher-playstore.png create mode 100644 src/all/torrentio/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/all/torrentio/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/all/torrentio/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/all/torrentio/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/all/torrentio/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/all/torrentio/src/eu/kanade/tachiyomi/animeextension/all/torrentio/Torrentio.kt create mode 100644 src/all/torrentio/src/eu/kanade/tachiyomi/animeextension/all/torrentio/TorrentioUrlActivity.kt create mode 100644 src/all/torrentio/src/eu/kanade/tachiyomi/animeextension/all/torrentio/dto/TorrentioDto.kt diff --git a/src/all/torrentio/AndroidManifest.xml b/src/all/torrentio/AndroidManifest.xml new file mode 100644 index 0000000000..360fba20a4 --- /dev/null +++ b/src/all/torrentio/AndroidManifest.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + diff --git a/src/all/torrentio/build.gradle b/src/all/torrentio/build.gradle new file mode 100644 index 0000000000..94473037ae --- /dev/null +++ b/src/all/torrentio/build.gradle @@ -0,0 +1,7 @@ +ext { + extName = 'Torrentio (Torrent / Debird)' + extClass = '.Torrentio' + extVersionCode = 1 +} + +apply from: "$rootDir/common.gradle" diff --git a/src/all/torrentio/ic_launcher-playstore.png b/src/all/torrentio/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..09ba6e17382053895241e6fcedef3a4cbe8c90e4 GIT binary patch literal 50172 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 sFjffn@vo8=7|Fu5+zK)jI6|0Mbj?l>h($ literal 0 HcmV?d00001 diff --git a/src/all/torrentio/res/mipmap-hdpi/ic_launcher.png b/src/all/torrentio/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..317a43c2d62e60bf2274dc6873e31577a9f68ebb GIT binary patch literal 1784 zcmVUo zKn@TNIRT#m#0NlvuaiUZewFS?Pj%1I)6+eR=1G5z++FqRy?<4`s(Rh+Sga!*=}1R9 z((=+J*xP2nr@BbDd7+IYux|wgxm@miHk-XIzu(I5*Yf*KE5WiE+wtMNmydo$S4^c+ zBck-riHQl-PQWL8bNcE>3iDGG{e{9zCUd`?VEOcS>>)Y6ViG|tCQ6>R$uWDN)gc{! zU!W3+#096%)ryYtLd;hvYe$0c34)Tz3N2*SSwQ%2SW}=&8rZa*Uw6w!g&`loy+zJ5FV_AiX%H4xU?9 zz3*{ufaiC2~1FS>cNPKzpN2JO%u?b5y;Ngm})L`o1bpzpO4x+gKV*1%aSXit+Q z?PEtZF)1>FFwPFhQB12+C`>mia98T2$OvMowF7b`ax#ae)L4FAjqWZKP-;q~7pIHL zjczYg)X#l8aATKw--$>F!XWk|EV-;I=6w^16LYHP!!6bQ*>(ZLXAZl{0rauwvCHlK z=(HNmFSyE?(DlR~>?%iS_yoynaq#St-n6kVsb(o3KY2*)xgkf4FLw(VdSb~{4vaj$ zSX2(OMs_L_gdNy}UD#J@RSTUU&O~hcF+8z4>oUL#Q4j>Mhw|8`&u$)NLMMnh&e@3V zf2m$F5fwoIyRffREDDt%QV$#=IY4qoG8-?2C<($Y?88p4R7t1=k)I(2!701cD&&PI z3BoSy!%plq?}thdsR;5kx_2t31NjM;EGL`e|9 zKJ3I^Gfsv_(4_2~FRkiry;skagFk`}2PO#nu#=s&&T%{Lg-Q@PV|J^_BQq|e%E61E zgU=jsl>+#xBO{0vA#UY+NROIEm4g>S123$(%7MWP#{v_CeL7!sb;Gri zg-g(zCw0S_*~+_TC%g#idHa}t z=Wp}}C8!}IsNONiCW&5Vy6t;QM(3?!a%v^0Au*`ltC%@b3fFI0&&C1}R9MBt-slLb z^FD|q*B%}sItk*8_v&%g^TAdif`%Hh51Od+PWq`OHS*Y^4$9x zN-XMsX~;(72uSL^x+LRna2*9L@~4+;um zTf_1}`dY{t#UN;kjAGb1=~_{glRnqLoHX$LRO9%Z4xFr3Hdw*TazW5MPcH3AWoPN(bhtwt#@609$K>@R&Z z5fOgvlSm})+Wr<(P+meCLCu1CjiB$G%GwF|#0Pcb@Gimo8T?~1L=Y@pS_ zCz;}x8Xg|LX8GG=a8Opd1bYO@R4Vn4Lt$G0U+_r=z`x>S#_|=PeF>Eg#N+W@6p3O; za`i;30Uz*1eELs(JA;ogpVP}JaY0J3B17@U*x1-T!5@O(1i!Z!uo>I$;R`-lzV#J( z>{A$a`vnQXoM1_?+~U9od>I$?$7+~bUP1t4DDs~Q##$WsfG@s+a0Tqgr8gBs;O?)vLL!wV68ZQxFj8!7~8;ptnzy}lk zRYV2#(FZf0Z`dxwY?p4?ZMP(xp~*Y?$#b3LK$?Ur161(4CDogL6oy z)4vmm#JI>+Hhz#)<|$!YOg0N;a+pPy3#@x}mUTUvW4`Al4t&Qk_z)xKHGn1{8jTi2 zuCj>&%wK`QEQ?(jV_i??nQNoM{Le}(bZ44Ht`%9|#c>XN$1(U2gIMGsS2vy>nt(_o zQWUw$*0g}c^hxF?GM?9E7QQ*fltNAyBLgvrMGkT?h8!cIH3Fhn3e5d>iS^u_VX2Wp zoxc%~gItV(v1Gph`vsi1G0EKPODt9y)A^bO#=uw@Q}(H_R{%frRIqodD8-HpTq}QM$sbKeGP|tTcrkVW2<_AjjgJ~8(SKTwiZ`}t;Lo0Z!Oxh zxl0`-(ALdeMNvjG&0K-jLlY2>$0tOtvhhC+NM(wGf2zry^asaQI2_KYT cBkKhF54>#@&&p}lYXATM07*qoM6N<$g0WTOUH||9 literal 0 HcmV?d00001 diff --git a/src/all/torrentio/res/mipmap-xhdpi/ic_launcher.png b/src/all/torrentio/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..2e4d185ce12ba393a8ff37a27aac236f8f61ccc3 GIT binary patch literal 2272 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 HW6b{mIWWZ3 literal 0 HcmV?d00001 diff --git a/src/all/torrentio/res/mipmap-xxxhdpi/ic_launcher.png b/src/all/torrentio/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bba11b734f7aff30d1dc4fbda33a625fdfde4468 GIT binary patch literal 6193 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.getSharedPreferences("source_$id", 0x0000) + } + + private val context = Injekt.get() + private val handler by lazy { Handler(Looper.getMainLooper()) } + + // ============================== Anilist API Request =================== + private fun makeGraphQLRequest(query: String, variables: String): Request { + val requestBody = FormBody.Builder() + .add("query", query) + .add("variables", variables) + .build() + + return POST("https://graphql.anilist.co", body = requestBody) + } + + // ============================== Anilist Meta List ====================== + private fun anilistQuery(): String { + return """ + query (${"$"}page: Int, ${"$"}perPage: Int, ${"$"}sort: [MediaSort], ${"$"}search: String) { + Page(page: ${"$"}page, perPage: ${"$"}perPage) { + pageInfo{ + currentPage + hasNextPage + } + media(type: ANIME, sort: ${"$"}sort, search: ${"$"}search, status_in:[RELEASING,FINISHED], isAdult:false) { + id + title { + romaji + english + native + } + coverImage { + extraLarge + large + } + description + status + tags{ + name + } + genres + studios { + nodes { + name + } + } + } + } + } + """.trimIndent() + } + + private fun anilistLastestQuery(): String { + return """ + query (${"$"}page: Int, ${"$"}perPage: Int, ${"$"}sort: [AiringSort]) { + Page(page: ${"$"}page, perPage: ${"$"}perPage) { + pageInfo { + currentPage + hasNextPage + } + airingSchedules( + airingAt_greater: 0 + airingAt_lesser: ${System.currentTimeMillis() / 1000 - 10000} + sort: ${"$"}sort + ) { + media{ + id + title { + romaji + english + native + } + coverImage { + extraLarge + large + } + description + status + tags{ + name + } + genres + studios { + nodes { + name + } + } + } + } + } + } + """.trimIndent() + } + + private fun parseSearchJson(jsonLine: String?, isLatestQuery: Boolean = false): AnimesPage { + val jsonData = jsonLine ?: return AnimesPage(emptyList(), false) + + val metaData: Any = if (!isLatestQuery) { + Json.decodeFromString(jsonData) + } else { + Json.decodeFromString(jsonData) + } + + val mediaList = when (metaData) { + is AnilistMeta -> metaData.data?.page?.media.orEmpty() + is AnilistMetaLatest -> metaData.data?.page?.airingSchedules.orEmpty().map { it.media } + else -> emptyList() + } + + val hasNextPage: Boolean = when (metaData) { + is AnilistMeta -> metaData.data?.page?.pageInfo?.hasNextPage ?: false + is AnilistMetaLatest -> metaData.data?.page?.pageInfo?.hasNextPage ?: false + else -> false + } + + val animeList = mutableListOf() + mediaList.forEach { media -> + val anime = SAnime.create() + anime.url = media?.id.toString() + anime.title = media?.title?.romaji.toString() + anime.thumbnail_url = media?.coverImage?.extraLarge + anime.description = media?.description + ?.replace(Regex("

"), "\n") + ?.replace(Regex("<.*?>"), "") + ?: "No Description" + + anime.status = when ((media?.status ?: "")) { + "RELEASING" -> SAnime.ONGOING + "FINISHED" -> SAnime.COMPLETED + "HIATUS" -> SAnime.ON_HIATUS + "NOT_YET_RELEASED" -> SAnime.LICENSED + else -> SAnime.UNKNOWN + } + + // Extracting tags + val tagsList = media?.tags?.map { it.name.orEmpty() } ?: emptyList() + // Extracting genres + val genresList = media?.genres ?: emptyList() + anime.genre = (tagsList + genresList).toSet().sorted().joinToString(", ") + + // Extracting studios + val studiosList = media?.studios?.nodes?.map { it.name.orEmpty() } ?: emptyList() + anime.author = studiosList.sorted().joinToString(", ") + + anime.initialized = true + animeList.add(anime) + } + + return AnimesPage(animeList, hasNextPage) + } + + // ============================== Popular =============================== + override fun popularAnimeRequest(page: Int): Request { + val variables = """ + { + "page": $page, + "perPage": 30, + "sort": "POPULARITY_DESC" + } + """.trimIndent() + + return makeGraphQLRequest(anilistQuery(), variables) + } + + override fun popularAnimeParse(response: Response): AnimesPage { + val jsonData = response.body.string() + return parseSearchJson(jsonData) } + + // =============================== Latest =============================== + override fun latestUpdatesRequest(page: Int): Request { + val variables = """ + { + "page": $page, + "perPage": 30, + "sort": "TIME_DESC" + } + """.trimIndent() + + return makeGraphQLRequest(anilistLastestQuery(), variables) + } + + override fun latestUpdatesParse(response: Response): AnimesPage { + val jsonData = response.body.string() + return parseSearchJson(jsonData, true) + } + + // =============================== Search =============================== + override suspend fun getSearchAnime(page: Int, query: String, filters: AnimeFilterList): AnimesPage { + return if (query.startsWith(PREFIX_SEARCH)) { // URL intent handler + val id = query.removePrefix(PREFIX_SEARCH) + client.newCall(GET("$baseUrl/anime/$id")) + .awaitSuccess() + .use(::searchAnimeByIdParse) + } else { + super.getSearchAnime(page, query, filters) + } + } + + private fun searchAnimeByIdParse(response: Response): AnimesPage { + val details = animeDetailsParse(response) + return AnimesPage(listOf(details), false) + } + + override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request { + val variables = """ + { + "page": $page, + "perPage": 30, + "sort": "POPULARITY_DESC", + "search": "$query" + } + """.trimIndent() + + return makeGraphQLRequest(anilistQuery(), variables) + } + + override fun searchAnimeParse(response: Response) = popularAnimeParse(response) + // =========================== Anime Details ============================ + + override fun animeDetailsParse(response: Response): SAnime = throw UnsupportedOperationException() + + override suspend fun getAnimeDetails(anime: SAnime): SAnime = anime + + // ============================== Episodes ============================== + override fun episodeListRequest(anime: SAnime): Request { + return GET("https://anime-kitsu.strem.fun/meta/series/anilist%3A${anime.url}.json") + } + + override fun episodeListParse(response: Response): List { + val responseString = response.body.string() + val json = Json { ignoreUnknownKeys = true } + val episodeList = json.decodeFromString(responseString) + + return when (episodeList.meta?.type) { + "series" -> { + episodeList.meta.videos?.map { video -> + SEpisode.create().apply { + episode_number = video.episode?.toFloat() ?: 0.0F + url = "/stream/series/${video.videoId}.json" + date_upload = video.released?.let { + SimpleDateFormat( + "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", + Locale.getDefault(), + ).parse(it)?.time + } ?: 0 + name = "Episode ${video.episode} : ${ + video.title?.removePrefix("Episode ") + ?.replaceFirst("\\d+\\s*".toRegex(), "") + ?.trim() + }" + } + } ?: emptyList() + } + + "movie" -> { + // Handle movie response + val movieId = episodeList.meta.kitsuId?.substringAfterLast(":")?.toIntOrNull() ?: 0 + listOf( + SEpisode.create().apply { + episode_number = 1.0F + url = "/stream/movie/$movieId.json" + name = "Movie" + }, + ) + } + + else -> emptyList() + }.reversed() + } + + // ============================ Video Links ============================= + + override fun videoListRequest(episode: SEpisode): Request { + val mainURL = buildString { + append("$baseUrl/") + + val appendQueryParam: (String, Set?) -> Unit = { key, values -> + values?.takeIf { it.isNotEmpty() }?.let { + append("$key=${it.filter(String::isNotBlank).joinToString(",")}|") + } + } + + appendQueryParam("providers", preferences.getStringSet(PREF_PROVIDER_KEY, PREF_PROVIDERS_DEFAULT)) + appendQueryParam("language", preferences.getStringSet(PREF_LANG_KEY, PREF_LANG_DEFAULT)) + appendQueryParam("qualityfilter", preferences.getStringSet(PREF_QUALITY_KEY, PREF_QUALITY_DEFAULT)) + + val sortKey = preferences.getString(PREF_SORT_KEY, "quality") + appendQueryParam("sort", sortKey?.let { setOf(it) }) + + val token = preferences.getString(PREF_TOKEN_KEY, null) + val debridProvider = preferences.getString(PREF_DEBIRD_KEY, null) + + when { + token.isNullOrBlank() && debridProvider != "none" -> { + handler.post { + context.let { + Toast.makeText( + it, + "Kindly input the token in the extension settings.", + Toast.LENGTH_LONG, + ).show() + } + } + throw UnsupportedOperationException() + } + !token.isNullOrBlank() && debridProvider != "none" -> append("$debridProvider=$token|") + } + + append(episode.url) + }.removeSuffix("|") // Remove trailing "|" + return GET(mainURL) + } + + override fun videoListParse(response: Response): List
UEi=Fs62ci&2EK~gdFM6v((dogxMHyqq> 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 sFjffn@vo8=7|Fu5+zK)jI6|0Mbj?l>h($ diff --git a/src/all/torrentioanime/src/eu/kanade/tachiyomi/animeextension/all/torrentioanime/Torrentio.kt b/src/all/torrentioanime/src/eu/kanade/tachiyomi/animeextension/all/torrentioanime/Torrentio.kt index 5240e3cd5b..7e1e0d1cdf 100644 --- a/src/all/torrentioanime/src/eu/kanade/tachiyomi/animeextension/all/torrentioanime/Torrentio.kt +++ b/src/all/torrentioanime/src/eu/kanade/tachiyomi/animeextension/all/torrentioanime/Torrentio.kt @@ -36,7 +36,7 @@ import java.util.Locale class Torrentio : ConfigurableAnimeSource, AnimeHttpSource() { - override val name = "Torrentio Anime (Torrent / Debird)" + override val name = "Torrentio Anime (Torrent / Debrid)" override val baseUrl = "https://torrentio.strem.fun" @@ -326,7 +326,10 @@ class Torrentio : ConfigurableAnimeSource, AnimeHttpSource() { } ?: "" anime.thumbnail_url = metaData?.coverImage?.extraLarge - anime.description = metaData?.description?.replace(Regex("

|<.*?>"), "\n") ?: "No Description" + anime.description = metaData?.description + ?.replace(Regex("

"), "\n") + ?.replace(Regex("<.*?>"), "") + ?: "No Description" anime.status = when (metaData?.status) { "RELEASING" -> SAnime.ONGOING @@ -414,7 +417,7 @@ class Torrentio : ConfigurableAnimeSource, AnimeHttpSource() { appendQueryParam("sort", sortKey?.let { setOf(it) }) val token = preferences.getString(PREF_TOKEN_KEY, null) - val debridProvider = preferences.getString(PREF_DEBIRD_KEY, null) + val debridProvider = preferences.getString(PREF_DEBRID_KEY, null) when { token.isNullOrBlank() && debridProvider != "none" -> { @@ -439,7 +442,7 @@ class Torrentio : ConfigurableAnimeSource, AnimeHttpSource() { override fun videoListParse(response: Response): List