From 7f24d9dbdf4fd204a87cf2c800e3e1b80bc1c9f3 Mon Sep 17 00:00:00 2001 From: WebDitto <webditto@proton.me> Date: Tue, 16 Jul 2024 02:06:10 -0300 Subject: [PATCH 1/5] feat(src/pt): New Source: AnimesOnlineCC (#47) --- src/pt/animesonlinecc/build.gradle | 14 ++ .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3704 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2058 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 5366 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 9386 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 13349 bytes .../pt/animesgratis/AnimesOnlineCC.kt | 137 ++++++++++++++++++ 7 files changed, 151 insertions(+) create mode 100644 src/pt/animesonlinecc/build.gradle create mode 100644 src/pt/animesonlinecc/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/pt/animesonlinecc/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/pt/animesonlinecc/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/pt/animesonlinecc/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/pt/animesonlinecc/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/pt/animesonlinecc/src/eu/kanade/tachiyomi/animeextension/pt/animesgratis/AnimesOnlineCC.kt diff --git a/src/pt/animesonlinecc/build.gradle b/src/pt/animesonlinecc/build.gradle new file mode 100644 index 00000000..3320ba0c --- /dev/null +++ b/src/pt/animesonlinecc/build.gradle @@ -0,0 +1,14 @@ +ext { + extName = 'AnimesOnlineCC' + extClass = '.AnimesOnlineCC' + themePkg = 'dooplay' + baseUrl = 'https://animesonlinecc.to' + overrideVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" + +dependencies { + implementation(project(":lib:blogger-extractor")) +} diff --git a/src/pt/animesonlinecc/res/mipmap-hdpi/ic_launcher.png b/src/pt/animesonlinecc/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..619e8cfb534e40a503aba334964b0130586622c8 GIT binary patch literal 3704 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 WPmAs^*Y2_a0000<MNUMnLSTZgst)h~ literal 0 HcmV?d00001 diff --git a/src/pt/animesonlinecc/res/mipmap-mdpi/ic_launcher.png b/src/pt/animesonlinecc/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..27710f91eb3e809adeae9a8ec042c113e9dabdb1 GIT binary patch literal 2058 zcmV+l2=(`gP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00001b5ch_0Itp) z=>Px+#7RU!RA@u(T3KjRNfbSuj%n>q)GRJ>nZYQDyMl@fD&htXf{F{H=vPqUibP!F zu5mXm5FL^J5F#_~A~-*yC@%P+h<l6+3Tj-ks7be`O*+FVQ$3ZJdflCuo)N(ZA?erk z>fLkCz31MliVZ*bW&6SH$4>y?o55fV@VhAByR%dczz=}G>s(p@xw*Nq>FMb?4u|7+ z0C9Y(y1E)R+rPu*XS4fOm@&>(^WHL_&-a(x?arJ#cW$|HULAmFkH_<e)9Fk%GqS$M z=?qin2==}F&g=EMT`pG!fJ*gQBLIGORaI3L+HAI1)#ExA>I+1U4+Tg!uix)4x7+Q> z06c0q=>Ww0{r+O3@!=TT5XQ_vsdGj}MI{0#4Fw>fy1Ke39D~&{RaI3eDk{R$r%&<v z^=lLt7vsy9FJegJ#*LAXkbpLA+Mr{{j%eAkC8DCJ4|T6#PO#Z*NdQVh0`U9&MLGs_ zUh?^Tc=F^4E?l^PTeoiE*|TSO^X3gceE1*$@EM20f#%JdqgAU`=+L19`t<385hF$* zH8mB{(b2WUA(-RB2B2fWXuRL=$Gdm$aQgIVoIQIM4<0-~Nl6LFgv=M+Z#sr-bnV&| zW5<rg#EBCHFf&GKC2T_(kOoy&Rw6$?AN%(0!^Mjig~thqAcGmNeor8+TersW;lnX+ z-aK^c)-Aw>F^uHr1~DK#@%8Ih5h`1^ZpHQM*HK>nO`46yhYQ5za$(@Wfym0rLf^i9 z(Wp@)(<llXfH4Q82k7N{_wHfs+O@cL?HWFR{#?s=)o7>F3A^1cm?2{v%XxG_nInS- z4@P!&HhT2vA)eD+VFNHzp~AvKtY5z#XU?1ncwXn}*w|Q1nlwqoHgn?f<HzC|0x=6S z0-i8o0yb{kDAY<P7!3kIwQ;-M*t2I32t+MPDhS5*uwlbQh*5FK07GrotXV={bu36w z$;ruBv}h4BGBOYo6H|u-O8}%N9zJ}CB}<mz%9Sg^D6_aHfYqy4W9H16Xx6Nm829Sc zE38|$4taTbK>_gDp+kpa*REaY-o1Nd0B{zD!T$aG#l$RD(qk$J`8U13d-ra^0>?3) zSr3jJIfBKD7o)7KET~c?B_#<*Em*LiPA*tx;O*PDSg~RSPMtax(0QHlyf<UU3^A5* z{PN{Xq4~^-+qZ8cGc!{pf2cY!dGciJ*s%i)sfg48zLYX|^XAPuv9B6KLz#rrr%xB- zjvqgc_U+qa(4ay1^y!mekcOEhvYd-@x_$e03>h-S8UR&=__7lxPGHrlRU(#yg%9I* z^XARy)vK3C^f`0ppi`$#LU!2?QHhwOOy*!Lv~AlKTefV$)TvXg0Wj8q0|yRZ&6+jv zc-YB)yNp2C3eezX%a);O)229o{ygT-pD%hKCNF^$6ck|P%9R30u&T}CwrSHQQK2n` zkdXmOC%wpIRt;ByFnL)c#*ZHlR%?3j@ZrOtzLULi<Hm_(-nnz92oK7#j!l{PENV=8 zO8|@vP*uo)Y}AYl@bjoqqp)q;Hql|S>as^-@{<{QzkmP!;_pkBE@A1?rJ@}%V}Z)m zAOJ=N)DY4!(4<Kd%$_}4c$#ei$B+eCLufeLW?ob#0$^Sl8I^OBHRe)8LWnOtdi1D> zT_&+E2YUAGDME(YPwz8HjeSyFT%1rOf?-Xefo2uGUAuOol3Pw<BLkGt<;#}~88tFM zy4lz7-MbepTC~93yLUmxxUf;jva&L!IfiQodiV0>%UU(+*RP+D+la_0-@txf(r#=c z*weFevVY-s?3c)fWJ`kR(xr>IKW5Arp=MO8Lx&CplueFfJ27R-6y)UOSTAH`K<x$@ ztGT(k!Yl9JzpteXy?gh@!Gi}y??RvibMoZLKn}>kjB7S@8#ZhZdBQOS!8Noh3T!3l ztc42~My8dJ2Hd}YU$g?GT~&|7#6%1jFaS(s_Bm7+s*g@0nFCx8Gojg2F(f~J{1_N3 zn>mIf*9FF_-o22@0#${vO=@K&H7jcBi_NrN_bhuK<_Qa8#M)_<UWN$Ohzohfu~|{m zRq9Y+8Dd=EvjVe~&|URnKusz+8I$zRojanj<GMiZ`!o~?bAo*olbn5&*$zd$02n<W z!-=7E<Hik9DX(6=YT6%#%K|;m^)MGfl+TDP>WwO7jA^cInbb@+Hf?fSB~+NGpyam7 z$dMz3;!wqc8P8`eF(5s!CNw9bv~pwX*s)`xyCfiPC(1fu#sCeca&aGsjUP4tKiSx- zL99(C^(MPYw#nztofDx&U1y6>T3Q;|TI5<FK0aO)rj(QvvHvrA^k}4|rD@g1?4_0% zke&>+S1K9dJ}Ij(+3<S3!WPyDdYwHEJJWDIZn+MaZSIDo!(@Ol{H)FsHUkwE6)$39 zVq9kNZ%jrrgCb=(=lA)19*4v6OE~8PagQE7`Xe<pwf2Iv#>z+<RUak_3JU&AOH1Ps z6Zd5T2Y$LUGDqjmoqx^C%gatlN%_rgw>!-e`u_k^Sy}0Q{`~ph)22<!%FoY#0iZ$! zt^>e(G&;WKgwlMwxIQklHkO{|p&q@?qa~_Bt>ad+b7J1-7BP+2p9NVn$jVdP$0P{; o)Hy5u`L706TpGz|es~7{0hHs>d`f;smH+?%07*qoM6N<$f(td{;s5{u literal 0 HcmV?d00001 diff --git a/src/pt/animesonlinecc/res/mipmap-xhdpi/ic_launcher.png b/src/pt/animesonlinecc/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..1ce84eda79a90ecb1c49275347214591cab7a666 GIT binary patch literal 5366 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 UU_fJjHUIzs07*qoM6N<$f&l*oOaK4? literal 0 HcmV?d00001 diff --git a/src/pt/animesonlinecc/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/animesonlinecc/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..9554722c5333feb3be863bfcc1f19cee5563c987 GIT binary patch literal 9386 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 EKWsci>Hq)$ literal 0 HcmV?d00001 diff --git a/src/pt/animesonlinecc/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/animesonlinecc/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..23a1c86f6a8b755ccbb5e1a802e6412f2c785447 GIT binary patch literal 13349 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 T6xH_l-w*IcRz;>5ZsPZU!k$Dz literal 0 HcmV?d00001 diff --git a/src/pt/animesonlinecc/src/eu/kanade/tachiyomi/animeextension/pt/animesgratis/AnimesOnlineCC.kt b/src/pt/animesonlinecc/src/eu/kanade/tachiyomi/animeextension/pt/animesgratis/AnimesOnlineCC.kt new file mode 100644 index 00000000..fb30c871 --- /dev/null +++ b/src/pt/animesonlinecc/src/eu/kanade/tachiyomi/animeextension/pt/animesgratis/AnimesOnlineCC.kt @@ -0,0 +1,137 @@ +package eu.kanade.tachiyomi.animeextension.pt.animesonlinecc + +import androidx.preference.ListPreference +import androidx.preference.PreferenceScreen +import eu.kanade.tachiyomi.animesource.model.SAnime +import eu.kanade.tachiyomi.animesource.model.Video +import eu.kanade.tachiyomi.lib.bloggerextractor.BloggerExtractor +import eu.kanade.tachiyomi.multisrc.dooplay.DooPlay +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.util.asJsoup +import eu.kanade.tachiyomi.util.parallelCatchingFlatMapBlocking +import okhttp3.Response +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element + +class AnimesOnlineCC : DooPlay( + "pt-BR", + "Animes Online CC", + "https://animesonlinecc.to", +) { + + // ============================== Popular =============================== + override fun popularAnimeSelector() = "article.w_item_b > a" + + override fun popularAnimeRequest(page: Int) = GET(baseUrl, headers) + + // =============================== Latest =============================== + override fun latestUpdatesNextPageSelector() = + "div.pagination > a.arrow_pag > i.icon-caret-right" + + // =============================== Search =============================== + override fun searchAnimeSelector() = "div#animation-2 > article > div.poster > a" + override fun searchAnimeFromElement(element: Element) = popularAnimeFromElement(element) + + // =========================== Anime Details ============================ + override val additionalInfoSelector = "div.wp-content" + + override fun animeDetailsParse(document: Document): SAnime { + val doc = getRealAnimeDoc(document) + val sheader = doc.selectFirst("div.sheader")!! + return SAnime.create().apply { + setUrlWithoutDomain(doc.location()) + sheader.selectFirst("div.poster > img")!!.let { + thumbnail_url = it.getImageUrl() + title = it.attr("alt").ifEmpty { + sheader.selectFirst("div.data > h1")!!.text() + } + } + + genre = sheader.select("div.data div.sgeneros > a") + .eachText() + .joinToString() + + description = doc.getDescription() + } + } + + // ============================ Video Links ============================= + override fun videoListParse(response: Response): List<Video> { + val document = response.asJsoup() + val players = document.select("#playex iframe") + return players.parallelCatchingFlatMapBlocking(::getPlayerVideos) + } + + override val prefQualityValues = arrayOf("360p", "720p") + override val prefQualityEntries = prefQualityValues + + private val bloggerExtractor by lazy { BloggerExtractor(client) } + + private fun getPlayerVideos(player: Element): List<Video> { + val url = player.attr("src") + + val id = player.parent()!!.attr("id") + var language = + player.ownerDocument()!! + .selectFirst("a.options[href=\"#$id\"]") + ?.text() + ?.trim().takeIf { + it?.lowercase() == "legendado" || it?.lowercase() == "dublado" + } ?: "" + + return when { + "blogger.com" in url -> bloggerExtractor.videosFromUrl(url, headers, language) + else -> emptyList() + } + } + + // ============================== Filters =============================== + override fun genresListRequest() = GET("$baseUrl/generos/", headers) + override fun genresListSelector() = "a.genre-link" + + // ============================== Settings ============================== + override fun setupPreferenceScreen(screen: PreferenceScreen) { + val videoLanguagePref = ListPreference(screen.context).apply { + key = PREF_LANGUAGE_KEY + title = PREF_LANGUAGE_TITLE + entries = PREF_LANGUAGE_ENTRIES + entryValues = PREF_LANGUAGE_VALUES + setDefaultValue(PREF_LANGUAGE_DEFAULT) + summary = "%s" + setOnPreferenceChangeListener { _, newValue -> + val selected = newValue as String + val index = findIndexOfValue(selected) + val entry = entryValues[index] as String + preferences.edit().putString(key, entry).commit() + } + } + + screen.addPreference(videoLanguagePref) + super.setupPreferenceScreen(screen) + } + + // ============================= Utilities ============================== + override val animeMenuSelector = "div.pag_episodes div.item a[href] i.icon-bars" + + override fun List<Video>.sort(): List<Video> { + val quality = preferences.getString(videoSortPrefKey, videoSortPrefDefault)!! + val language = preferences.getString(PREF_LANGUAGE_KEY, PREF_LANGUAGE_DEFAULT)!! + return sortedWith( + compareBy( + { it.quality.lowercase().contains(language.lowercase()) }, + { it.quality.lowercase().contains(quality.lowercase()) }, + { REGEX_QUALITY.find(it.quality)?.groupValues?.get(1)?.toIntOrNull() ?: 0 }, + ), + ).reversed() + } + + companion object { + private val REGEX_QUALITY by lazy { Regex("""(\d+)p""") } + + private const val PREF_LANGUAGE_KEY = "preferred_language" + private const val PREF_LANGUAGE_DEFAULT = "Legendado" + private const val PREF_LANGUAGE_TITLE = "Língua preferida" + private val PREF_LANGUAGE_VALUES = arrayOf("Legendado", "Dublado") + private val PREF_LANGUAGE_ENTRIES = PREF_LANGUAGE_VALUES + } +} From 7558a7822c275bcfe147f5019410a523db559794 Mon Sep 17 00:00:00 2001 From: WebDitto <webditto@proton.me> Date: Tue, 16 Jul 2024 02:06:27 -0300 Subject: [PATCH 2/5] feat(src/pt): New Source: AnimesOnlineCloud (#52) --- src/pt/animesonlinecloud/build.gradle | 14 ++ .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 4996 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2657 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 7354 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 13226 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 18806 bytes .../pt/animesgratis/AnimesOnlineCloud.kt | 164 ++++++++++++++++++ 7 files changed, 178 insertions(+) create mode 100644 src/pt/animesonlinecloud/build.gradle create mode 100644 src/pt/animesonlinecloud/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/pt/animesonlinecloud/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/pt/animesonlinecloud/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/pt/animesonlinecloud/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/pt/animesonlinecloud/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/pt/animesonlinecloud/src/eu/kanade/tachiyomi/animeextension/pt/animesgratis/AnimesOnlineCloud.kt diff --git a/src/pt/animesonlinecloud/build.gradle b/src/pt/animesonlinecloud/build.gradle new file mode 100644 index 00000000..37537b83 --- /dev/null +++ b/src/pt/animesonlinecloud/build.gradle @@ -0,0 +1,14 @@ +ext { + extName = 'AnimesOnlineCloud' + extClass = '.AnimesOnlineCloud' + themePkg = 'dooplay' + baseUrl = 'https://animesonline.cloud/' + overrideVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" + +dependencies { + implementation(project(":lib:blogger-extractor")) +} diff --git a/src/pt/animesonlinecloud/res/mipmap-hdpi/ic_launcher.png b/src/pt/animesonlinecloud/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..2294724b366eb9a6eac3ab507754a5203a16fa74 GIT binary patch literal 4996 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 O0000<MNUMnLSTY3uW1+n literal 0 HcmV?d00001 diff --git a/src/pt/animesonlinecloud/res/mipmap-mdpi/ic_launcher.png b/src/pt/animesonlinecloud/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..841a4ec7d1ee2869fbd1433fbdddf4d315683a49 GIT binary patch literal 2657 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 P00000NkvXXu0mjf>v{0W literal 0 HcmV?d00001 diff --git a/src/pt/animesonlinecloud/res/mipmap-xhdpi/ic_launcher.png b/src/pt/animesonlinecloud/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..de0575880ee612c7d1388f4cf9666c3020453e37 GIT binary patch literal 7354 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 literal 0 HcmV?d00001 diff --git a/src/pt/animesonlinecloud/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/animesonlinecloud/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..cf82a8ecab4ef5092c060c7b05419b942c2b4533 GIT binary patch literal 13226 zcmZ`=Ran){*Zmz1-5`jB<e|H}>i~juNlJG~hX-jS4js~6(%mTy(%lHs9U{V?_q+ct zX6A05d1m&kz4zK{N2sdEW1*9v0|0=f0F_aHS>gW;ROFX=Uv9hkWdXUV%S!>36J!Sf zKnW<wNNRc+on-1c6YekVXD3VGqk?{zc+`<b=|wxVZwYv`2j64dE>4KG3~P=@b0<Bp z713$6s1)r{YuwQCYw!-s?tM!a;Pk*}cZoV#^y<NogMpk_ey~{Lg}-Hmiar{xKVOs= z{mqyW>Wx1?C~Jbeb-z0Z_`5NA^?9DZ_E0-B5Z#ipY;*B2caFH4306i~VvSq|lvzKN zq3D1#2P9;<RgqL>XLLlH(Q}xPnbHH9U`*+qhdo+=7N_bIrY1;p>RJn@5}_nAFw!yy zJtwlL%ICZg;b)<c(@lgHAK1kr%-HXfv6yux^Pjq^surKl^>JVm4Kzz{a>xwK-TQ9) zVLnwNlzQT{R>k70-Y=a<5(H@D!I_ZYz^m~rQQx7n&(D83ul6U6*Jo$1hkoWtJ4NJK z>yr&Oj6n%*9?Jweo!9<dcwY*)U{@ATPmYSp*Ziy9EBIn}ba;BYzBV;gb9#L+^S;8k z>*-{W-1qqR?a9g{lF1=&I1@;f!6x*0t?iC<XE65p08S;{X=!;=Xp~=}FeX&F8aA`A z@!`<V_{a0rgjSs3@$bV!pTfezUmJ8P8TavN?%t)4;l#flJ{XjNC|bPc&rkni-=%VF zEvOMhkNYFdfjh5>!*`m0bq9i<g>0q^=*KV>5aID;r4>hqtS~@jJdsf&w9>HcHtS%f z_?Zncc0IK{ueC~3!8nt?)Uxihd~x4<?h{hki0HX%RZCl2o5kJfnt01jjPU%+nVYyn zC=9s(!E;LQfWIpnG0(&A11`HrNk}^J0zNRteK>r!F!UBb{Zv}{te(k#6k=;<=X>GV z^>^*F&vDHlHXTH5sqUK&LIe*EXI*PFDSxFwz4g>{L|#edu~WsVfQcn#%udYS-W~<} zhsI+)?xS<ck-`xlFl7Z3FzdY89r(-}@OXa~jLLrd`j?hXVYplA^O3@h+|8~QZA!Nf z6To^RmXMv)ItZ~XJj8x0bX|=0itf>h+wLfuU<89wlL(O7#<a7u`(SKrEdKq?KEu9y zTVh^Y##xu<U(C?IwoXnPYd?QF2c>1+s6&(W^k$|>0V;ov8PXkr^&^nhe2SJQ37q>U zq3jd^x3HPzi6xzs;rzfJ2>#9!;K2mkJw3scO@$GUJmoow`ix;wDdny48%cCOuFA?3 z@7VVwuqF)^X$woMS$OpoJA8o5TU(a;A;m8Y?6CgNz|U}j7;)x5SRJdm>;s>Tx^FJy z*@sP&CZq-L$YrPIEImfbYksn8US|1#b8?LkKsjr)UAe7&uxyZ&3J3<5aAiquzf}Zg z2?j5UZ8qSvMWb5p3uPSVJ&OkBnqSL#dN#ScyAvXR4tt&vdx&y75R>8^-{<A!MM@e! zi&|dRztiYCax&ClOiC;=@-2@a$+R;3Kp;CK3fq)4Mu&y^5+<YP#8;mTV0YmC0+4e) zefqRms!@ErJDlM0aBagsks)YiHJR1W*vMz+<kU1Vq0+R`;<mraiIB=hD8aEM9g11g z+A2gU^r?iGhey}nzXOYuZ;XVL)ZzYoi|=E9c<<&jf)=}@;0@eWQ+@sHK@ng$E2tJX zF#%Gg!?0VXrl&v3$B?<~++XZqYtpM^IGZ47BD@+5i6;O+Bp~E!9$wz1p*Whg=F1Ug zhvUT>M+5gcExv$9FBB$V@XgSNE>KBZ+us@0S)w}C$kGP&WQ9^QX+k6b5m|v4=6Zi_ zib4r<yZ)_a=iuPp4U&M;OVHUMdcloyg}@SkBp}sF=>SZXsO8&_rE)qNxC{_ti@?Gs zK_p<t0l4P2L3*1at8jOkJQwZVi6@}-;Bg}-dLS&A9LBmyX^KrIu!(E}5*Unm%M2xf zQNwa;0W5Li63)^NI8DS|_y%PJA{{`eNZb8I2EhPORJZ93M*9Ki!oqt5nOg1?_eD27 zQp8b4(pks>910UkHILI(8w&sHIRDFG`r9R|>=qClkVnN;Xn-F<w|_@ZJWRm+gc$L$ zC6K${lr)rAbuLHSRkr-7?6}qcCg^4fG69?@?f=mQM(UXk^t)Yx2;HPC^|WE2ZVpui zXjTvk&T^;!U;D`{(bMAD*S3nUb*F35Y4te2a*Zk~3d_BI6K}oR?4ok`E{$uTNG0<y z;F3QZ%yBC@2ND2rD$ypD7hUT6fw3iiwQF_Yt;OTQKmjypb-s6}y=O3m?vE76_)I)A ze-Rk;BoYs>-c--`2g)?6*+C0lFlnXUW(HlHYSk6TyhHWZn4QxtaUw9{mY>@t*N&8v zQzmx52`;W|blPyt4tOZlu;3bS&mg~*4S1XVCzd<vxs;2ty^$xU*$?GWN%FOJIz*|A zUjPRt75#$hE2Ry8uJ(oJLV3Orfm+!~q5qI`Tq~;U!_<zkloH+n2uVnPWR*`gx;9D~ zfjYYdwv{$dr=E8y^=K4+B&dM016f-;fx!`G0KK-xyYT@v^EF&gidMRaqG*Ibf<ZI& zB<GED@^Ic{l0!@mPPk$MowBP8sT~&O@FTlrq2hKD_oSYB*9It2K7Dsh2SThBd=Ncr z<LKxi4tiB2Xel&L04NCob*P*`S*#fmp(6*kNd6<D%)socrTu-%Q!zjP-Zp32q{vcv zJ-6E4O)&uNCuK-7i{3T_zY@?Sp&a>J`-}HL6kr!;ezzw$jiLgklDo8DsvVfGGIpZ) z{OHmnG8l}*%D~SUsOf@F7h{P33YY>!`b5J4+|NV?0iDMTXyKIt9-RTmTSq$q0FxLE zK3ek|NAYKGU49x>0JnMS_f)>adb_tr9~S>&p6plq%iUolar|I|0+F*(oztfmgHn7k zsP)i-A>~dRKt4udme2qtD=01I@Zs@l5+fJ&R@qUFY~?pYZIM7D^VsSeGfU-u6NF8G zB+90gQ>Q-}c)zvfyB_rL5gsUe{#%nwm;-M@j{5CQK5q;LAni))jn9N`6FibG;F33< z%Gp=S-Q5o}A4Q8uN?sjl80kGzPOt`(Nc`$VQjnn1QdNfk`u?G5xz+v1ex^uS#euP? z5U>fPLHtz>jYo?TXdJeb`!TD@-8M2-iTKXtSTngGUeU(zlc4m&Z#P;j8q=X}A<{u? z9{I6jcv{?!RNicsK;z{2F)T$c#8nkXrj!Q~MFuaaKdS0lckH;){!ncaNV8BP1oJ4Z zr~{$oti$A{6`x4j2dPH@>zyCbD(JZrl(UgqAaYv9ix@s1M(&X@I`8v$*Cy$^g}Bq! z=45w?LdNYyODWmFYjvnCx|YXSkabrYcp?CY@@en$u^X2_=uX4%pK!$>6c9BKtSN=x z^R-~&f#g3+Ue`4p_-F+s2!S{wN+pA^Z84NE4)RUt|Jq7N0vU3^D_K6#m}pE!2=1oj zc21+JF&4;0+aF(CnlU*sbX#+HvSw&g2Kt(7n%HW4QAIW`Gu#Y?1Tt;Py@EH`NE2z# z|9p3dodw}7fQoCA6p&yzydXX{bTpaO?KATO4m|#_Jn@Rd?z5-UzoZE&Ac@%}QV>Tr zUF`$r{lv=!og$m4W0sp(cz0ppP@H!=0VBMYjg&DCS!vN%W(Dl#ZnjJUY>1(4jfteg z5334e5^JS=x@o$p4*(KwL;BKR%f_j(#ve6cf<x?eh*)9O4;08gP1X@1v-aXb=PmC( z_ZNGbT!L^`&vm7fg_qr_rwZ8wqA@RXI0i15c2@qJ_u)A7g<`27;Ek%=hC-0U$P@?< zOSkx;Zwn?d1CYxwD>W8t@0E#H_w)WT^(1Y|!|h>G+q3kRjodK~DQR&d3cT5?fUcbp zi2y8T`kcsgnI=%xuFi7YHOmg_`Q~;=cw_h<3K>jFA>kJyhLaSY^F5aB(Mi*WM}L|s zk_hU-t0Em|mYg>@lbmj_mie*0A2ok5Z4gnU8aQpQo$<LBq>rscLfYdQS1C#hY(+Im zOe6~(IP1pAReg6B<LqaR8A1TmPRbC`*K7vXO{=b7!LJI0Y?gIC#$gEnzx-+7BA9-n zB^95auCik|b_8THCDU(AD91{u0j`;`y;MPW_qXCZi>f*>Ik~D{0$MjuJKM20^|@#t zrV!POHcgHXYfH+R*Yro7K?34QDRM9?@F6DdK#fBRJ7Zi_6oHh5WDeD==Z1fih83b& z(uaZ;HaQ$c(O5|wN|^K$_TkZ*=SD-*y3Z({)uRNUG>vk;c^-r*9Yd79M9ux}7b}}s zUvXc+M7BoE;dbD{d^#^rYMfDES4bBz+PMJW?xFu_FNzd7eB>W_6}6gO>ix^Rqc~m% zkdY>nXp^WbT7}?%2n6sBj~Z7T>wb-<2=j(+pi<rp%sT;x-w8cT*}Bfh5nc;SHae^v z|GV4p1k2}Mde*b6BjrW8hg`QzjV1ejRl=5p(HN^x6+$>ib2TQ@`U})~c+;ZEZ20U` z2h1_zLl0@=dI<~#SXP!RiW=tf=C$i$VlXJLYB*4R7!Ia2Asf+!9(<7*+14Ftq%fOU z{%2tXv4VHdZF8?uB6g$W0=x`VX4Z_s`dOljvaB=p$vvb0er3G%TD_mxH-0CNc$D6X z5}`w-qE;cHZePklU47@QLd(YftE{g`lC4@u3*AAhuVuA`{hH@u-k3_u$JDpF?AZTa ztkGUsv_|$)2WHpiEHdfe>#wYLczA4x9f`U0<~8ztU0!)h-zN)0WT|)fE7eti9@*z| z4Eaen`Bl|MSk+B4?jG6&NRWi*-KXC2Z}`>GEJ8~azt>8lP|_ilqi17-lWq>ntAudz z$OisKJ>dT|U?;9>Rn==sUHZuVZSQT!dDblJfMTzooFQ4o_l6gj>u`U4Fz<CU$LDit z-uCg*yj&hX0tboSy_9rq&7-Vg?$-Z2@Z|Yi+HR$3(iVrJkxD*xd9jj>p4dfwq(*PH zJX&L_oDG6Q_w<eYU9g0v84Hj*l2{!}(soqYmeHio*kF?z<2ttjLsm@=M-ou9MiF_w z9~38pS2q{5@_?9r$osE3THX!TOkn|R!H4*!6SZZDO?@AtY0hZYuUm!e4B8hfbsNWi zuo_su+9c$*)HTyckOhXEwgmtD9?F$&{MB)1zv6qgbP+37o1Q7`@Y^bTDavi1jEKhk z3xTUaMe5DI=rmONQ5Jsqxxc1kYur~%T3^w>j0tfRbF;#rWjZi?)h?V*<;QvYsG8yO zX9+OF5o@<OeJl0?)kK5GiGFeK(7t2?p<_&SkSFT)QQ(!|TPsuQn7JKa{P-}GsqIY9 zdsDG~b`4`EoeiJz@s=x<Z=LpOhO&r$+cKnL2xscI9`%I-jUCUO{>|QXCoAns`c3vV z2^4-N3BtmeK85|SxMF=xWqNIhMNIF?m9Q>~#1^jQ$X42nq9tovEJ4r!3hMik>Z;HG zj<BIJrx)sG%Xc26i2yZAVCe)53?k>k=<{KrL)7c;>((56C-2UA{%@$@%rvjKgcTuk z<+0oTN1SJMZjWR05!;6v*Fsi<&Q-ZsVzYd?*v3};h*SC)iY7y0kLC+gw>k&Crin(U zMU#ACp$v4ejFO0W8xvHw?e`WkadbP|-?0qy)z^db_LgT`pD?}P5Gp^Es_W@OrMD=p zr>#e;-AqR(FMk+an)sIhW{c#BydpBTG;%-j88<#-qL?m!gPOV9_M#)No2^~rXXu-1 zB#PKc<YQA15-ZeYzQb|vM@%}2u&Ra`eJD<o?`hWtx!<{@JX8&<1f(hJm8qZw@Jrje ze&40-c)T2KJdNhBsQf-IH&~+_ZPqqArl7zgo8tCqE7*885b6E$xIDoUC&jkJWxJ&% zyO)?umRhP(|BY#!WC;jgJ-lZ_@1nXuNCn~h29UUbzJp9SN}Z1zw#8i4t`1dD);IEk zZ}H#zTKA%cZ@vj;+Y}$j2yUP2&mb7;*OU{@u(z#EXRfL@eMPr;!mKSo9%zF}tYs0b z_)ROBEPb#<w=k{!ZrwMgt>a;Y+2eFqfpmJw#!N_<T{mo9U8ayK34KX~5g#80$CoO| zVtCT$_MP~4cOv#ztrDeDVc=^?rIX(dsUv)9$o&v$h$b4D5T<#fV7bLTDPlG$dY8dG z95=&Z<2^S}vu18tJ{E;MiwI2ul6MKV3h<;PXuDZeF@kY8(!!K8tTn<J$Fm$p9h-X` z+b`r&HrdV@N-)B&C3-E<%NpqYUjw3lkLzxyzp^ja<ja5G86zg0p5NPcfgyj5v+G(4 zGvd06f+v$Rl&t7Xly`TfFRh5_MSG>I?={mwXz^c_AFpgYHIm+kYszKvubFj&7+7EL zLCripsXU1%z_6@<2b+|gSK8{;RX#(MHeLWuR`#N>KWe@%rqa`^4EMA9Fp1wV6S`Ha z-mx^5ZH|5luLKYp=|Zlp*19FH`p@S-jPSV4+m}%D#X%^#ordiUW(N0vltEwHK?xQb zm(Gf6*ou%t5Pds%o6JS(zn!jGe))xRqGU6S+-K;5O7_D2`?5He>K57j>?~$XhV_^m z^-&2EP;WU-;(IYbWa!{ivfk{{48}pI3>r*BdC9pn=f6cUsdipo2zWSMjv8HVKAVnZ z2rq<y;UZqHXn1g>5(W9%oV;ebb?fy{ejH3z$&s+~+|U|IVqwbpHjkw(Fbdl)o%ftC zg(FHfh|$TLb2|19_PO!xYhqKJM{U1K<+Lb+l^2(GhFqYJMSl4ZjGTcuGTqg_1PP7X z=v(=_Y**E?$#}@DV8FS?xw3`3@NLQADSEGm01Q_;>_v<*%lBjj&lLvWAz=_Lzx7<* z+Ez4wFh$<^MF=}r#!Hb-@BZpF`pas|DQOv?<U&#%2sWyQw9xl*)ndEw`pv{fxEv#N z3!p`U!tM5b;>5;X>?wTf$md?in+C{l;~I2aO$fh*Y5qaqyt4m?Oj%J)AeZfZB7j!Y z{N^2>HYV7FmS3H#x^qu9ZU=v1um;0e;47UOO@xxdN$SA!`Hu8^Ht+j;Rf4%6*GM7) zJM|zk78!|&CtU4YH8d`qXe{@r1+vn<f18N1_;`~uKW;Ys*ULVhQ=9D3Xc>;NjJrbU znIi4m_U%iIddV=SCF0qM4SpAWb9BWgOcL=tHLyyfN|UN4)G$5%FC?@J>2dcmyO}@q zY@Z&+nhUuJnGD11`?Jn+8b_Aw#jIwkXd8BBg3T@V{X46sILB7FUj;kYqh^1x!Veh~ z#1cpW{$B}g1#To~*Tq~{HFp@QLNNbZ_jmXid{V5zhN>NI{__CZQ^>nOg0E3&lqu<{ zZ&VHTQP^dE&+QAt!*|gna|o@GpfJ%%K5IZGPvoM~bKQGT6rw=WtmfLs8j9qWkRo!g z$+5-#Vf(MG+9N}4r}GcfPKxUrop%+zKx${%CtNQtiGoB*LNz6OD8)1#)G>^Gia;_R z7>*d}i|o%Bq?EvKS<M#kAU_y*2?4BAeYR~UxoU~iB51^hF>jE<e5b59=s<`)gI|J2 zL6Ap1Oo?nOQfFYKwwH3!sr@2!M-&L>Pr*Zg4yvmKZlIh75s`@XgL{OOvWznjG*bA9 zrryVlCo{N;zmIyebq@;K78St#D1LAkxS(1M)s>Y1B+eln2fFqMxC>a}@Cqo!JD=Iq zGV>|{&j|}`_;n~%H%1_YRxUZ|bM$j$J0+?(Bl#rv_M&%T0x6UBiCMGQDTYe$GHb~Y zr6Akrl)xsC7!q(lpv2y>OBN1<J0l14UW*;Ef;sN}PtOlXgSj_xL`RPBoj8Hsv!GeY zxO3#s!RD=(iYd~4@aDmbA|BK~9?tmG-sj3&o4c)W0mw^mtF9O)g#bUC=0I3{4k0pf z?$$u5H+66b@!>H-K1HFY(W))|mXfDy01Hn6(QFcDH>8Rnf5mNx^ckRad4W=aVrnM- z{~j>7WYFnLGksuG#E%LbrB8^I&|)cs_8w>IaQB*Nvwm@GX)kcmIotEz{QHdGGQx*n zBj3;BO+#NNm6?DLCVIO5oj9rF0Sx5Gf3Ga1I|ap-M8Vi$yK0K)>V$UOLhd7YR+shO zc;`hMzm+QLfM5!YgfB9F1=!dFUFTc{u$ZInPgZafx!|V{8xPu&<H;C#0btc>bmm{6 z5NGN=7fO5?t)Nj{iB=nt5AOtCV_sA-Giu!eBO^|92~HXWOZsQQG?SrIJnm&*jifWS zFl~A1v#|k*4g_l`2Oyuf`Knh++QH@6|88wxlXz9yLATjRlh{%O351ChAskEYzG+$! zZq~L?UJD;2{22c9BTl)pF)QcH8{>Ldpi$h{hzQ}!4gjx^h8&h@m9N6;l4{#~-EK%> zm-?n96~$RTBTo+tT|#L6V0HQE-4&_&xBFBH*s#iTw5x%KOs<0xws}{Gvtk3-Z0!0V zr0JD=!2{EufL?$Rkcg*L+vI~Xk`Hy<tskvBt^#E`IJBu_-kNn^`ipVM7%(J;iKNy) zDSjpwKO4EvZyJgR5Fo9uAwT<Y#O-56F2j8#FYSYnCC)SF%5_#=y%*VPZ?<(zt7mKW zPW_>H7X0m?CkSOP&-{-`k(b*GV%6yz(f1naSPdQ?IXoUOVM|~ZL<kifvdZFr#FNUo zcyG#hnJ~GeiU;L@-~!uD;Y{k`Sd|5xvIPaW%dq{1)1@6RQje8|2_;#P>CqXMVN4a7 zOVZ6hU9vzwugL^WVCPll+2Vf;`D*Fg7s5<W`wj4LmHm8-3@E<Fh|IV&ap}c-rVfwf zp@xm@D0Y6&MF%8gR^ud`W@i^$IL%g51w1Qv*m2(#M5ObhNtC?A)qBF7jFnj8@M&8R z#uH5inYUlf*sdm`#C@=8kXIhnR#ec7-yu{p&z~qx$cdpiCq_~?Rk%q?<Y<PFi?atl zivp_mwWVYvcKD9B9cTWN0p~#!*MMp%0Zymei^Ep(+b-~Zyck^DbkI@vcip}xt-8wJ zSGb_*+}3nICdw4{@|6a@=QG|XGHQQ*NfO+j{M!EAt{C1U9ONF0iDHgKuKQgn7q@P* zBg%o=$TF_Kg#J~X4I>QOKw=x%N9fQ;k<L+@`TS?p*#0c$EsKqLw4tHO+bgLGR9e*t zCcWa`NFe-7+k_DCfBw7CMDg#pJex7YBwq<|Jt+QEg93|3)W>OH0cgo3P;;6N5ADa= zy&d0usO}c^E09lpU<{*}r<zc1#xRgm9-8w+4Wn6A=%zBr@#sLn{hJpLTHknn^0aaY zxSf)>)N~{hcl31kT<N;caHJ263><v!A_Gc2c>$@1$MZ1pPXXm3FRU^{6=5hMK1}u1 zWq!dL%S2z;q%hKRP%KSLK&Zd~7yg_e3glsp!IkWHW~<P*R{JzkZoiChT|5`+(#q;2 z%z`XeTX#V6VMshAvO72Ydiz9sl#r$V++Y>QBp9~CvDV>Up1Ity5>2>2(bCOiiuEX= z7b8=w{uoRE5DYf57NXF!F&<z6pezVXN+=Gg>;(smnBM^pGucnOUZJ+zGf*CK0~s-J zLRLSQ&c4y^oGWCxSgL}8Z>&<Urnj<X2m4!#xkAsYx7zII|Df3F{O2pUKVSm%|I|ew zX{Wl*xGpdVc7f8iSoJE$0dX6jQ)AFK{*_$T5664A9>qV-<=ogyKj@+z^%0eD#Qm=K zR*x2e=;Qyc)iMqD?CyhsL!$HIUquokAN1n~$;^~hCK86y#1Vw+l-AkW*CV|E%n!_L z<{-qlU;THC?u1X&;_wI7(1rX*(lHMffdafTj_)%f#3-wzX8T3Tjek#?PU>EmhHuNu zWUxpf{EoxkDEfjx#D|$b635S1dPz1p8d>;&BF)sVl3EabU~L7*ESS!ZliO&J+Wqum z9wUHq%=FSGJ|O4k2%J8Bx$HZQ++utfdF>H}&rlJoq5gS_^%9*6QOtrqss1VBK`_RL zQs?%_KfChiXG9!jpa<;M;Yve0imu!AHRru|MKql6P9*s7;!WXd=Pw}^UY^2=6gT;+ zEGltT#=*)7eoD~pC-22yUrO$Kf^K&c-V0&Seu9MN31V8PE=iCuA7VPO+2jptC!B8m zNi&%iFDtFVYG}9}E>UZ|kCV5*$d6s#rBzbg!$|2P9P$1Jq9XTXY0DfRZ@dX1vR_H( zZM>dkY~zkGG@2PW;p(ECvqh8sNDTNK`tdvu6TGkA(-C78#D6IhOpPwY4fQkOkYE?w zv`({drpwX>l?v>#r9Z;>Kgq_Olvg#qCn2$aUaaABn`8QRvl+zaaj|Wr!;%P2ccyS* z8Z1x$=0Ixt%_^(LdoXq-dVgZ+v9j`Ofwgs9ZtLt)lnGOyCPJCaUIHn5i4-va&Bavz z^b!x!1)7H>F*DVua=1kBZaGc$I@#24<Xt3k?(j<@DCb5X9KC1Aq_GHX%^!;4<I^7< ziklY-Xpg3;zV8Ol*PHanVx)zG6_PC0q<fZ9;6?Ge>Q1IAaZK;Ab9%G9dc^_`8QWSL z<|^%+nus$qE4PwnlM^649XX*k5uQWEb(MnI)4dWT2l@@dOo=8=T&d|zCrbbKU6EnV z7dwZ8=AoMT^V1I^JLr8Mdv0RihdYNJPSmZl0iTL$rc|OyEUbRSHqmuoy&R?*cD##0 z>L;%x&iFbd8L#x;3=73SoSWQ+p6U4}f#p^EY|)Eg(w!Kx8XE@(zRvu7RqpIPjNW)i zfc#Mkj$a6}771cV0`O&)StDMPP~@cGlR@JFSup0TKmuG+Un-3p`+(H^GHzOtk0L_1 z&d+I|1(@P(Fk9rXv$L<CaM`H{m}4Ssv`xa&>rZ2|hxp><{p3mo-e{#GDspZLl;X*< zIeh8&8}q5iHD76&A?075nkzpUN_ek7v(@MEYpIT}tYht$jFlk1g3Z7KwSUkofo)%o zMF<rDywd$o3xGPQ>YR$myP+UOyZ|fC2+e>jn$hkpAqOKW>Ko-k7sk(X&hNS45{Tpx zf|4SA!&|zva|ueA;X}W{GQ&PW<QrdYjC8CFv9RWqtFloj>Zx!<&8M~pLT=sZRkA)Q zK>$nHpP)D<OX<0IKh#_y>Fv$TBJ!_I#)aY&T+*^N{XKi*^G~}8^S84a+6&VkZ;Ic4 zc>8CAfVD`(bmDyzHvU$k>e&OzKutq|0DjVRq?G~VcSr};L*hKk^-e)wPZ3vYeSwcC zWV%;P4}M^gg>iB9)h8&6+7PGUn+4?PkcFIgB+vJ(A^q=Z8$j8r6GdVnA4B2UaH45g z!c5XtOxs|gC=`ikXJ=>~^iFo#+}ql#i1fFIT-tOR_k4#-zPs2}RHpB#V7Y@s1J%ii zw$j&j>KGaP;gViT#+VGpA#U?@j~<26aA8T}<VVD@6nAw|TWLFAMu#u65$1Y0uR;oP z^<E_t8H95Hf2N3fQzBTeHy`#?IjO$B(3!t)SH@LMHHup={?wSUeT>=FU?n2A4q;U+ zW%K6-dcEa?vzoGI)tgvA{yx|ge0DZ9%`Ho<3l%k|DMq#F3G{|$6Y2Gxk;dW1Iux<X zUj!1gN-OUw2IE%G%fKecn+nWFjPglXsD#=RAyWEUy3hy2;UfZ~vT6<ydEI5qxTln> zq#{qbsSs?F&NG#oiE?PJ^%V72s-GA{`aGXIm)sYYD(AIVq}YErtQbt-Q1)J=$nCad z{Zu11qCk8N#2qS@9Y@*B*fWWSmJBa99Q7{N4<C>7kI#RvyFXsayI|*KlAkWA|C7n! zN=ULRZ)|XXEo(~EqPWXwqc<+8p_{sZ9(2?#`X-StA$X$ODzEwrIX)-5E35=egO_Q} zGUmf1GM84t0JBb1(C^zFemxWAdZ2z})H*9>?a<)<Qr!`L8Mm3jZ*h9XllByGVbey~ z5L`(u@>TVR>#=l;g^6^F83qx1$4(&Y`-gFlV~&;1e^SyDnCpFm0OF18m5c4tY-UhE zgsB_St(G-Xl0x(ff7hRJsXWrxixwZ2$E4MXUN$WKKC3QSnb0B$lkULd?7dLjz#n|M zvR!$ilYdbgp_Xb`Sg+q_+8Q>keq4JQXAO<Z>317VI*kr>lQ`s`rretKIOmdX#fP|T zG01s5C&=1d)<r%9oHXze0UZxzOUn&JFt^9%r5dvs0iqqv5;mcD(@HSqi1+Vr(9po- z_o#F9z>g3KHzajEP^~^f*f`<H6ed_IB&oL7e2oDEkD9fL2V3?Y&j9M6b$tt_MkvR% zw%t{@>aGdThT8egmArM*e&73oB)(JBM@H?7^Vvcc?EaS#|J(+#g`E!*-wOIKtHif% z#bSLJAp{fNxy}8a;(LXwoNhj9HBrA}IobHfIj3oZFTWc;f~gOtN2ix=7*Yc2OG*ax z!ja?*ACJ~?5|P`gJ22L*BoMvHXHN`!huQYhlFND#^5ig!^X5fpsn_$R(^9zZgTse3 z*1_;ina3C%{b<ZcT5HLY9kf?0Sv<pyYF}oiKRT&_H`X0}g@h_Xc=h~&y2a_Ftrg7b zK^#&`xAb)T)1f$znZ=q$zg2;67<UiX8r;b7DAO6V{vy^OG+Gf|!}_Ma=e|4^Xg&m% z@wHE9bQ|334eb^8d)FfQ3!3Si4WbIXG~!v6{;pO%RvpDrHJ4<xzk@YE-B(e}MMxej zi_HFoLb7oVi}#8Iu6pfX`Mn`?ZLP7Ue3Z}Ab0sVoV|&p(CM>91oh*$tiS;)rq`H2# zJ)NYjv2i|mZf*(d=7z7haXzokYWxi&?MjFprkU6JS-vekN#IBSmmF}}2o@YAjZSv) z3@^fn(CIN--`^CR+x(3~P$t;>M&K1=P!GwMSB1PwyU1&Kj4t+Oc|$h}?V>SnVGKr+ zLWS<f&CtS!w2*@M3Y8CdB(KktXOLsF#^Jh=4{$kz1PHLuP2F)AgY2ci+4FuNRqumc z-HY@hLd~4FgjMdh5%gfF$I~WGh%B_~Vd5s3>ptTMja4#0UfHx#__Fg;X*qNtPLSc7 z{a!<FZxeVs3LJ~*fxpbS3zpHfRrm@uC!wcizAVuLadOG24f;!^n@m|NqlYsGC3EoH z?M3f@mg)2Mveh2An*rn+Y_`h6;ohO;oh79$o5fNVw7rC;%Mp8lXMGAoT&gAC@1TY^ z3zU>$fRz81KV8>1Dft4NB4K>SsypwW<s7^ug9y~!iizY&$@A6*{9h4aA~a4^Gf)~S zvI4l>zdLo-&kgIPk8F+&Jpvx%m~a^cyqs++>IeY$t*(o0d;+40YAICgJLYbg9G7dR zbVFe<CkylT2LdTB0Q-<&xCD7eR6s{LntO8i09k-QP`ymX0$MxeWyCx0M8>eR$Itpi z+a-Hh6drC@3WkBh!{hK$dYLd%gnrh*f-7WLIf_k~wbM1MBx|*kBeIK@;XE(3M7($u z#sTO4<shlAD=mcCTNb<4@^N6t*Us_tukU&U5BNfdW9Axq?n00SN_1djVxloOge6|B z5uF<Q>}WCq;BuC#GpnCUlyuNeii}8DSnH>os2@wInijBL7rd&*dhIuo+C(*X-ZKO1 z-BJ=fiwbXdEF$8T!h>^m(x4TPjQNa|7rN-Mpp>=X>+I_T64ISTBo)pbv;wI;>1`HD z5V>N+xo~bTYBp}?Pg}8Hd*+4X%3TUMiUO)$G%#eYao}Ar(Wac@n4-QcfW`<rq`rv4 zzD>RRBr7{$(je)oA-rTvNm%;k=)wlb;<3@Tr6RoJB@c#8vErO+LH>+ajDca*h+7iS zuKIF(iA_QD<T5QRlf$nLKLLhPu}@dKIA*;w-*6QWOSNq{FSyfgb0cN&b0@;1LDU&v z3j(Y=&`C6NKW0>wKv~l&sfe#e6q|-dAefW+8=#n@`mH}PAC%VJ-bw`VhA)5d6&y|& z(nJ)wWYa*yxRdm!il}bAEUL5&bWjCB`SBtRSiKeAMP7a+i%PxUicc9vL9~(W-9-5^ zt4M-(+ugrUuO3<0t>zu`6^T1l+sv4UM;(&X=<I+-f!`gd!3h^CVH&zDuAjd0lOGid z!IoAq@WT2fEr1;-WKN1Np#0&o7GHtK8c1|cxKuG)p4miGSFXgxkAMm$r`;;NC~62K zf*+(x`Xb<RscTRMNYZS2@<#-(LYBr)qA8V6=9j`h?*WEnvL`ZRe3T^FfXNpd&Ok9K z%w)w(-gcm~R_c9&E&cET%#_5VgOIUlaY`Zoarq<jFey{mDhNF#+Vi&JYYg|MGz@J6 z7c}`%HXQc@@Wmpy&c%RC7=?yT9E`(9Cy*^@tU_R@YnT6SPCNB?R58+0@-Jjvj>)9K zphyH3l<j5{iyqHKit54v+&+sgsxe4~ntLD#_+83)?S^+bm!h7$ZGzNDX}V!Nw@d{l zW3Wxt><qbONeZ2=j6N%_g7i0$(D}qcvx)~Up)8O{fvS4LK^>f7^m9SBUzeW(;>S2X z%=@TX)GYz8HV^@tDco9Ohov3!Ajmw|oa8f(!~HCj?2LOtN=}zdu!L6CSkE*a@q1xz z%x&rorW6@uv;0@&{2VGhd+9QOk1rn|wvmb0i}t(ihuuM-YUV}Thi9Jf+w#TOu-G#7 z1J2KFyt@8x5R-xt<F6$z1+rs}p-7tr6<5av@OiO;DzK!S`>?q@0*LNWG^+i8q)>t{ zM^LqtCl;<5)=7oRQ(9EQeUEz>rO)LRuL%EI^a1+)&wz7gBt~++j1(iLq;+p;9fPaj zf>&lAmo2%_Cj8K4KFK%>ZIU+!^zJ@ZH|yXXfuS>W+I#(j?#RKgB2gg6t0LG2?uL|m zk8gEzNh=ImPNXVWpF?2n13hOrq`*$pK?pHnDx5f1&mTEg1XC^-c89^GV5sie6>ai3 z>+$#>C8Y4AgS_lcIAct;-iqyfF8hM?28NO&fYXq|&_908Kx5JS6LlZ2Svo1jV^Xn4 z!U9AtG7bw1)dip@*YJ1#SQ!EIQ{JG&{qHcI@*|>n)B|Zj9u@h*fT7395i4wpUD@4r z9WQ{Kb#7dG-?NtxN_}G{<73_8OmDNjs6Z;FaZh8ToTP}h^$fQtrPZ&6$Ai?07H|rP zhhJ5`PPBTuJYI2Psz@cAUulw6R~#<}Q1DT#Xw3EJ$RGt5g8#fU^~&sjsN=j(I7-*1 zCGljsWM^-z!_6PEU<utN>OSX}kfOF20AYybab)&csZwj921`XLpyuPytXona-}}g< zG8+<g5~Mz0Nu)?2(9V&4?(?qh-INu0Lp2YDB*}px1xe~3N0C$o|0dPFM~zp<!AJ_3 z?IDo2*isJVp>a_)Jg2zFjz>|MT_LKOb;nf1PTVi*^`HBU3kOIbc-V5Ne217A(F|hX z>ftKQNUJ1Y(O<BVSuq5JoEJ4G3-fGpI9EIhb}(_3O6@NrGuppc)@YhBgxZI!J7kwK zU|a~+E(s%I&kw7DdR>SXv{ITQ$!EwLqR_IheuwQH6UPEWe)YCeIvn8utT#WcVG~Wl z1cH{Dp@_hwG&*L-6XQu-A?iwWj50&gK|HuFG%UQK%kvg<0kmCpWX=TcR5EcIqEI{_ zNJfo<0w$#_3a)ZptiBpWp0IETu>dLHBPk#T&f~ADn-&azY$%-$0vz<$^lGkBz?UBZ z^%U${Bx(0T74nC%B&ol&yaS$!3OlZqtY=~`Y58<=`|dV#T5!P#^S)mR4+LK#@Kx?| z^)!I5j*g)s8VKnrczwfdbD0v)ah#p_=JFu8hD9Q%UeeIi#<U1bvJf6fQVXhn;d47N znJZ==FLN3+`5~m$67|FE)TpBy=d|B35r59=MrLnoBBb_0h97to2m`ixElZZ@B!0%P zl(76_tdl_y4dxi88oc+pC#}@5A+as>9=>`WMVIh)H26DW)i1qZ8|W(48+dM=Kceae zLzn1Dx+gOMG2QOGxmV}9jFlmD2BPEJ;nY-3JvZ@Y7f&Ua9C^|eqouVqPWo%R@y zQeQM!t}IpU{X)tONkU;GC7=iad<k_YIRG*CV{ouAu^m{VgtlRp@C^`47N}om_#%t~ zIFd;3eu2-9++K7wA^Z$%YG~|=SydTsA!PDjcc^WES4Cpd_+ig>2aLZ=!)$02&*OIi zsJf|b-Pgm90Ey-s>A0)Tn5@r*!0ZD5w>v+CcqWO0(_I~WRVi0iskdK@bCQhZbMRe~ zv*m4wN0t~-j=j%HtM1PD(Goptl0Fu>y-`AcwJ=)K`)QqJE^XiUt7yhgE>g^H1|sVh zHHngGNRsc2&0pFb>%xg7&u8_0(u(IQ1nX+C7Le=OKM-a7-*h1%ArH*ALbG??hiTJr zO@(d3t&Cr4;EtN!TFnoP4JBuXc3>0OX5pa4Cl3#gxw$#Dw<@-;Y*x%q=)UDy82OZ{ zmyk~iGYlX|&|s5`+%IeC7|K@q#Ga@-hbT^@5uqB>&dpCxUoJJf?C7d}xdn_#VCOxt z){c%(O|(kM)pQ2#qy^m7HZw(CEPA!OU5J3X9V|-g!e`yu2u-Fp3!RAM`Gq{K@Vnm% z`z-8t@60N*T5eMzBN}3?TS};{*l=^WhkPz+HIZ?k+u?I#CjN90YlBXDyD(BF)cV`; z5(p3462^r5JWpcQQTcQ8B61MlA4_xdH5M3U(t4XjE)L6f&o(9rs5x0_>Uyfn{&#Gg z{rSmT@wSwRa$LClf#HVa5&_EC2hH8W!opJSdYG#^^?5nV^Wbc$24hQ^V~{!W?eWq~ ztIy5h^M6$Q<F6M<GoG~;y~Q0wW!2aTfbbR}gyOxVh)$jVy1_V)O~VQF#*)YMnn-#! zc-|}=6FL#;N6L{yls%HCqY%~h&(BZu#V=yjuIKAw@qgtyhPc10C;Mo@@Q2U&KW3p> z=&3)9pDt58S6|94&o0aLHvBw%eAu+Mh6)Q6ETe4f=ZKwEBwc9x?+@6D-)En$cKF^s z@Y>Bk{$&riz?i4gzJgaj)!0An?D6mivy<gdFu|?fJ#4**z57zw422x$%CwZKx}F|< zf5g0PE6L3@l_HQG&^}~)xJiOmDaM=(WMD2zZws6{+Sv*JoSv@rev!%9W%=JO?Y+po z?wsZ2Q8s(*b<FAw=2IM-n*jXqpE~g}OpH48t5QVGAmO%@=a3LlS*k$+G&L<K8P*ea zk4EwzBQzMK#lTG6X<oW)t`nYZ$}AaJ&u`N4NO4ivCJh2574X3Uq`ZpGLtDE7f7ig` zCMFidYzasb-Db&V!elwn`iYX!V-Et;gqB+z5Z2;)kr|HpmL@48HB74wwwxDtYayww z7f*Zs4P$yIp%&s%tE}dDuE`V_Z;RVKq=@0mqlG@*`E8<VFD?GX^5v)t)58)oYC8Rz za|;;fCu?_QwLE{%5dWU?SkBhVzEM03)>%ja$`VuW4l1<XCkuiJgZ9+HB@f4)Qrymr zke@m)ttn0VNUATX@wfz`1fjC=&E`wr%A5bMZ{_|O{GQV`w%q$C@k{d!pdhOvQz>Qg F<$upF0qFn$ literal 0 HcmV?d00001 diff --git a/src/pt/animesonlinecloud/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/animesonlinecloud/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..8d8ab6d7423eafe4e3f1dc664dc1a2028b17dd9f GIT binary patch literal 18806 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 literal 0 HcmV?d00001 diff --git a/src/pt/animesonlinecloud/src/eu/kanade/tachiyomi/animeextension/pt/animesgratis/AnimesOnlineCloud.kt b/src/pt/animesonlinecloud/src/eu/kanade/tachiyomi/animeextension/pt/animesgratis/AnimesOnlineCloud.kt new file mode 100644 index 00000000..0cc08369 --- /dev/null +++ b/src/pt/animesonlinecloud/src/eu/kanade/tachiyomi/animeextension/pt/animesgratis/AnimesOnlineCloud.kt @@ -0,0 +1,164 @@ +package eu.kanade.tachiyomi.animeextension.pt.animesonlinecloud + +import androidx.preference.ListPreference +import androidx.preference.PreferenceScreen +import eu.kanade.tachiyomi.animesource.model.SAnime +import eu.kanade.tachiyomi.animesource.model.Video +import eu.kanade.tachiyomi.lib.bloggerextractor.BloggerExtractor +import eu.kanade.tachiyomi.multisrc.dooplay.DooPlay +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.util.asJsoup +import eu.kanade.tachiyomi.util.parallelCatchingFlatMapBlocking +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Response +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element + +class AnimesOnlineCloud : DooPlay( + "pt-BR", + "Animes Online Cloud", + "https://animesonline.cloud/", +) { + + // ============================== Popular =============================== + override fun popularAnimeSelector() = "article.w_item_b > a" + + override fun popularAnimeRequest(page: Int) = GET(baseUrl, headers) + + // =============================== Latest =============================== + override fun latestUpdatesNextPageSelector() = "div.pagination > a.arrow_pag > i.fa-caret-right" + + // =============================== Search =============================== + + // =========================== Anime Details ============================ + override val additionalInfoSelector = "div.wp-content" + + override fun animeDetailsParse(document: Document): SAnime { + val doc = getRealAnimeDoc(document) + val sheader = doc.selectFirst("div.sheader")!! + return SAnime.create().apply { + setUrlWithoutDomain(doc.location()) + sheader.selectFirst("div.poster > img")!!.let { + thumbnail_url = it.getImageUrl() + title = it.attr("alt").ifEmpty { + sheader.selectFirst("div.data > h1")!!.text() + }.replace("Todos os Episódios", "").trim() + } + + genre = sheader.select("div.data div.sgeneros > a") + .eachText() + .joinToString() + + description = doc.getDescription() + } + } + + // ============================ Video Links ============================= + override fun videoListParse(response: Response): List<Video> { + val document = response.asJsoup() + val players = document.select("ul#playeroptionsul li") + return players.parallelCatchingFlatMapBlocking(::getPlayerVideos) + } + + override val prefQualityValues = arrayOf("360p", "720p") + override val prefQualityEntries = prefQualityValues + + private val bloggerExtractor by lazy { BloggerExtractor(client) } + + private fun getPlayerVideos(player: Element): List<Video> { + val name = player.selectFirst("span.title")!!.text() + .run { + when (this) { + "SD" -> "360p" + "HD" -> "720p" + "SD/HD" -> "720p" + "FHD", "FULLHD" -> "1080p" + else -> this + } + } + + val url = getPlayerUrl(player) + + return when { + "blogger.com" in url -> bloggerExtractor.videosFromUrl(url, headers) + "jwplayer?source=" in url -> { + val videoUrl = url.toHttpUrl().queryParameter("source") ?: return emptyList() + + val videoHeaders = headers.newBuilder() + .add("Accept", "*/*") + .add("Host", videoUrl.toHttpUrl().host) + .add("Origin", "https://${url.toHttpUrl().host}") + .add("Referer", "https://${url.toHttpUrl().host}/") + .build() + + return listOf( + Video(videoUrl, name, videoUrl, videoHeaders), + ) + } + + else -> emptyList() + } + } + + private fun getPlayerUrl(player: Element): String { + val type = player.attr("data-type") + val id = player.attr("data-post") + val num = player.attr("data-nume") + return client.newCall(GET("$baseUrl/wp-json/dooplayer/v2/$id/$type/$num")) + .execute() + .let { response -> + response.body.string() + .substringAfter("\"embed_url\":\"") + .substringBefore("\",") + .replace("\\", "") + } + } + + // ============================== Filters =============================== + override fun genresListRequest() = GET("$baseUrl/generos/", headers) + override fun genresListSelector() = "a.genre-link" + + // ============================== Settings ============================== + override fun setupPreferenceScreen(screen: PreferenceScreen) { + val videoLanguagePref = ListPreference(screen.context).apply { + key = PREF_LANGUAGE_KEY + title = PREF_LANGUAGE_TITLE + entries = PREF_LANGUAGE_ENTRIES + entryValues = PREF_LANGUAGE_VALUES + setDefaultValue(PREF_LANGUAGE_DEFAULT) + summary = "%s" + setOnPreferenceChangeListener { _, newValue -> + val selected = newValue as String + val index = findIndexOfValue(selected) + val entry = entryValues[index] as String + preferences.edit().putString(key, entry).commit() + } + } + + screen.addPreference(videoLanguagePref) + super.setupPreferenceScreen(screen) + } + + // ============================= Utilities ============================== + override fun List<Video>.sort(): List<Video> { + val quality = preferences.getString(videoSortPrefKey, videoSortPrefDefault)!! + val language = preferences.getString(PREF_LANGUAGE_KEY, PREF_LANGUAGE_DEFAULT)!! + return sortedWith( + compareBy( + { it.quality.lowercase().contains(language.lowercase()) }, + { it.quality.lowercase().contains(quality.lowercase()) }, + { REGEX_QUALITY.find(it.quality)?.groupValues?.get(1)?.toIntOrNull() ?: 0 }, + ), + ).reversed() + } + + companion object { + private val REGEX_QUALITY by lazy { Regex("""(\d+)p""") } + + private const val PREF_LANGUAGE_KEY = "preferred_language" + private const val PREF_LANGUAGE_DEFAULT = "Legendado" + private const val PREF_LANGUAGE_TITLE = "Língua preferida" + private val PREF_LANGUAGE_VALUES = arrayOf("Legendado", "Dublado") + private val PREF_LANGUAGE_ENTRIES = PREF_LANGUAGE_VALUES + } +} From 9c77593863fb144a8fe3062f69ec08657309ec0d Mon Sep 17 00:00:00 2001 From: Willy Nur Wahyudi <Willynurwahyudi@gmail.Com> Date: Tue, 16 Jul 2024 12:07:05 +0700 Subject: [PATCH 3/5] fix(id/minioppai): Update baseUrl (#55) * Update MiniOppai.kt * Update build.gradle --- src/id/minioppai/build.gradle | 6 +++--- .../tachiyomi/animeextension/id/minioppai/MiniOppai.kt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/id/minioppai/build.gradle b/src/id/minioppai/build.gradle index 5021025a..dd8ee9ee 100644 --- a/src/id/minioppai/build.gradle +++ b/src/id/minioppai/build.gradle @@ -2,8 +2,8 @@ ext { extName = 'MiniOppai' extClass = '.MiniOppai' themePkg = 'animestream' - baseUrl = 'https://minioppai.org' - overrideVersionCode = 5 + baseUrl = 'https://minioppai.biz' + overrideVersionCode = 6 isNsfw = true } @@ -12,4 +12,4 @@ apply from: "$rootDir/common.gradle" dependencies { implementation(project(":lib:gdriveplayer-extractor")) implementation(project(":lib:unpacker")) -} \ No newline at end of file +} diff --git a/src/id/minioppai/src/eu/kanade/tachiyomi/animeextension/id/minioppai/MiniOppai.kt b/src/id/minioppai/src/eu/kanade/tachiyomi/animeextension/id/minioppai/MiniOppai.kt index 1687f8e1..945532f3 100644 --- a/src/id/minioppai/src/eu/kanade/tachiyomi/animeextension/id/minioppai/MiniOppai.kt +++ b/src/id/minioppai/src/eu/kanade/tachiyomi/animeextension/id/minioppai/MiniOppai.kt @@ -18,7 +18,7 @@ import java.util.Locale class MiniOppai : AnimeStream( "id", "MiniOppai", - "https://minioppai.org", + "https://minioppai.biz", ) { override fun headersBuilder() = super.headersBuilder().add("Referer", baseUrl) From 8af90e100895719691a5deb680ce968212fc5c60 Mon Sep 17 00:00:00 2001 From: WebDitto <webditto@proton.me> Date: Fri, 19 Jul 2024 06:23:06 -0300 Subject: [PATCH 4/5] Removed "Official" extensions --- src/all/googledrive/README.md | 62 -- src/all/googledrive/build.gradle | 11 - .../res/mipmap-hdpi/ic_launcher.png | Bin 2910 -> 0 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 1604 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 3586 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 6358 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 8342 -> 0 bytes src/all/googledrive/res/web_hi_res_512.png | Bin 31465 -> 0 bytes .../all/googledrive/GoogleDrive.kt | 720 ---------------- .../all/googledrive/GoogleDriveDto.kt | 45 - .../googledrive/GoogleDriveMultiFormReqs.kt | 18 - src/all/googledriveindex/build.gradle | 7 - .../res/mipmap-hdpi/ic_launcher.png | Bin 3277 -> 0 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 1794 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 4477 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 8246 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 12092 -> 0 bytes .../googledriveindex/res/web_hi_res_512.png | Bin 62731 -> 0 bytes .../all/googledriveindex/GoogleDriveIndex.kt | 743 ---------------- .../googledriveindex/GoogleDriveIndexDto.kt | 49 -- src/all/jellyfin/build.gradle | 7 - .../jellyfin/res/mipmap-hdpi/ic_launcher.png | Bin 3748 -> 0 bytes .../jellyfin/res/mipmap-mdpi/ic_launcher.png | Bin 2134 -> 0 bytes .../jellyfin/res/mipmap-xhdpi/ic_launcher.png | Bin 5289 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 9746 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 15387 -> 0 bytes src/all/jellyfin/res/web_hi_res_512.png | Bin 58717 -> 0 bytes .../animeextension/all/jellyfin/Jellyfin.kt | 803 ------------------ .../all/jellyfin/JellyfinAuthenticator.kt | 94 -- .../all/jellyfin/JellyfinConstants.kt | 129 --- .../all/jellyfin/JellyfinDto.kt | 234 ----- .../all/jellyfin/JellyfinFactory.kt | 18 - 32 files changed, 2940 deletions(-) delete mode 100644 src/all/googledrive/README.md delete mode 100644 src/all/googledrive/build.gradle delete mode 100644 src/all/googledrive/res/mipmap-hdpi/ic_launcher.png delete mode 100644 src/all/googledrive/res/mipmap-mdpi/ic_launcher.png delete mode 100644 src/all/googledrive/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 src/all/googledrive/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 src/all/googledrive/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 src/all/googledrive/res/web_hi_res_512.png delete mode 100644 src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/GoogleDrive.kt delete mode 100644 src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/GoogleDriveDto.kt delete mode 100644 src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/GoogleDriveMultiFormReqs.kt delete mode 100644 src/all/googledriveindex/build.gradle delete mode 100644 src/all/googledriveindex/res/mipmap-hdpi/ic_launcher.png delete mode 100644 src/all/googledriveindex/res/mipmap-mdpi/ic_launcher.png delete mode 100644 src/all/googledriveindex/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 src/all/googledriveindex/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 src/all/googledriveindex/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 src/all/googledriveindex/res/web_hi_res_512.png delete mode 100644 src/all/googledriveindex/src/eu/kanade/tachiyomi/animeextension/all/googledriveindex/GoogleDriveIndex.kt delete mode 100644 src/all/googledriveindex/src/eu/kanade/tachiyomi/animeextension/all/googledriveindex/GoogleDriveIndexDto.kt delete mode 100644 src/all/jellyfin/build.gradle delete mode 100644 src/all/jellyfin/res/mipmap-hdpi/ic_launcher.png delete mode 100644 src/all/jellyfin/res/mipmap-mdpi/ic_launcher.png delete mode 100644 src/all/jellyfin/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 src/all/jellyfin/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 src/all/jellyfin/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 src/all/jellyfin/res/web_hi_res_512.png delete mode 100644 src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/Jellyfin.kt delete mode 100644 src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/JellyfinAuthenticator.kt delete mode 100644 src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/JellyfinConstants.kt delete mode 100644 src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/JellyfinDto.kt delete mode 100644 src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/JellyfinFactory.kt diff --git a/src/all/googledrive/README.md b/src/all/googledrive/README.md deleted file mode 100644 index cf434d9f..00000000 --- a/src/all/googledrive/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# DISCLAIMER - -This extension requires you to log in through Google and relies heavily on scraping the website of Google Drive, which may be against their terms of service. Use at your own risk. - -# Google Drive - -Table of Content -- [FAQ](#FAQ) - - [How do i add entries?](#how-do-i-add-entries) - - [What are all these options for drive paths?](#what-are-all-these-options-for-drive-paths) - - [I added the drive paths but it still get "Enter drive path(s) in extension settings."](#i-added-the-drive-paths-but-it-still-get-enter-drive-paths-in-extension-settings) - - [I cannot log in through webview](#i-cannot-log-in-through-webview) - -## FAQ - -### How do I customize info? - -The Google Drive Extension allow for editing the same way as [local anime](https://aniyomi.org/docs/guides/local-anime-source/advanced) . - -### How do I add entries? -The Google Drive Extension *only* supports google drive folders, so no shared drives (but folders inside shared drives works fine!). If you have a folder, which contains sub-folders of an anime, such as: -``` -https://drive.google.com/drive/folders/some-long-id -├── anime1/ -│ ├── episode 1.mkv -│ ├── episode 2.mkv -│ └── ... -└── anime2/ - ├── episode 1.mkv - ├── episode 2.mkv - └── ... -``` -Then it you should go to extension settings, and add the url there. You can add multiple drive paths by separating them with a semicolon `;`. To select between the paths, open up the extension and click the filter, from there you can select a specific drive. - -If you instead have a folder that contains the episodes directly, such as: -``` -https://drive.google.com/drive/folders/some-long-id -├── episode 1.mkv -├── episode 2.mkv -└── ... -``` -Then you should open the extension, click filters, then paste the folder link in the `Add single folder` filter. - -### What are all these options for drive paths? -The extension allows for some options when adding the drive path: -1. You can customize the name of a drive path by prepending the url with [<insert name>]. This will change the display name when selecting different drive paths in filters. Example: `[Weekly episodes]https://drive.google.com/drive/folders/some-long-id` -2. You can limit the recursion depth by adding a `#` to the end of the url together with a number. If you set it to `1`, the extension will not go into any sub-folders when loading episodes. If you set it to `2`, the extension will traverse into any sub-folders, but not sub-folders of sub-folders, and so on and so forth. It's useful if one folder has a separate folder for each seasons that you want to traverse through, but if another folder has separate folder for openings/endings that you *don't* want to traverse through. Example: `https://drive.google.com/drive/folders/some-long-id#3` -3. It is also possible to specify a range of episodes to load. It needs to be added together with the recursion depth as seen in step 2. Note: it only works if the recursion depth is set to `1`. The range is inclusive, so doing #1,2,7 will load the 2nd up to, and including, the 7th item. Example: `https://drive.google.com/drive/folders/some-long-id#1,2,7` - -It is possible to mix these options, and they work for both ways to add folders. - -### I added the drive paths but it still get "Enter drive path(s) in extension settings." -This can be caused by the caching that Aniyomi does. Reinstalling the extension will fix this issue (reinstalling an extension does not remove any extension settings) - -### I cannot log in through webview -Google can sometimes think that webview isn't a secure browser, and will thus refuse to let you log in. There are a few things you can try to mitigate this: -1. In the top right, click the three dots then click `Clear cookies` -2. In the top right, click the three dots then click `Refresh` -3. Click the `Try again` button after the website doesn't let you log in -4. Make sure that your webview is up to date - -Try a combination of these steps, and after a few tries it should eventually let you log in. diff --git a/src/all/googledrive/build.gradle b/src/all/googledrive/build.gradle deleted file mode 100644 index 20a3b6f7..00000000 --- a/src/all/googledrive/build.gradle +++ /dev/null @@ -1,11 +0,0 @@ -ext { - extName = 'Google Drive' - extClass = '.GoogleDrive' - extVersionCode = 15 -} - -apply from: "$rootDir/common.gradle" - -dependencies { - implementation(project(':lib:googledrive-extractor')) -} \ No newline at end of file diff --git a/src/all/googledrive/res/mipmap-hdpi/ic_launcher.png b/src/all/googledrive/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index cde6264211d08ceda780be168489fcbabf0b7002..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2910 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 IM6N<$g2+vREdT%j diff --git a/src/all/googledrive/res/mipmap-mdpi/ic_launcher.png b/src/all/googledrive/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index e335d7428ec73734c904472998f3610a69551877..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1604 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 CJL_Hm diff --git a/src/all/googledrive/res/mipmap-xhdpi/ic_launcher.png b/src/all/googledrive/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 3780d17941ae38d06983e8e08f34014afacfe01a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3586 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 IM6N<$g0RWA%>V!Z diff --git a/src/all/googledrive/res/mipmap-xxhdpi/ic_launcher.png b/src/all/googledrive/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 75c56dbc2f9011d89f8bd5e923ecfc2d13b94785..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6358 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 Y4<^^GHVhHWivR!s07*qoM6N<$f~Uv@<^TWy diff --git a/src/all/googledrive/res/mipmap-xxxhdpi/ic_launcher.png b/src/all/googledrive/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index a68eef1b8e8105bb2d10a4f90bc379ee64c15abf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8342 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 diff --git a/src/all/googledrive/res/web_hi_res_512.png b/src/all/googledrive/res/web_hi_res_512.png deleted file mode 100644 index 4ca28cb0759e00586b01dec00205789df51b4751..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31465 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 UgMQiw0v_+)D8DXyW%Tv`0kxwCHUIzs 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 deleted file mode 100644 index 22ad7799..00000000 --- a/src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/GoogleDrive.kt +++ /dev/null @@ -1,720 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.all.googledrive - -import android.app.Application -import android.content.SharedPreferences -import android.text.Editable -import android.text.TextWatcher -import android.widget.Button -import android.widget.EditText -import android.widget.Toast -import androidx.preference.EditTextPreference -import androidx.preference.PreferenceScreen -import androidx.preference.SwitchPreferenceCompat -import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource -import eu.kanade.tachiyomi.animesource.model.AnimeFilter -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.Video -import eu.kanade.tachiyomi.animesource.online.AnimeHttpSource -import eu.kanade.tachiyomi.lib.googledriveextractor.GoogleDriveExtractor -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.POST -import eu.kanade.tachiyomi.util.asJsoup -import eu.kanade.tachiyomi.util.parseAs -import kotlinx.serialization.encodeToString -import kotlinx.serialization.json.Json -import okhttp3.HttpUrl.Companion.toHttpUrl -import okhttp3.MediaType.Companion.toMediaType -import okhttp3.ProtocolException -import okhttp3.Request -import okhttp3.RequestBody.Companion.toRequestBody -import okhttp3.Response -import okhttp3.internal.commonEmptyRequestBody -import org.jsoup.nodes.Document -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get -import uy.kohesive.injekt.injectLazy -import java.net.URLEncoder -import java.security.MessageDigest - -class GoogleDrive : ConfigurableAnimeSource, AnimeHttpSource() { - - override val name = "Google Drive" - - override val id = 4222017068256633289 - - override var baseUrl = "https://drive.google.com" - - // Hack to manipulate what gets opened in webview - private val baseUrlInternal by lazy { - preferences.domainList.split(";").firstOrNull() - } - - override val lang = "all" - - override val supportsLatest = false - - private val json: Json by injectLazy() - - private val preferences: SharedPreferences by lazy { - Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000) - } - - // Overriding headersBuilder() seems to cause issues with webview - private val getHeaders = headers.newBuilder().apply { - add("Accept", "*/*") - add("Connection", "keep-alive") - add("Cookie", getCookie("https://drive.google.com")) - add("Host", "drive.google.com") - }.build() - - private var nextPageToken: String? = "" - - // ============================== Popular =============================== - - override suspend fun getPopularAnime(page: Int): AnimesPage = - parsePage(popularAnimeRequest(page), page) - - override fun popularAnimeRequest(page: Int): Request { - require(!baseUrlInternal.isNullOrEmpty()) { "Enter drive path(s) in extension settings." } - - val match = DRIVE_FOLDER_REGEX.matchEntire(baseUrlInternal!!)!! - val folderId = match.groups["id"]!!.value - val recurDepth = match.groups["depth"]?.value ?: "" - baseUrl = "https://drive.google.com/drive/folders/$folderId" - - return GET( - "https://drive.google.com/drive/folders/$folderId$recurDepth", - headers = getHeaders, - ) - } - - override fun popularAnimeParse(response: Response): AnimesPage = throw UnsupportedOperationException() - - // =============================== Latest =============================== - - override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException() - - override fun latestUpdatesParse(response: Response): AnimesPage = throw UnsupportedOperationException() - - // =============================== Search =============================== - - override fun searchAnimeParse(response: Response): AnimesPage = throw UnsupportedOperationException() - - override suspend fun getSearchAnime( - page: Int, - query: String, - filters: AnimeFilterList, - ): AnimesPage { - val filterList = if (filters.isEmpty()) getFilterList() else filters - val urlFilter = filterList.find { it is URLFilter } as URLFilter - - return if (urlFilter.state.isEmpty()) { - val req = searchAnimeRequest(page, query, filters) - - if (query.isEmpty()) { - parsePage(req, page) - } else { - val parentId = req.url.pathSegments.last() - val cleanQuery = URLEncoder.encode(query, "UTF-8") - val genMultiFormReq = searchReq(parentId, cleanQuery) - - parsePage(req, page, genMultiFormReq) - } - } else { - addSinglePage(urlFilter.state) - } - } - - override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request { - require(!baseUrlInternal.isNullOrEmpty()) { "Enter drive path(s) in extension settings." } - - val filterList = if (filters.isEmpty()) getFilterList() else filters - val serverFilter = filterList.find { it is ServerFilter } as ServerFilter - val serverUrl = serverFilter.toUriPart() - - val match = DRIVE_FOLDER_REGEX.matchEntire(serverUrl)!! - val folderId = match.groups["id"]!!.value - val recurDepth = match.groups["depth"]?.value ?: "" - baseUrl = "https://drive.google.com/drive/folders/$folderId" - - return GET( - "https://drive.google.com/drive/folders/$folderId$recurDepth", - headers = getHeaders, - ) - } - - // ============================== FILTERS =============================== - - override fun getFilterList(): AnimeFilterList = AnimeFilterList( - ServerFilter(getDomains()), - AnimeFilter.Separator(), - AnimeFilter.Header("Add single folder"), - URLFilter(), - ) - - private class ServerFilter(domains: Array<Pair<String, String>>) : UriPartFilter( - "Select drive path", - domains, - ) - - private fun getDomains(): Array<Pair<String, String>> { - if (preferences.domainList.isBlank()) return emptyArray() - return preferences.domainList.split(";").map { - val name = DRIVE_FOLDER_REGEX.matchEntire(it)!!.groups["name"]?.let { - it.value.substringAfter("[").substringBeforeLast("]") - } - Pair(name ?: it.toHttpUrl().encodedPath, it) - }.toTypedArray() - } - - private open class UriPartFilter(displayName: String, val vals: Array<Pair<String, String>>) : - AnimeFilter.Select<String>(displayName, vals.map { it.first }.toTypedArray()) { - fun toUriPart() = vals[state].second - } - - private class URLFilter : AnimeFilter.Text("Url") - - // =========================== Anime Details ============================ - - override fun animeDetailsRequest(anime: SAnime): Request { - val parsed = json.decodeFromString<LinkData>(anime.url) - return GET(parsed.url, headers = getHeaders) - } - - override suspend fun getAnimeDetails(anime: SAnime): SAnime { - val parsed = json.decodeFromString<LinkData>(anime.url) - - if (parsed.type == "single") return anime - - val folderId = DRIVE_FOLDER_REGEX.matchEntire(parsed.url)!!.groups["id"]!!.value - - val driveDocument = try { - client.newCall(GET(parsed.url, headers = getHeaders)).execute().asJsoup() - } catch (a: ProtocolException) { - null - } ?: return anime - - // Get cover - - val coverResponse = client.newCall( - createPost(driveDocument, folderId, nextPageToken, searchReqWithType(folderId, "cover", IMAGE_MIMETYPE)), - ).execute().parseAs<PostResponse> { JSON_REGEX.find(it)!!.groupValues[1] } - - coverResponse.items?.firstOrNull()?.let { - anime.thumbnail_url = "https://drive.google.com/uc?id=${it.id}" - } - - // Get details - - val detailsResponse = client.newCall( - createPost(driveDocument, folderId, nextPageToken, searchReqWithType(folderId, "details.json", "")), - ).execute().parseAs<PostResponse> { JSON_REGEX.find(it)!!.groupValues[1] } - - detailsResponse.items?.firstOrNull()?.let { - val newPostHeaders = getHeaders.newBuilder().apply { - add("Content-Type", "application/x-www-form-urlencoded;charset=utf-8") - set("Host", "drive.usercontent.google.com") - add("Origin", "https://drive.google.com") - add("Referer", "https://drive.google.com/") - add("X-Drive-First-Party", "DriveWebUi") - add("X-Json-Requested", "true") - }.build() - - val newPostUrl = "https://drive.usercontent.google.com/uc?id=${it.id}&authuser=0&export=download" - - val newResponse = client.newCall( - POST(newPostUrl, headers = newPostHeaders, body = commonEmptyRequestBody), - ).execute().parseAs<DownloadResponse> { JSON_REGEX.find(it)!!.groupValues[1] } - - val downloadHeaders = headers.newBuilder().apply { - add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8") - add("Connection", "keep-alive") - add("Cookie", getCookie("https://drive.usercontent.google.com")) - add("Host", "drive.usercontent.google.com") - }.build() - - client.newCall( - GET(newResponse.downloadUrl, headers = downloadHeaders), - ).execute().parseAs<DetailsJson>().let { t -> - t.title?.let { anime.title = it } - t.author?.let { anime.author = it } - t.artist?.let { anime.artist = it } - t.description?.let { anime.description = it } - t.genre?.let { anime.genre = it.joinToString(", ") } - t.status?.let { anime.status = it.toIntOrNull() ?: SAnime.UNKNOWN } - } - } - - return anime - } - - override fun animeDetailsParse(response: Response): SAnime = throw UnsupportedOperationException() - - // ============================== Episodes ============================== - - override suspend fun getEpisodeList(anime: SAnime): List<SEpisode> { - val episodeList = mutableListOf<SEpisode>() - val parsed = json.decodeFromString<LinkData>(anime.url) - - if (parsed.type == "single") { - return listOf( - SEpisode.create().apply { - name = "Video" - scanlator = parsed.info!!.size - url = parsed.url - episode_number = 1F - date_upload = -1L - }, - ) - } - - val match = DRIVE_FOLDER_REGEX.matchEntire(parsed.url)!! // .groups["id"]!!.value - val maxRecursionDepth = match.groups["depth"]?.let { - it.value.substringAfter("#").substringBefore(",").toInt() - } ?: 2 - val (start, stop) = match.groups["range"]?.let { - it.value.substringAfter(",").split(",").map { it.toInt() } - } ?: listOf(null, null) - - fun traverseFolder(folderUrl: String, path: String, recursionDepth: Int = 0) { - if (recursionDepth == maxRecursionDepth) return - - val folderId = DRIVE_FOLDER_REGEX.matchEntire(folderUrl)!!.groups["id"]!!.value - - val driveDocument = try { - client.newCall(GET(folderUrl, headers = getHeaders)).execute().asJsoup() - } catch (a: ProtocolException) { - throw Exception("Unable to get items, check webview") - } - - if (driveDocument.selectFirst("title:contains(Error 404 \\(Not found\\))") != null) return - - var pageToken: String? = "" - var counter = 1 - - while (pageToken != null) { - val response = client.newCall( - createPost(driveDocument, folderId, pageToken), - ).execute() - - val parsed = response.parseAs<PostResponse> { - JSON_REGEX.find(it)!!.groupValues[1] - } - - if (parsed.items == null) throw Exception("Failed to load items, please log in through webview") - parsed.items.forEachIndexed { index, it -> - if (it.mimeType.startsWith("video")) { - val size = it.fileSize?.toLongOrNull()?.let { formatBytes(it) } ?: "" - val pathName = if (preferences.trimEpisodeInfo) path.trimInfo() else path - - if (start != null && maxRecursionDepth == 1 && counter < start) { - counter++ - return@forEachIndexed - } - if (stop != null && maxRecursionDepth == 1 && counter > stop) return - - episodeList.add( - SEpisode.create().apply { - name = - if (preferences.trimEpisodeName) it.title.trimInfo() else it.title - url = "https://drive.google.com/uc?id=${it.id}" - episode_number = - ITEM_NUMBER_REGEX.find(it.title.trimInfo())?.groupValues?.get(1) - ?.toFloatOrNull() ?: (index + 1).toFloat() - date_upload = -1L - scanlator = if (preferences.scanlatorOrder) { - "/$pathName • $size" - } else { - "$size • /$pathName" - } - }, - ) - counter++ - } - if (it.mimeType.endsWith(".folder")) { - traverseFolder( - "https://drive.google.com/drive/folders/${it.id}", - if (path.isEmpty()) it.title else "$path/${it.title}", - recursionDepth + 1, - ) - } - } - - pageToken = parsed.nextPageToken - } - } - - traverseFolder(parsed.url, "") - - return episodeList.reversed() - } - - override fun episodeListParse(response: Response): List<SEpisode> = throw UnsupportedOperationException() - - // ============================ Video Links ============================= - - override suspend fun getVideoList(episode: SEpisode): List<Video> = - GoogleDriveExtractor(client, headers).videosFromUrl(episode.url.substringAfter("?id=")) - - // ============================= Utilities ============================== - - private fun addSinglePage(folderUrl: String): AnimesPage { - val match = - DRIVE_FOLDER_REGEX.matchEntire(folderUrl) ?: throw Exception("Invalid drive url") - val recurDepth = match.groups["depth"]?.value ?: "" - - val anime = SAnime.create().apply { - title = match.groups["name"]?.value?.substringAfter("[")?.substringBeforeLast("]") - ?: "Folder" - url = LinkData( - "https://drive.google.com/drive/folders/${match.groups["id"]!!.value}$recurDepth", - "multi", - ).toJsonString() - thumbnail_url = "" - } - return AnimesPage(listOf(anime), false) - } - - private fun createPost( - document: Document, - folderId: String, - pageToken: String?, - getMultiFormPath: (String, String, String) -> String = { folderIdStr, nextPageTokenStr, keyStr -> - defaultGetRequest(folderIdStr, nextPageTokenStr, keyStr) - }, - ): Request { - val keyScript = document.select("script").first { script -> - KEY_REGEX.find(script.data()) != null - }.data() - val key = KEY_REGEX.find(keyScript)?.groupValues?.get(1) ?: "" - - val versionScript = document.select("script").first { script -> - KEY_REGEX.find(script.data()) != null - }.data() - val driveVersion = VERSION_REGEX.find(versionScript)?.groupValues?.get(1) ?: "" - val sapisid = - client.cookieJar.loadForRequest("https://drive.google.com".toHttpUrl()).firstOrNull { - it.name == "SAPISID" || it.name == "__Secure-3PAPISID" - }?.value ?: "" - - val requestUrl = getMultiFormPath(folderId, pageToken ?: "", key) - val body = """--$BOUNDARY - |content-type: application/http - |content-transfer-encoding: binary - | - |GET $requestUrl - |X-Goog-Drive-Client-Version: $driveVersion - |authorization: ${generateSapisidhashHeader(sapisid)} - |x-goog-authuser: 0 - | - |--$BOUNDARY--""".trimMargin("|") - .toRequestBody("multipart/mixed; boundary=\"$BOUNDARY\"".toMediaType()) - - val postUrl = buildString { - append("https://clients6.google.com/batch/drive/v2internal") - append("?${'$'}ct=multipart/mixed; boundary=\"$BOUNDARY\"") - append("&key=$key") - } - - val postHeaders = headers.newBuilder().apply { - add("Content-Type", "text/plain; charset=UTF-8") - add("Origin", "https://drive.google.com") - add("Cookie", getCookie("https://drive.google.com")) - }.build() - - return POST(postUrl, body = body, headers = postHeaders) - } - - private fun parsePage( - request: Request, - page: Int, - genMultiFormReq: ((String, String, String) -> String)? = null, - ): AnimesPage { - val animeList = mutableListOf<SAnime>() - - val recurDepth = request.url.encodedFragment?.let { "#$it" } ?: "" - - val folderId = DRIVE_FOLDER_REGEX.matchEntire(request.url.toString())!!.groups["id"]!!.value - - val driveDocument = try { - client.newCall(request).execute().asJsoup() - } catch (a: ProtocolException) { - throw Exception("Unable to get items, check webview") - } - - if (driveDocument.selectFirst("title:contains(Error 404 \\(Not found\\))") != null) { - return AnimesPage(emptyList(), false) - } - - if (page == 1) nextPageToken = "" - val post = if (genMultiFormReq == null) { - createPost(driveDocument, folderId, nextPageToken) - } else { - createPost( - driveDocument, - folderId, - nextPageToken, - genMultiFormReq, - ) - } - val response = client.newCall(post).execute() - - val parsed = response.parseAs<PostResponse> { - JSON_REGEX.find(it)!!.groupValues[1] - } - - if (parsed.items == null) throw Exception("Failed to load items, please log in through webview") - parsed.items.forEachIndexed { index, it -> - if (it.mimeType.startsWith("video")) { - animeList.add( - SAnime.create().apply { - title = if (preferences.trimAnimeInfo) it.title.trimInfo() else it.title - url = LinkData( - "https://drive.google.com/uc?id=${it.id}", - "single", - LinkDataInfo( - it.title, - it.fileSize?.toLongOrNull()?.let { formatBytes(it) } ?: "", - ), - ).toJsonString() - thumbnail_url = "" - }, - ) - } - if (it.mimeType.endsWith(".folder")) { - animeList.add( - SAnime.create().apply { - title = if (preferences.trimAnimeInfo) it.title.trimInfo() else it.title - url = LinkData( - "https://drive.google.com/drive/folders/${it.id}$recurDepth", - "multi", - ).toJsonString() - thumbnail_url = "" - }, - ) - } - } - - nextPageToken = parsed.nextPageToken - - return AnimesPage(animeList, nextPageToken != null) - } - - // https://github.com/yt-dlp/yt-dlp/blob/8f0be90ecb3b8d862397177bb226f17b245ef933/yt_dlp/extractor/youtube.py#L573 - private fun generateSapisidhashHeader( - SAPISID: String, - origin: String = "https://drive.google.com", - ): String { - val timeNow = System.currentTimeMillis() / 1000 - // SAPISIDHASH algorithm from https://stackoverflow.com/a/32065323 - val sapisidhash = MessageDigest - .getInstance("SHA-1") - .digest("$timeNow $SAPISID $origin".toByteArray()) - .joinToString("") { "%02x".format(it) } - return "SAPISIDHASH ${timeNow}_$sapisidhash" - } - - private fun String.trimInfo(): String { - var newString = this.replaceFirst("""^\[\w+\] ?""".toRegex(), "") - val regex = """( ?\[[\s\w-]+\]| ?\([\s\w-]+\))(\.mkv|\.mp4|\.avi)?${'$'}""".toRegex() - - while (regex.containsMatchIn(newString)) { - newString = regex.replace(newString) { matchResult -> - matchResult.groups[2]?.value ?: "" - } - } - - return newString.trim() - } - - private fun formatBytes(bytes: Long): String { - return when { - bytes >= 1_000_000_000 -> "%.2f GB".format(bytes / 1_000_000_000.0) - bytes >= 1_000_000 -> "%.2f MB".format(bytes / 1_000_000.0) - bytes >= 1_000 -> "%.2f KB".format(bytes / 1_000.0) - bytes > 1 -> "$bytes bytes" - bytes == 1L -> "$bytes byte" - else -> "" - } - } - - private fun getCookie(url: String): String { - val cookieList = client.cookieJar.loadForRequest(url.toHttpUrl()) - return if (cookieList.isNotEmpty()) { - cookieList.joinToString("; ") { "${it.name}=${it.value}" } - } else { - "" - } - } - - private fun LinkData.toJsonString(): String { - return json.encodeToString(this) - } - - private fun isFolder(text: String) = DRIVE_FOLDER_REGEX matches text - - /* - * Stolen from the MangaDex manga extension - * - * This will likely need to be removed or revisited when the app migrates the - * extension preferences screen to Compose. - */ - private fun setupEditTextFolderValidator(editText: EditText) { - editText.addTextChangedListener( - object : TextWatcher { - - override fun beforeTextChanged( - s: CharSequence?, - start: Int, - count: Int, - after: Int, - ) { - // Do nothing. - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - // Do nothing. - } - - override fun afterTextChanged(editable: Editable?) { - requireNotNull(editable) - - val text = editable.toString() - - val isValid = text.isBlank() || text - .split(";") - .map(String::trim) - .all(::isFolder) - - editText.error = if (!isValid) { - "${ - text.split(";").first { !isFolder(it) } - } is not a valid google drive folder" - } else { - null - } - editText.rootView.findViewById<Button>(android.R.id.button1) - ?.isEnabled = editText.error == null - } - }, - ) - } - - companion object { - private const val DOMAIN_PREF_KEY = "domain_list" - private const val DOMAIN_PREF_DEFAULT = "" - - private const val TRIM_ANIME_KEY = "trim_anime_info" - private const val TRIM_ANIME_DEFAULT = false - - private const val TRIM_EPISODE_NAME_KEY = "trim_episode_name" - private const val TRIM_EPISODE_NAME_DEFAULT = true - - private const val TRIM_EPISODE_INFO_KEY = "trim_episode_info" - private const val TRIM_EPISODE_INFO_DEFAULT = false - - private const val SCANLATOR_ORDER_KEY = "scanlator_order" - private const val SCANLATOR_ORDER_DEFAULT = false - - private val DRIVE_FOLDER_REGEX = Regex( - """(?<name>\[[^\[\];]+\])?https?:\/\/(?:docs|drive)\.google\.com\/drive(?:\/[^\/]+)*?\/folders\/(?<id>[\w-]{28,})(?:\?[^;#]+)?(?<depth>#\d+(?<range>,\d+,\d+)?)?${'$'}""", - ) - private val KEY_REGEX = Regex(""""(\w{39})"""") - private val VERSION_REGEX = Regex(""""([^"]+web-frontend[^"]+)"""") - private val JSON_REGEX = Regex("""(?:)\s*(\{(.+)\})\s*(?:)""", RegexOption.DOT_MATCHES_ALL) - private const val BOUNDARY = "=====vc17a3rwnndj=====" - - private val ITEM_NUMBER_REGEX = Regex(""" - (?:S\d+E)?(\d+)\b""") - } - - private val SharedPreferences.domainList - get() = getString(DOMAIN_PREF_KEY, DOMAIN_PREF_DEFAULT)!! - - private val SharedPreferences.trimAnimeInfo - get() = getBoolean(TRIM_ANIME_KEY, TRIM_ANIME_DEFAULT) - - private val SharedPreferences.trimEpisodeName - get() = getBoolean(TRIM_EPISODE_NAME_KEY, TRIM_EPISODE_NAME_DEFAULT) - - private val SharedPreferences.trimEpisodeInfo - get() = getBoolean(TRIM_EPISODE_INFO_KEY, TRIM_EPISODE_INFO_DEFAULT) - - private val SharedPreferences.scanlatorOrder - get() = getBoolean(SCANLATOR_ORDER_KEY, SCANLATOR_ORDER_DEFAULT) - - // ============================== Settings ============================== - - override fun setupPreferenceScreen(screen: PreferenceScreen) { - EditTextPreference(screen.context).apply { - key = DOMAIN_PREF_KEY - title = "Enter drive paths to be shown in extension" - summary = """Enter links of drive folders to be shown in extension - |Enter as a semicolon `;` separated list - """.trimMargin() - this.setDefaultValue(DOMAIN_PREF_DEFAULT) - dialogTitle = "Path list" - dialogMessage = """Separate paths with a semicolon. - |- (optional) Add [] before url to customize name. For example: [drive 5]https://drive.google.com/drive/folders/whatever - |- (optional) add #<integer> to limit the depth of recursion when loading episodes, defaults is 2. For example: https://drive.google.com/drive/folders/whatever#5 - |- (optional) add #depth,start,stop (all integers) to specify range when loading episodes. Only works if depth is 1. For example: https://drive.google.com/drive/folders/whatever#1,2,6 - """.trimMargin() - - setOnBindEditTextListener(::setupEditTextFolderValidator) - - setOnPreferenceChangeListener { _, newValue -> - try { - val res = - preferences.edit().putString(DOMAIN_PREF_KEY, newValue as String).commit() - Toast.makeText( - screen.context, - "Restart Aniyomi to apply changes", - Toast.LENGTH_LONG, - ).show() - res - } catch (e: java.lang.Exception) { - e.printStackTrace() - false - } - } - }.also(screen::addPreference) - - SwitchPreferenceCompat(screen.context).apply { - key = TRIM_ANIME_KEY - title = "Trim info from anime titles" - setDefaultValue(TRIM_ANIME_DEFAULT) - setOnPreferenceChangeListener { _, newValue -> - preferences.edit().putBoolean(key, newValue as Boolean).commit() - } - }.also(screen::addPreference) - - SwitchPreferenceCompat(screen.context).apply { - key = TRIM_EPISODE_NAME_KEY - title = "Trim info from episode name" - setDefaultValue(TRIM_EPISODE_NAME_DEFAULT) - setOnPreferenceChangeListener { _, newValue -> - preferences.edit().putBoolean(key, newValue as Boolean).commit() - } - }.also(screen::addPreference) - - SwitchPreferenceCompat(screen.context).apply { - key = TRIM_EPISODE_INFO_KEY - title = "Trim info from episode info" - setDefaultValue(TRIM_EPISODE_INFO_DEFAULT) - setOnPreferenceChangeListener { _, newValue -> - preferences.edit().putBoolean(key, newValue as Boolean).commit() - } - }.also(screen::addPreference) - - SwitchPreferenceCompat(screen.context).apply { - key = SCANLATOR_ORDER_KEY - title = "Switch order of file path and size" - setDefaultValue(SCANLATOR_ORDER_DEFAULT) - setOnPreferenceChangeListener { _, newValue -> - preferences.edit().putBoolean(key, newValue as Boolean).commit() - } - }.also(screen::addPreference) - } -} diff --git a/src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/GoogleDriveDto.kt b/src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/GoogleDriveDto.kt deleted file mode 100644 index 790ac919..00000000 --- a/src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/GoogleDriveDto.kt +++ /dev/null @@ -1,45 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.all.googledrive - -import kotlinx.serialization.Serializable - -@Serializable -data class PostResponse( - val nextPageToken: String? = null, - val items: List<ResponseItem>? = null, -) { - @Serializable - data class ResponseItem( - val id: String, - val title: String, - val mimeType: String, - val fileSize: String? = null, - ) -} - -@Serializable -data class LinkData( - val url: String, - val type: String, - val info: LinkDataInfo? = null, -) - -@Serializable -data class LinkDataInfo( - val title: String, - val size: String, -) - -@Serializable -data class DownloadResponse( - val downloadUrl: String, -) - -@Serializable -data class DetailsJson( - val title: String? = null, - val author: String? = null, - val artist: String? = null, - val description: String? = null, - val genre: List<String>? = null, - val status: String? = null, -) diff --git a/src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/GoogleDriveMultiFormReqs.kt b/src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/GoogleDriveMultiFormReqs.kt deleted file mode 100644 index b9315a9e..00000000 --- a/src/all/googledrive/src/eu/kanade/tachiyomi/animeextension/all/googledrive/GoogleDriveMultiFormReqs.kt +++ /dev/null @@ -1,18 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.all.googledrive - -fun searchReq(parentId: String, query: String): (String, String, String) -> String { - return searchReqWithType(parentId, query, type = FOLDER_MIMETYPE) -} - -fun searchReqWithType(parentId: String, query: String, type: String): (String, String, String) -> String { - return { _: String, nextPageToken: String, key: String -> - "/drive/v2internal/files?openDrive=false&reason=111&syncType=0&errorRecovery=false&q=title%20contains%20'$query'$type%20and%20trashed%20%3D%20false%20and%20'$parentId'%20in%20ancestors&fields=kind%2CnextPageToken%2Citems(kind%2CmodifiedDate%2ChasVisitorPermissions%2CcontainsUnsubscribedChildren%2CmodifiedByMeDate%2ClastViewedByMeDate%2CalternateLink%2CfileSize%2Cowners(kind%2CpermissionId%2CemailAddressFromAccount%2Cid)%2ClastModifyingUser(kind%2CpermissionId%2CemailAddressFromAccount%2Cid)%2CcustomerId%2CancestorHasAugmentedPermissions%2ChasThumbnail%2CthumbnailVersion%2Ctitle%2Cid%2CresourceKey%2CabuseIsAppealable%2CabuseNoticeReason%2Cshared%2CaccessRequestsCount%2CsharedWithMeDate%2CuserPermission(role)%2CexplicitlyTrashed%2CmimeType%2CquotaBytesUsed%2Ccopyable%2Csubscribed%2CfolderColor%2ChasChildFolders%2CfileExtension%2CprimarySyncParentId%2CsharingUser(kind%2CpermissionId%2CemailAddressFromAccount%2Cid)%2CflaggedForAbuse%2CfolderFeatures%2Cspaces%2CsourceAppId%2Crecency%2CrecencyReason%2Cversion%2CactionItems%2CteamDriveId%2ChasAugmentedPermissions%2CcreatedDate%2CprimaryDomainName%2CorganizationDisplayName%2CpassivelySubscribed%2CtrashingUser(kind%2CpermissionId%2CemailAddressFromAccount%2Cid)%2CtrashedDate%2Cparents(id)%2Ccapabilities(canMoveItemIntoTeamDrive%2CcanUntrash%2CcanModifyContentRestriction%2CcanMoveItemWithinTeamDrive%2CcanMoveItemOutOfTeamDrive%2CcanDeleteChildren%2CcanTrashChildren%2CcanRequestApproval%2CcanReadCategoryMetadata%2CcanEditCategoryMetadata%2CcanAddMyDriveParent%2CcanRemoveMyDriveParent%2CcanShareChildFiles%2CcanShareChildFolders%2CcanRead%2CcanMoveItemWithinDrive%2CcanMoveChildrenWithinDrive%2CcanAddFolderFromAnotherDrive%2CcanChangeSecurityUpdateEnabled%2CcanBlockOwner%2CcanReportSpamOrAbuse%2CcanCopy%2CcanDownload%2CcanEdit%2CcanAddChildren%2CcanDelete%2CcanRemoveChildren%2CcanShare%2CcanTrash%2CcanRename%2CcanReadTeamDrive%2CcanMoveTeamDriveItem)%2CcontentRestrictions(readOnly)%2CapprovalMetadata(approvalVersion%2CapprovalSummaries%2ChasIncomingApproval)%2CshortcutDetails(targetId%2CtargetMimeType%2CtargetLookupStatus%2CtargetFile%2CcanRequestAccessToTarget)%2CspamMetadata(markedAsSpamDate%2CinSpamView)%2Clabels(starred%2Ctrashed%2Crestricted%2Cviewed))%2CincompleteSearch&appDataFilter=NO_APP_DATA&spaces=drive&pageToken=$nextPageToken&maxResults=50&rawUserQuery=parent%3A$parentId%20type%3Afolder%20title%3A$query&supportsTeamDrives=true&includeItemsFromAllDrives=true&corpora=default&orderBy=relevance%20desc&retryCount=0&key=$key HTTP/1.1" - } -} - -fun defaultGetRequest(folderId: String, nextPageToken: String, key: String): String { - return "/drive/v2internal/files?openDrive=false&reason=102&syncType=0&errorRecovery=false&q=trashed%20%3D%20false%20and%20'$folderId'%20in%20parents&fields=kind%2CnextPageToken%2Citems(kind%2CmodifiedDate%2ChasVisitorPermissions%2CcontainsUnsubscribedChildren%2CmodifiedByMeDate%2ClastViewedByMeDate%2CalternateLink%2CfileSize%2Cowners(kind%2CpermissionId%2CemailAddressFromAccount%2Cdomain%2Cid)%2ClastModifyingUser(kind%2CpermissionId%2CemailAddressFromAccount%2Cid)%2CcustomerId%2CancestorHasAugmentedPermissions%2ChasThumbnail%2CthumbnailVersion%2Ctitle%2Cid%2CresourceKey%2CabuseIsAppealable%2CabuseNoticeReason%2Cshared%2CaccessRequestsCount%2CsharedWithMeDate%2CuserPermission(role)%2CexplicitlyTrashed%2CmimeType%2CquotaBytesUsed%2Ccopyable%2Csubscribed%2CfolderColor%2ChasChildFolders%2CfileExtension%2CprimarySyncParentId%2CsharingUser(kind%2CpermissionId%2CemailAddressFromAccount%2Cid)%2CflaggedForAbuse%2CfolderFeatures%2Cspaces%2CsourceAppId%2Crecency%2CrecencyReason%2Cversion%2CactionItems%2CteamDriveId%2ChasAugmentedPermissions%2CcreatedDate%2CprimaryDomainName%2CorganizationDisplayName%2CpassivelySubscribed%2CtrashingUser(kind%2CpermissionId%2CemailAddressFromAccount%2Cid)%2CtrashedDate%2Cparents(id)%2Ccapabilities(canMoveItemIntoTeamDrive%2CcanUntrash%2CcanMoveItemWithinTeamDrive%2CcanMoveItemOutOfTeamDrive%2CcanDeleteChildren%2CcanTrashChildren%2CcanRequestApproval%2CcanReadCategoryMetadata%2CcanEditCategoryMetadata%2CcanAddMyDriveParent%2CcanRemoveMyDriveParent%2CcanShareChildFiles%2CcanShareChildFolders%2CcanRead%2CcanMoveItemWithinDrive%2CcanMoveChildrenWithinDrive%2CcanAddFolderFromAnotherDrive%2CcanChangeSecurityUpdateEnabled%2CcanBlockOwner%2CcanReportSpamOrAbuse%2CcanCopy%2CcanDownload%2CcanEdit%2CcanAddChildren%2CcanDelete%2CcanRemoveChildren%2CcanShare%2CcanTrash%2CcanRename%2CcanReadTeamDrive%2CcanMoveTeamDriveItem)%2CcontentRestrictions(readOnly)%2CapprovalMetadata(approvalVersion%2CapprovalSummaries%2ChasIncomingApproval)%2CshortcutDetails(targetId%2CtargetMimeType%2CtargetLookupStatus%2CtargetFile%2CcanRequestAccessToTarget)%2CspamMetadata(markedAsSpamDate%2CinSpamView)%2Clabels(starred%2Ctrashed%2Crestricted%2Cviewed))%2CincompleteSearch&appDataFilter=NO_APP_DATA&spaces=drive&pageToken=$nextPageToken&maxResults=100&supportsTeamDrives=true&includeItemsFromAllDrives=true&corpora=default&orderBy=folder%2Ctitle_natural%20asc&retryCount=0&key=$key HTTP/1.1" -} - -const val IMAGE_MIMETYPE = "%20and%20(mimeType%20in%20'image%2Fbmp'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fbmp%22'%2C%20'image%2Fjpeg'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fjpeg%22'%2C%20'image%2Fpng'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fpng%22'%2C%20'image%2Fgif'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fgif%22'%2C%20'image%2Ftiff'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Ftiff%22'%2C%20'image%2Fx-ms-bmp'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fx-ms-bmp%22'%2C%20'image%2Fsvg%2Bxml'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fsvg%2Bxml%22'%2C%20'image%2Fvnd.microsoft.icon'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fvnd.microsoft.icon%22'%2C%20'image%2Fheif'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fheif%22'%2C%20'image%2Fheic'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fheic%22'%2C%20'image%2Fwebp'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fwebp%22'%20or%20shortcutDetails.targetMimeType%20in%20'image%2Fbmp'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fbmp%22'%2C%20'image%2Fjpeg'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fjpeg%22'%2C%20'image%2Fpng'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fpng%22'%2C%20'image%2Fgif'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fgif%22'%2C%20'image%2Ftiff'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Ftiff%22'%2C%20'image%2Fx-ms-bmp'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fx-ms-bmp%22'%2C%20'image%2Fsvg%2Bxml'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fsvg%2Bxml%22'%2C%20'image%2Fvnd.microsoft.icon'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fvnd.microsoft.icon%22'%2C%20'image%2Fheif'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fheif%22'%2C%20'image%2Fheic'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fheic%22'%2C%20'image%2Fwebp'%2C%20'application%2Fvnd.google-gsuite.encrypted%3B%20content%3D%22image%2Fwebp%22')" -const val FOLDER_MIMETYPE = "%20and%20(mimeType%20in%20'application%2Fvnd.google-apps.folder'%20or%20shortcutDetails.targetMimeType%20in%20'application%2Fvnd.google-apps.folder')" diff --git a/src/all/googledriveindex/build.gradle b/src/all/googledriveindex/build.gradle deleted file mode 100644 index c74195a5..00000000 --- a/src/all/googledriveindex/build.gradle +++ /dev/null @@ -1,7 +0,0 @@ -ext { - extName = 'GoogleDriveIndex' - extClass = '.GoogleDriveIndex' - extVersionCode = 7 -} - -apply from: "$rootDir/common.gradle" diff --git a/src/all/googledriveindex/res/mipmap-hdpi/ic_launcher.png b/src/all/googledriveindex/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index ef9be5d6d84828078ac39157b25e3bf5879aca58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3277 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 LNkvXXu0mjfeYZ<o diff --git a/src/all/googledriveindex/res/mipmap-mdpi/ic_launcher.png b/src/all/googledriveindex/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 85f1a3fd0ccf8c4d5844e34d0bc253ca8d8f73e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1794 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 diff --git a/src/all/googledriveindex/res/mipmap-xhdpi/ic_launcher.png b/src/all/googledriveindex/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 109d821a74ea722b9048f4707f44cd5dd1274539..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4477 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 P00000NkvXXu0mjfjPWs4 diff --git a/src/all/googledriveindex/res/mipmap-xxhdpi/ic_launcher.png b/src/all/googledriveindex/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index e92f661f0a59790dfdc87a416d1e206afed75bc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8246 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 diff --git a/src/all/googledriveindex/res/mipmap-xxxhdpi/ic_launcher.png b/src/all/googledriveindex/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 419343c22f9eb41538eb5e417ac72a6d31ac9fd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12092 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 by<l5J20Q}Y{a#+Fcz~j;s>~lL<ADDID)<G| diff --git a/src/all/googledriveindex/res/web_hi_res_512.png b/src/all/googledriveindex/res/web_hi_res_512.png deleted file mode 100644 index 8190c6fc2fddee948046b3ec53f7f1b58477ed7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62731 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� 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 diff --git a/src/all/googledriveindex/src/eu/kanade/tachiyomi/animeextension/all/googledriveindex/GoogleDriveIndex.kt b/src/all/googledriveindex/src/eu/kanade/tachiyomi/animeextension/all/googledriveindex/GoogleDriveIndex.kt deleted file mode 100644 index bfb525b6..00000000 --- a/src/all/googledriveindex/src/eu/kanade/tachiyomi/animeextension/all/googledriveindex/GoogleDriveIndex.kt +++ /dev/null @@ -1,743 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.all.googledriveindex - -import android.app.Application -import android.content.SharedPreferences -import android.text.Editable -import android.text.TextWatcher -import android.util.Base64 -import android.widget.Button -import android.widget.EditText -import android.widget.Toast -import androidx.preference.EditTextPreference -import androidx.preference.PreferenceScreen -import androidx.preference.SwitchPreferenceCompat -import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource -import eu.kanade.tachiyomi.animesource.model.AnimeFilter -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.Video -import eu.kanade.tachiyomi.animesource.online.AnimeHttpSource -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.POST -import eu.kanade.tachiyomi.network.awaitSuccess -import eu.kanade.tachiyomi.util.asJsoup -import eu.kanade.tachiyomi.util.parseAs -import kotlinx.serialization.encodeToString -import kotlinx.serialization.json.Json -import okhttp3.Credentials -import okhttp3.HttpUrl -import okhttp3.HttpUrl.Companion.toHttpUrl -import okhttp3.MediaType.Companion.toMediaType -import okhttp3.Request -import okhttp3.RequestBody.Companion.toRequestBody -import okhttp3.Response -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get -import uy.kohesive.injekt.injectLazy -import java.net.URLEncoder - -class GoogleDriveIndex : ConfigurableAnimeSource, AnimeHttpSource() { - - override val name = "GoogleDriveIndex" - - override val baseUrl by lazy { - preferences.domainList.split(",").first().removeName() - } - - override val lang = "all" - - private var pageToken: String? = "" - - override val supportsLatest = false - - private val json: Json by injectLazy() - - private val preferences: SharedPreferences by lazy { - Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000) - } - - override val client = network.client.newBuilder() - .addInterceptor { chain -> - var request = chain.request() - - if (request.url.username.isNotBlank() && request.url.password.isNotBlank()) { - - val credential = Credentials.basic(request.url.username, request.url.password) - request = request.newBuilder() - .header("Authorization", credential) - .build() - - val newUrl = request.url.newBuilder() - .username("") - .password("") - .build() - - request = request.newBuilder() - .url(newUrl) - .build() - } - - chain.proceed(request) - } - .build() - - // ============================== Popular =============================== - - override fun popularAnimeRequest(page: Int): Request { - require(baseUrl.isNotEmpty()) { "Enter drive path(s) in extension settings." } - require(baseUrl.toHttpUrl().host != "drive.google.com") { - "This extension is only for Google Drive Index sites, not drive.google.com folders." - } - - if (page == 1) pageToken = "" - val popHeaders = headers.newBuilder() - .add("Accept", "*/*") - .add("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") - .add("Host", baseUrl.toHttpUrl().host) - .add("Origin", "https://${baseUrl.toHttpUrl().host}") - .add("Referer", baseUrl.asReferer()) - .add("X-Requested-With", "XMLHttpRequest") - .build() - - val popBody = "password=&page_token=$pageToken&page_index=${page - 1}".toRequestBody("application/x-www-form-urlencoded".toMediaType()) - - return POST(baseUrl, body = popBody, headers = popHeaders) - } - - override fun popularAnimeParse(response: Response): AnimesPage = parsePage(response, baseUrl) - - // =============================== Latest =============================== - - override fun latestUpdatesRequest(page: Int): Request = throw UnsupportedOperationException() - - override fun latestUpdatesParse(response: Response): AnimesPage = throw UnsupportedOperationException() - - // =============================== Search =============================== - - override fun searchAnimeParse(response: Response): AnimesPage = throw UnsupportedOperationException() - - override suspend fun getSearchAnime( - page: Int, - query: String, - filters: AnimeFilterList, - ): AnimesPage { - val filterList = if (filters.isEmpty()) getFilterList() else filters - val urlFilter = filterList.find { it is URLFilter } as URLFilter - - return if (urlFilter.state.isEmpty()) { - val req = searchAnimeRequest(page, query, filters) - client.newCall(req).awaitSuccess() - .let { response -> - searchAnimeParse(response, req.url.toString()) - } - } else { - addSinglePage(urlFilter.state) - } - } - - private fun addSinglePage(inputUrl: String): AnimesPage { - val match = URL_REGEX.matchEntire(inputUrl) ?: throw Exception("Invalid url") - val anime = SAnime.create().apply { - title = match.groups["name"]?.value?.substringAfter("[")?.substringBeforeLast("]") ?: "Folder" - url = LinkData( - type = "multi", - url = match.groups["url"]!!.value, - fragment = inputUrl.removeName().toHttpUrl().encodedFragment, - ).toJsonString() - thumbnail_url = "" - } - return AnimesPage(listOf(anime), false) - } - - override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request { - require(baseUrl.isNotEmpty()) { "Enter drive path(s) in extension settings." } - require(baseUrl.toHttpUrl().host != "drive.google.com") { - "This extension is only for Google Drive Index sites, not drive.google.com folders." - } - - val filterList = if (filters.isEmpty()) getFilterList() else filters - val serverFilter = filterList.find { it is ServerFilter } as ServerFilter - val serverUrl = serverFilter.toUriPart() - - if (page == 1) pageToken = "" - val searchHeaders = headers.newBuilder() - .add("Accept", "*/*") - .add("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") - .add("Host", serverUrl.toHttpUrl().host) - .add("Origin", "https://${serverUrl.toHttpUrl().host}") - .add("X-Requested-With", "XMLHttpRequest") - - return when { - query.isBlank() -> { - val popBody = "password=&page_token=$pageToken&page_index=${page - 1}".toRequestBody("application/x-www-form-urlencoded".toMediaType()) - - POST( - serverUrl, - body = popBody, - headers = searchHeaders.add("Referer", serverUrl.asReferer()).build(), - ) - } - else -> { - val cleanQuery = query.replace(" ", "+") - val searchUrl = "https://${serverUrl.toHttpUrl().hostAndCred()}/${serverUrl.toHttpUrl().pathSegments[0]}search" - val popBody = "q=$cleanQuery&page_token=$pageToken&page_index=${page - 1}".toRequestBody("application/x-www-form-urlencoded".toMediaType()) - - POST( - searchUrl, - body = popBody, - headers = searchHeaders.add("Referer", "$searchUrl?q=$cleanQuery").build(), - ) - } - } - } - - private fun searchAnimeParse(response: Response, url: String): AnimesPage = parsePage(response, url) - - // ============================== FILTERS =============================== - - override fun getFilterList(): AnimeFilterList = AnimeFilterList( - AnimeFilter.Header("Text search will only search inside selected server"), - ServerFilter(getDomains()), - AnimeFilter.Header("Add single folder"), - URLFilter(), - ) - - private class ServerFilter(domains: Array<Pair<String, String>>) : UriPartFilter( - "Select server", - domains, - ) - - private fun getDomains(): Array<Pair<String, String>> { - if (preferences.domainList.isBlank()) return emptyArray() - return preferences.domainList.split(",").map { - val match = URL_REGEX.matchEntire(it)!! - val name = match.groups["name"]?.let { - it.value.substringAfter("[").substringBeforeLast("]") - } - Pair(name ?: it.toHttpUrl().encodedPath, it.removeName()) - }.toTypedArray() - } - - private open class UriPartFilter(displayName: String, val vals: Array<Pair<String, String>>) : - AnimeFilter.Select<String>(displayName, vals.map { it.first }.toTypedArray()) { - fun toUriPart() = vals[state].second - } - - private class URLFilter : AnimeFilter.Text("Url") - - // =========================== Anime Details ============================ - - override suspend fun getAnimeDetails(anime: SAnime): SAnime { - val parsed = json.decodeFromString<LinkData>(anime.url) - val newParsed = if (parsed.type != "search") { - parsed - } else { - val idParsed = json.decodeFromString<IdUrl>(parsed.url) - val id2pathHeaders = headers.newBuilder() - .add("Accept", "*/*") - .add("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") - .add("Host", idParsed.url.toHttpUrl().host) - .add("Origin", "https://${idParsed.url.toHttpUrl().host}") - .add("Referer", URLEncoder.encode(idParsed.referer, "UTF-8")) - .add("X-Requested-With", "XMLHttpRequest") - .build() - - val postBody = "id=${idParsed.id}".toRequestBody("application/x-www-form-urlencoded".toMediaType()) - val slug = client.newCall( - POST(idParsed.url + "id2path", body = postBody, headers = id2pathHeaders), - ).execute().body.string() - - LinkData( - idParsed.type, - idParsed.url + slug, - parsed.info, - ) - } - - if (newParsed.type == "single") { - return anime - } - - var newToken: String? = "" - var newPageIndex = 0 - while (newToken != null) { - val popHeaders = headers.newBuilder() - .add("Accept", "*/*") - .add("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") - .add("Host", newParsed.url.toHttpUrl().host) - .add("Origin", "https://${newParsed.url.toHttpUrl().host}") - .add("Referer", URLEncoder.encode(newParsed.url, "UTF-8")) - .add("X-Requested-With", "XMLHttpRequest") - .build() - - val popBody = "password=&page_token=$newToken&page_index=$newPageIndex".toRequestBody("application/x-www-form-urlencoded".toMediaType()) - - val parsed = client.newCall( - POST(newParsed.url, body = popBody, headers = popHeaders), - ).execute().parseAs<ResponseData> { it.decrypt() } - - parsed.data.files.forEach { item -> - if (item.mimeType.startsWith("image/") && item.name.startsWith("cover", true)) { - anime.thumbnail_url = joinUrl(newParsed.url, item.name) - } - - if (item.name.equals("details.json", true)) { - val details = client.newCall( - GET(joinUrl(newParsed.url, item.name)), - ).execute().body.string() - val detailsParsed = json.decodeFromString<Details>(details) - detailsParsed.title?.let { anime.title = it } - detailsParsed.author?.let { anime.author = it } - detailsParsed.artist?.let { anime.artist = it } - detailsParsed.description?.let { anime.description = it } - detailsParsed.genre?.let { anime.genre = it.joinToString(", ") } - detailsParsed.status?.let { anime.status = it.toIntOrNull() ?: SAnime.UNKNOWN } - } - } - - newToken = parsed.nextPageToken - newPageIndex += 1 - } - - return anime - } - - override fun animeDetailsParse(response: Response): SAnime = throw UnsupportedOperationException() - - // ============================== Episodes ============================== - - override suspend fun getEpisodeList(anime: SAnime): List<SEpisode> { - val episodeList = mutableListOf<SEpisode>() - val parsed = json.decodeFromString<LinkData>(anime.url) - var counter = 1 - val maxRecursionDepth = parsed.fragment?.substringBefore(",")?.toInt() ?: 2 - val (start, stop) = if (parsed.fragment?.contains(",") == true) { - parsed.fragment.substringAfter(",").split(",").map { it.toInt() } - } else { - listOf(null, null) - } - - val newParsed = if (parsed.type != "search") { - parsed - } else { - val idParsed = json.decodeFromString<IdUrl>(parsed.url) - val id2pathHeaders = headers.newBuilder() - .add("Accept", "*/*") - .add("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") - .add("Host", idParsed.url.toHttpUrl().host) - .add("Origin", "https://${idParsed.url.toHttpUrl().host}") - .add("Referer", URLEncoder.encode(idParsed.referer, "UTF-8")) - .add("X-Requested-With", "XMLHttpRequest") - .build() - - val postBody = "id=${idParsed.id}".toRequestBody("application/x-www-form-urlencoded".toMediaType()) - val slug = client.newCall( - POST(idParsed.url + "id2path", body = postBody, headers = id2pathHeaders), - ).execute().body.string() - - LinkData( - idParsed.type, - idParsed.url + slug, - parsed.info, - ) - } - - if (newParsed.type == "single") { - val titleName = newParsed.url.toHttpUrl().pathSegments.last() - episodeList.add( - SEpisode.create().apply { - name = if (preferences.trimEpisodeName) titleName.trimInfo() else titleName - url = newParsed.url - episode_number = 1F - date_upload = -1L - scanlator = newParsed.info - }, - ) - } - - if (newParsed.type == "multi") { - val basePathCounter = newParsed.url.toHttpUrl().pathSize - - fun traverseDirectory(url: String, recursionDepth: Int = 0) { - if (recursionDepth == maxRecursionDepth) return - var newToken: String? = "" - var newPageIndex = 0 - - while (newToken != null) { - val popHeaders = headers.newBuilder() - .add("Accept", "*/*") - .add("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") - .add("Host", url.toHttpUrl().host) - .add("Origin", "https://${url.toHttpUrl().host}") - .add("Referer", URLEncoder.encode(url, "UTF-8")) - .add("X-Requested-With", "XMLHttpRequest") - .build() - - val popBody = "password=&page_token=$newToken&page_index=$newPageIndex".toRequestBody("application/x-www-form-urlencoded".toMediaType()) - - val parsed = client.newCall( - POST(url, body = popBody, headers = popHeaders), - ).execute().parseAs<ResponseData> { it.decrypt() } - - parsed.data.files.forEach { item -> - if (item.mimeType.endsWith("folder")) { - val newUrl = joinUrl(url, item.name).addSuffix("/") - traverseDirectory(newUrl, recursionDepth + 1) - } - if (item.mimeType.startsWith("video/")) { - if (start != null && maxRecursionDepth == 1 && counter < start) { - counter++ - return@forEach - } - if (stop != null && maxRecursionDepth == 1 && counter > stop) return - - val epUrl = joinUrl(url, item.name) - val paths = epUrl.toHttpUrl().pathSegments - - // Get season stuff - val season = if (paths.size == basePathCounter) { - "" - } else { - paths[basePathCounter - 1] - } - val seasonInfoRegex = """(\([\s\w-]+\))(?: ?\[[\s\w-]+\])?${'$'}""".toRegex() - val seasonInfo = if (seasonInfoRegex.containsMatchIn(season)) { - "${seasonInfoRegex.find(season)!!.groups[1]!!.value} • " - } else { - "" - } - - // Get other info - val extraInfo = if (paths.size > basePathCounter) { - "/" + paths.subList(basePathCounter - 1, paths.size - 1).joinToString("/") { it.trimInfo() } - } else { - "/" - } - val size = item.size?.toLongOrNull()?.let { formatFileSize(it) } - - episodeList.add( - SEpisode.create().apply { - name = if (preferences.trimEpisodeName) item.name.trimInfo() else item.name - this.url = epUrl - scanlator = "${if (size == null) "" else "$size"} • $seasonInfo$extraInfo" - date_upload = -1L - episode_number = counter.toFloat() - }, - ) - counter++ - } - } - - newToken = parsed.nextPageToken - newPageIndex += 1 - } - } - - traverseDirectory(newParsed.url) - } - - return episodeList.reversed() - } - - override fun episodeListParse(response: Response): List<SEpisode> = throw UnsupportedOperationException() - - // ============================ Video Links ============================= - - override suspend fun getVideoList(episode: SEpisode): List<Video> { - val url = episode.url - - val doc = client.newCall( - GET("$url?a=view"), - ).execute().asJsoup() - - val script = doc.selectFirst("script:containsData(videodomain)")?.data() - ?: doc.selectFirst("script:containsData(downloaddomain)")?.data() - ?: return listOf(Video(url, "Video", url)) - - if (script.contains("\"second_domain_for_dl\":false")) { - return listOf(Video(url, "Video", url)) - } - - val domainUrl = if (script.contains("videodomain", true)) { - script - .substringAfter("\"videodomain\":\"") - .substringBefore("\"") - } else { - script - .substringAfter("\"downloaddomain\":\"") - .substringBefore("\"") - } - - val videoUrl = if (domainUrl.isBlank()) { - url - } else { - domainUrl + url.toHttpUrl().encodedPath - } - - return listOf(Video(videoUrl, "Video", videoUrl)) - } - - // ============================= Utilities ============================== - private fun HttpUrl.hostAndCred(): String { - return if (this.password.isNotBlank() && this.username.isNotBlank()) { - "${this.username}:${this.password}@${this.host}" - } else { - this.host - } - } - - private fun joinUrl(path1: String, path2: String): String { - return path1.removeSuffix("/") + "/" + path2.removePrefix("/") - } - - private fun String.decrypt(): String { - return Base64.decode(this.reversed().substring(24, this.length - 20), Base64.DEFAULT).toString(Charsets.UTF_8) - } - - private fun String.addSuffix(suffix: String): String { - return if (this.endsWith(suffix)) { - this - } else { - this.plus(suffix) - } - } - - private fun String.trimInfo(): String { - var newString = this.replaceFirst("""^\[[\w-]+\] ?""".toRegex(), "") - val regex = """( ?\[[\s\w-]+\]| ?\([\s\w-]+\))(\.mkv|\.mp4|\.avi)?${'$'}""".toRegex() - - while (regex.containsMatchIn(newString)) { - newString = regex.replace(newString) { matchResult -> - matchResult.groups[2]?.value ?: "" - } - } - - return newString.trim() - } - - private fun formatFileSize(bytes: Long): String { - return when { - bytes >= 1_000_000_000 -> "%.2f GB".format(bytes / 1_000_000_000.0) - bytes >= 1_000_000 -> "%.2f MB".format(bytes / 1_000_000.0) - bytes >= 1_000 -> "%.2f KB".format(bytes / 1_000.0) - bytes > 1 -> "$bytes bytes" - bytes == 1L -> "$bytes byte" - else -> "" - } - } - - private fun String.asReferer(): String { - return URLEncoder.encode( - this.toHttpUrl().let { - "https://${it.host}${it.encodedPath}" - }, - "UTF-8", - ) - } - - private fun String.removeName(): String = Regex("""^(\[[^\[\];]+\])""").replace(this, "") - - private fun LinkData.toJsonString(): String { - return json.encodeToString(this) - } - - private fun IdUrl.toJsonString(): String { - return json.encodeToString(this) - } - - private fun parsePage(response: Response, url: String): AnimesPage { - val parsed = json.decodeFromString<ResponseData>(response.body.string().decrypt()) - val animeList = mutableListOf<SAnime>() - val isSearch = url.endsWith(":search") - - parsed.data.files.forEach { item -> - if (item.mimeType.endsWith("folder")) { - animeList.add( - SAnime.create().apply { - title = if (preferences.trimAnimeName) item.name.trimInfo() else item.name - thumbnail_url = "" - this.url = if (isSearch) { - LinkData( - "search", - IdUrl( - item.id, - url.substringBeforeLast("search"), - response.request.header("Referer")!!, - "multi", - ).toJsonString(), - ).toJsonString() - } else { - LinkData( - "multi", - joinUrl(URL_REGEX.matchEntire(url)!!.groups["url"]!!.value, item.name).addSuffix("/"), - fragment = url.toHttpUrl().encodedFragment, - ).toJsonString() - } - }, - ) - } - if ( - item.mimeType.startsWith("video/") && - !(preferences.ignoreFolder && isSearch) - ) { - animeList.add( - SAnime.create().apply { - title = if (preferences.trimAnimeName) item.name.trimInfo() else item.name - thumbnail_url = "" - this.url = if (isSearch) { - LinkData( - "search", - IdUrl( - item.id, - url.substringBeforeLast("search"), - response.request.header("Referer")!!, - "single", - ).toJsonString(), - item.size?.toLongOrNull()?.let { formatFileSize(it) }, - ).toJsonString() - } else { - LinkData( - "single", - joinUrl(URL_REGEX.matchEntire(url)!!.groups["url"]!!.value, item.name), - item.size?.toLongOrNull()?.let { formatFileSize(it) }, - fragment = url.toHttpUrl().encodedFragment, - ).toJsonString() - } - }, - ) - } - } - - pageToken = parsed.nextPageToken - - return AnimesPage(animeList, parsed.nextPageToken != null) - } - - private fun isUrl(text: String) = URL_REGEX matches text - - /* - * Stolen from the MangaDex manga extension - * - * This will likely need to be removed or revisited when the app migrates the - * extension preferences screen to Compose. - */ - private fun setupEditTextUrlValidator(editText: EditText) { - editText.addTextChangedListener( - object : TextWatcher { - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - // Do nothing. - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - // Do nothing. - } - - override fun afterTextChanged(editable: Editable?) { - requireNotNull(editable) - - val text = editable.toString() - - val isValid = text.isBlank() || text - .split(",") - .map(String::trim) - .all(::isUrl) - - editText.error = if (!isValid) "${text.split(",").first { !isUrl(it) }} is not a valid url" else null - editText.rootView.findViewById<Button>(android.R.id.button1) - ?.isEnabled = editText.error == null - } - }, - ) - } - - companion object { - private const val DOMAIN_PREF_KEY = "domain_list" - private const val DOMAIN_PREF_DEFAULT = "" - - private const val SEARCH_FOLDER_IGNORE_KEY = "ignore_non_folder" - private const val SEARCH_FOLDER_IGNORE_DEFAULT = true - - private const val TRIM_EPISODE_NAME_KEY = "trim_episode_name" - private const val TRIM_EPISODE_NAME_DEFAULT = true - - private const val TRIM_ANIME_NAME_KEY = "trim_anime_name" - private const val TRIM_ANIME_NAME_DEFAULT = true - - private val URL_REGEX = Regex("""(?<name>\[[^\[\];]+\])?(?<url>https(?:[^,#]+))(?<depth>#\d+(?<range>,\d+,\d+)?)?${'$'}""") - } - - private val SharedPreferences.domainList - get() = getString(DOMAIN_PREF_KEY, DOMAIN_PREF_DEFAULT)!! - - private val SharedPreferences.ignoreFolder - get() = getBoolean(SEARCH_FOLDER_IGNORE_KEY, SEARCH_FOLDER_IGNORE_DEFAULT) - - private val SharedPreferences.trimEpisodeName - get() = getBoolean(TRIM_EPISODE_NAME_KEY, TRIM_EPISODE_NAME_DEFAULT) - - private val SharedPreferences.trimAnimeName - get() = getBoolean(TRIM_ANIME_NAME_KEY, TRIM_ANIME_NAME_DEFAULT) - - // ============================== Settings ============================== - - override fun setupPreferenceScreen(screen: PreferenceScreen) { - EditTextPreference(screen.context).apply { - key = DOMAIN_PREF_KEY - title = "Enter drive paths to be shown in extension" - summary = """Enter drive paths to be shown in extension - |Enter as comma separated list - """.trimMargin() - this.setDefaultValue(DOMAIN_PREF_DEFAULT) - dialogTitle = "Path list" - dialogMessage = """Separate paths with a comma. For password protected sites, - |format as: "https://username:password@example.worker.dev/0:/" - |- (optional) Add [] before url to customize name. For example: [drive 5]https://site.workers.dev/0: - |- (optional) add #<integer> to limit the depth of recursion when loading episodes, defaults is 2. For example: https://site.workers.dev/0:#5 - |- (optional) add #depth,start,stop (all integers) to specify range when loading episodes. Only works if depth is 1. For example: https://site.workers.dev/0:#1,2,6 - """.trimMargin() - - setOnBindEditTextListener(::setupEditTextUrlValidator) - - setOnPreferenceChangeListener { _, newValue -> - try { - val res = preferences.edit().putString(DOMAIN_PREF_KEY, newValue as String).commit() - Toast.makeText(screen.context, "Restart Aniyomi to apply changes", Toast.LENGTH_LONG).show() - res - } catch (e: java.lang.Exception) { - e.printStackTrace() - false - } - } - }.also(screen::addPreference) - - SwitchPreferenceCompat(screen.context).apply { - key = SEARCH_FOLDER_IGNORE_KEY - title = "Only include folders on search" - setDefaultValue(SEARCH_FOLDER_IGNORE_DEFAULT) - setOnPreferenceChangeListener { _, newValue -> - preferences.edit().putBoolean(key, newValue as Boolean).commit() - } - }.also(screen::addPreference) - - SwitchPreferenceCompat(screen.context).apply { - key = TRIM_EPISODE_NAME_KEY - title = "Trim info from episode name" - setDefaultValue(TRIM_EPISODE_NAME_DEFAULT) - setOnPreferenceChangeListener { _, newValue -> - preferences.edit().putBoolean(key, newValue as Boolean).commit() - } - }.also(screen::addPreference) - - SwitchPreferenceCompat(screen.context).apply { - key = TRIM_ANIME_NAME_KEY - title = "Trim info from anime name" - setDefaultValue(TRIM_ANIME_NAME_DEFAULT) - setOnPreferenceChangeListener { _, newValue -> - preferences.edit().putBoolean(key, newValue as Boolean).commit() - } - }.also(screen::addPreference) - } -} diff --git a/src/all/googledriveindex/src/eu/kanade/tachiyomi/animeextension/all/googledriveindex/GoogleDriveIndexDto.kt b/src/all/googledriveindex/src/eu/kanade/tachiyomi/animeextension/all/googledriveindex/GoogleDriveIndexDto.kt deleted file mode 100644 index 38ff5894..00000000 --- a/src/all/googledriveindex/src/eu/kanade/tachiyomi/animeextension/all/googledriveindex/GoogleDriveIndexDto.kt +++ /dev/null @@ -1,49 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.all.googledriveindex - -import kotlinx.serialization.Serializable - -@Serializable -data class ResponseData( - val nextPageToken: String? = null, - val data: DataObject, -) { - @Serializable - data class DataObject( - val files: List<FileObject>, - ) { - @Serializable - data class FileObject( - val mimeType: String, - val id: String, - val name: String, - val modifiedTime: String? = null, - val size: String? = null, - ) - } -} - -@Serializable -data class LinkData( - val type: String, - val url: String, - val info: String? = null, - val fragment: String? = null, -) - -@Serializable -data class IdUrl( - val id: String, - val url: String, - val referer: String, - val type: String, -) - -@Serializable -data class Details( - val title: String? = null, - val author: String? = null, - val artist: String? = null, - val description: String? = null, - val genre: List<String>? = null, - val status: String? = null, -) diff --git a/src/all/jellyfin/build.gradle b/src/all/jellyfin/build.gradle deleted file mode 100644 index 929bbedd..00000000 --- a/src/all/jellyfin/build.gradle +++ /dev/null @@ -1,7 +0,0 @@ -ext { - extName = 'Jellyfin' - extClass = '.JellyfinFactory' - extVersionCode = 15 -} - -apply from: "$rootDir/common.gradle" diff --git a/src/all/jellyfin/res/mipmap-hdpi/ic_launcher.png b/src/all/jellyfin/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index e81dcdc90c312dbe0d15c8f9d01a16cf21b521bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3748 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 O0000<MNUMnLSTYNR|`S_ diff --git a/src/all/jellyfin/res/mipmap-mdpi/ic_launcher.png b/src/all/jellyfin/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 534be2bd88aba90c6eb0da8409ed683a5f35f8f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2134 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 M07*qoM6N<$g71L>0ssI2 diff --git a/src/all/jellyfin/res/mipmap-xhdpi/ic_launcher.png b/src/all/jellyfin/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 9247871b35707c850c0942715f864e7dcfd4b93a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5289 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 diff --git a/src/all/jellyfin/res/mipmap-xxhdpi/ic_launcher.png b/src/all/jellyfin/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index c434ee3c4987f06ad442d582b0acabddb4f402dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9746 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 XB(vI9S!kbqTo7_nAjukWqoDr-_BGQr diff --git a/src/all/jellyfin/res/mipmap-xxxhdpi/ic_launcher.png b/src/all/jellyfin/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index a20ef126e0e3da9b3d97b0ff9be3442465152ba3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15387 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 diff --git a/src/all/jellyfin/res/web_hi_res_512.png b/src/all/jellyfin/res/web_hi_res_512.png deleted file mode 100644 index e134595d1032a43f204ba04d19187e13b71a900f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58717 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 diff --git a/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/Jellyfin.kt b/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/Jellyfin.kt deleted file mode 100644 index 8bfeb1b9..00000000 --- a/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/Jellyfin.kt +++ /dev/null @@ -1,803 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.all.jellyfin - -import android.annotation.SuppressLint -import android.app.Application -import android.content.Context -import android.content.SharedPreferences -import android.text.InputType -import android.widget.Toast -import androidx.preference.EditTextPreference -import androidx.preference.ListPreference -import androidx.preference.MultiSelectListPreference -import androidx.preference.PreferenceScreen -import androidx.preference.SwitchPreferenceCompat -import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource -import eu.kanade.tachiyomi.animesource.UnmeteredSource -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.util.parseAs -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.runBlocking -import kotlinx.coroutines.withContext -import okhttp3.Dns -import okhttp3.HttpUrl.Companion.toHttpUrl -import okhttp3.OkHttpClient -import okhttp3.Request -import okhttp3.Response -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get -import java.security.MessageDigest -import java.security.cert.X509Certificate -import javax.net.ssl.SSLContext -import javax.net.ssl.TrustManager -import javax.net.ssl.X509TrustManager - -class Jellyfin(private val suffix: String) : ConfigurableAnimeSource, AnimeHttpSource(), UnmeteredSource { - override val baseUrl by lazy { getPrefBaseUrl() } - - override val lang = "all" - - override val name by lazy { "Jellyfin (${getCustomLabel()})" } - - override val supportsLatest = true - - private fun getUnsafeOkHttpClient(): OkHttpClient { - // Create a trust manager that does not validate certificate chains - val trustAllCerts = arrayOf<TrustManager>( - @SuppressLint("CustomX509TrustManager") - object : X509TrustManager { - @SuppressLint("TrustAllX509TrustManager") - override fun checkClientTrusted(chain: Array<out X509Certificate>?, authType: String?) { - } - - @SuppressLint("TrustAllX509TrustManager") - override fun checkServerTrusted(chain: Array<out X509Certificate>?, authType: String?) { - } - - override fun getAcceptedIssuers() = arrayOf<X509Certificate>() - }, - ) - - // Install the all-trusting trust manager - val sslContext = SSLContext.getInstance("SSL") - sslContext.init(null, trustAllCerts, java.security.SecureRandom()) - // Create an ssl socket factory with our all-trusting manager - val sslSocketFactory = sslContext.socketFactory - - return network.client.newBuilder() - .sslSocketFactory(sslSocketFactory, trustAllCerts[0] as X509TrustManager) - .hostnameVerifier { _, _ -> true }.build() - } - - override val client by lazy { - if (preferences.getTrustCert) { - getUnsafeOkHttpClient() - } else { - network.client - }.newBuilder() - .dns(Dns.SYSTEM) - .build() - } - - override val id by lazy { - val key = "jellyfin" + (if (suffix == "1") "" else " ($suffix)") + "/all/$versionId" - val bytes = MessageDigest.getInstance("MD5").digest(key.toByteArray()) - (0..7).map { bytes[it].toLong() and 0xff shl 8 * (7 - it) }.reduce(Long::or) and Long.MAX_VALUE - } - - internal val preferences: SharedPreferences by lazy { - Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000) - } - - private var username = preferences.getUserName - private var password = preferences.getPassword - private var parentId = preferences.getMediaLibId - private var apiKey = preferences.getApiKey - private var userId = preferences.getUserId - - init { - login(false) - } - - private fun login(new: Boolean, context: Context? = null): Boolean? { - if (apiKey == null || userId == null || new) { - username = preferences.getUserName - password = preferences.getPassword - if (username.isEmpty() || password.isEmpty()) { - if (username != "demo") return null - } - val (newKey, newUid) = runBlocking { - withContext(Dispatchers.IO) { - JellyfinAuthenticator(preferences, getPrefBaseUrl(), client) - .login(username, password) - } - } - if (newKey != null && newUid != null) { - apiKey = newKey - userId = newUid - } else { - context?.let { Toast.makeText(it, "Login failed.", Toast.LENGTH_LONG).show() } - return false - } - } - return true - } - - // ============================== Popular =============================== - - override fun popularAnimeRequest(page: Int): Request { - require(parentId.isNotEmpty()) { "Select library in the extension settings." } - val startIndex = (page - 1) * SEASONS_LIMIT - - val url = "$baseUrl/Users/$userId/Items".toHttpUrl().newBuilder().apply { - addQueryParameter("api_key", apiKey) - addQueryParameter("StartIndex", startIndex.toString()) - addQueryParameter("Limit", SEASONS_LIMIT.toString()) - addQueryParameter("Recursive", "true") - addQueryParameter("SortBy", "SortName") - addQueryParameter("SortOrder", "Ascending") - addQueryParameter("IncludeItemTypes", "Movie,Season,BoxSet") - addQueryParameter("ImageTypeLimit", "1") - addQueryParameter("ParentId", parentId) - addQueryParameter("EnableImageTypes", "Primary") - }.build() - - return GET(url) - } - - override fun popularAnimeParse(response: Response): AnimesPage { - val splitCollections = preferences.getSplitCol - val page = response.request.url.queryParameter("StartIndex")!!.toInt() / SEASONS_LIMIT + 1 - val data = response.parseAs<ItemsDto>() - val animeList = data.items.flatMap { - if (it.type == "BoxSet" && splitCollections) { - val url = popularAnimeRequest(page).url.newBuilder().apply { - setQueryParameter("ParentId", it.id) - }.build() - - popularAnimeParse( - client.newCall(GET(url)).execute(), - ).animes - } else { - listOf(it.toSAnime(baseUrl, userId!!, apiKey!!)) - } - } - return AnimesPage(animeList, SEASONS_LIMIT * page < data.itemCount) - } - - // =============================== Latest =============================== - - override fun latestUpdatesRequest(page: Int): Request { - val url = popularAnimeRequest(page).url.newBuilder().apply { - setQueryParameter("SortBy", "DateCreated,SortName") - setQueryParameter("SortOrder", "Descending") - }.build() - - return GET(url) - } - - override fun latestUpdatesParse(response: Response): AnimesPage = - popularAnimeParse(response) - - // =============================== Search =============================== - - override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request { - val url = popularAnimeRequest(page).url.newBuilder().apply { - // Search for series, rather than seasons, since season names can just be "Season 1" - setQueryParameter("IncludeItemTypes", "Movie,Series") - setQueryParameter("Limit", SERIES_LIMIT.toString()) - setQueryParameter("SearchTerm", query) - }.build() - - return GET(url) - } - - override fun searchAnimeParse(response: Response): AnimesPage { - val page = response.request.url.queryParameter("StartIndex")!!.toInt() / SERIES_LIMIT + 1 - val data = response.parseAs<ItemsDto>() - - // Get all seasons from series - val animeList = data.items.flatMap { series -> - val seasonsUrl = popularAnimeRequest(1).url.newBuilder().apply { - setQueryParameter("ParentId", series.id) - removeAllQueryParameters("StartIndex") - removeAllQueryParameters("Limit") - }.build() - - val seasonsData = client.newCall( - GET(seasonsUrl), - ).execute().parseAs<ItemsDto>() - - seasonsData.items.map { it.toSAnime(baseUrl, userId!!, apiKey!!) } - } - - return AnimesPage(animeList, SERIES_LIMIT * page < data.itemCount) - } - - // =========================== Anime Details ============================ - - override fun animeDetailsRequest(anime: SAnime): Request { - if (!anime.url.startsWith("http")) throw Exception("Migrate from jellyfin to jellyfin") - return GET(anime.url) - } - - override fun animeDetailsParse(response: Response): SAnime { - val data = response.parseAs<ItemDto>() - val infoData = if (preferences.useSeriesData && data.seriesId != null) { - val url = response.request.url.let { url -> - url.newBuilder().apply { - removePathSegment(url.pathSize - 1) - addPathSegment(data.seriesId) - }.build() - } - - client.newCall( - GET(url), - ).execute().parseAs<ItemDto>() - } else { - data - } - - return infoData.toSAnime(baseUrl, userId!!, apiKey!!) - } - - // ============================== Episodes ============================== - - override fun episodeListRequest(anime: SAnime): Request { - if (!anime.url.startsWith("http")) throw Exception("Migrate from jellyfin to jellyfin") - val httpUrl = anime.url.toHttpUrl() - val fragment = httpUrl.fragment!! - - // Get episodes of season - val url = if (fragment.startsWith("seriesId")) { - httpUrl.newBuilder().apply { - encodedPath("/") - encodedQuery(null) - fragment(null) - - addPathSegment("Shows") - addPathSegment(fragment.split(",").last()) - addPathSegment("Episodes") - addQueryParameter("api_key", apiKey) - addQueryParameter("seasonId", httpUrl.pathSegments.last()) - addQueryParameter("userId", userId) - addQueryParameter("Fields", "Overview,MediaSources") - }.build() - } else if (fragment.startsWith("movie")) { - httpUrl.newBuilder().fragment(null).build() - } else if (fragment.startsWith("boxSet")) { - val itemId = httpUrl.pathSegments[3] - httpUrl.newBuilder().apply { - removePathSegment(3) - addQueryParameter("Recursive", "true") - addQueryParameter("SortBy", "SortName") - addQueryParameter("SortOrder", "Ascending") - addQueryParameter("IncludeItemTypes", "Movie,Season,BoxSet,Series") - addQueryParameter("ParentId", itemId) - }.build() - } else if (fragment.startsWith("series")) { - val itemId = httpUrl.pathSegments[3] - httpUrl.newBuilder().apply { - encodedPath("/") - encodedQuery(null) - addPathSegment("Shows") - addPathSegment(itemId) - addPathSegment("Episodes") - addQueryParameter("api_key", apiKey) - }.build() - } else { - httpUrl - } - - return GET(url) - } - - override fun episodeListParse(response: Response): List<SEpisode> { - val httpUrl = response.request.url - val episodeList = if (httpUrl.fragment == "boxSet") { - val data = response.parseAs<ItemsDto>() - val animeList = data.items.map { - it.toSAnime(baseUrl, userId!!, apiKey!!) - }.sortedByDescending { it.title } - animeList.flatMap { - client.newCall(episodeListRequest(it)) - .execute() - .let { res -> - episodeListParse(res, "${it.title} - ") - } - } - } else { - episodeListParse(response, "") - } - - return if (preferences.sortEp) { - episodeList.sortedByDescending { it.date_upload } - } else { - episodeList - } - } - - private fun episodeListParse(response: Response, prefix: String): List<SEpisode> { - val httpUrl = response.request.url - val epDetails = preferences.getEpDetails - return if (response.request.url.toString().startsWith("$baseUrl/Users/")) { - val data = response.parseAs<ItemDto>() - listOf(data.toSEpisode(baseUrl, userId!!, apiKey!!, epDetails, EpisodeType.MOVIE, prefix)) - } else if (httpUrl.fragment == "series") { - val data = response.parseAs<ItemsDto>() - data.items.map { - val name = prefix + (it.seasonName?.let { "$it - " } ?: "") - it.toSEpisode(baseUrl, userId!!, apiKey!!, epDetails, EpisodeType.EPISODE, name) - } - } else { - val data = response.parseAs<ItemsDto>() - data.items.map { - it.toSEpisode(baseUrl, userId!!, apiKey!!, epDetails, EpisodeType.EPISODE, prefix) - } - }.reversed() - } - - enum class EpisodeType { - EPISODE, - MOVIE, - } - - // ============================ Video Links ============================= - - override fun videoListRequest(episode: SEpisode): Request { - if (!episode.url.startsWith("http")) throw Exception("Migrate from jellyfin to jellyfin") - return GET(episode.url) - } - - override fun videoListParse(response: Response): List<Video> { - val id = response.parseAs<ItemDto>().id - - val sessionData = client.newCall( - GET("$baseUrl/Items/$id/PlaybackInfo?userId=$userId&api_key=$apiKey"), - ).execute().parseAs<SessionDto>() - - val videoList = mutableListOf<Video>() - val subtitleList = mutableListOf<Track>() - val externalSubtitleList = mutableListOf<Track>() - - val prefSub = preferences.getSubPref - val prefAudio = preferences.getAudioPref - - var audioIndex = 1 - var subIndex: Int? = null - var width = 1920 - var height = 1080 - - sessionData.mediaSources.first().mediaStreams.forEach { media -> - when (media.type) { - "Video" -> { - width = media.width!! - height = media.height!! - } - "Audio" -> { - if (media.lang != null && media.lang == prefAudio) { - audioIndex = media.index - } - } - "Subtitle" -> { - if (media.supportsExternalStream) { - val subtitleUrl = "$baseUrl/Videos/$id/$id/Subtitles/${media.index}/0/Stream.${media.codec}?api_key=$apiKey" - if (media.lang != null) { - if (media.lang == prefSub) { - try { - if (media.isExternal) { - externalSubtitleList.add(0, Track(subtitleUrl, media.displayTitle!!)) - } - subtitleList.add(0, Track(subtitleUrl, media.displayTitle!!)) - } catch (e: Exception) { - subIndex = media.index - } - } else { - if (media.isExternal) { - externalSubtitleList.add(Track(subtitleUrl, media.displayTitle!!)) - } - subtitleList.add(Track(subtitleUrl, media.displayTitle!!)) - } - } else { - if (media.isExternal) { - externalSubtitleList.add(Track(subtitleUrl, media.displayTitle!!)) - } - subtitleList.add(Track(subtitleUrl, media.displayTitle!!)) - } - } - } - } - } - - // Loop over qualities - JellyfinConstants.QUALITIES_LIST.forEach { quality -> - if (width < quality.width && height < quality.height) { - val url = "$baseUrl/Videos/$id/stream?static=True&api_key=$apiKey" - videoList.add(Video(url, "Source", url, subtitleTracks = externalSubtitleList)) - - return videoList.reversed() - } else { - val url = "$baseUrl/videos/$id/main.m3u8".toHttpUrl().newBuilder().apply { - addQueryParameter("api_key", apiKey) - addQueryParameter("VideoCodec", "h264") - addQueryParameter("AudioCodec", "aac,mp3") - addQueryParameter("AudioStreamIndex", audioIndex.toString()) - subIndex?.let { addQueryParameter("SubtitleStreamIndex", it.toString()) } - addQueryParameter("VideoCodec", "h264") - addQueryParameter("VideoCodec", "h264") - addQueryParameter( - "VideoBitrate", - quality.videoBitrate.toString(), - ) - addQueryParameter( - "AudioBitrate", - quality.audioBitrate.toString(), - ) - addQueryParameter("PlaySessionId", sessionData.playSessionId) - addQueryParameter("TranscodingMaxAudioChannels", "6") - addQueryParameter("RequireAvc", "false") - addQueryParameter("SegmentContainer", "ts") - addQueryParameter("MinSegments", "1") - addQueryParameter("BreakOnNonKeyFrames", "true") - addQueryParameter("h264-profile", "high,main,baseline,constrainedbaseline") - addQueryParameter("h264-level", "51") - addQueryParameter("h264-deinterlace", "true") - addQueryParameter("TranscodeReasons", "VideoCodecNotSupported,AudioCodecNotSupported,ContainerBitrateExceedsLimit") - } - videoList.add(Video(url.toString(), quality.description, url.toString(), subtitleTracks = subtitleList)) - } - } - - val url = "$baseUrl/Videos/$id/stream?static=True&api_key=$apiKey" - videoList.add(Video(url, "Source", url, subtitleTracks = externalSubtitleList)) - - return videoList.reversed() - } - - // ============================= Utilities ============================== - - companion object { - const val APIKEY_KEY = "api_key" - const val USERID_KEY = "user_id" - - internal const val EXTRA_SOURCES_COUNT_KEY = "extraSourcesCount" - internal const val EXTRA_SOURCES_COUNT_DEFAULT = "3" - private val EXTRA_SOURCES_ENTRIES = (1..10).map { it.toString() }.toTypedArray() - - private const val PREF_CUSTOM_LABEL_KEY = "pref_label" - private const val PREF_CUSTOM_LABEL_DEFAULT = "" - - private const val HOSTURL_KEY = "host_url" - private const val HOSTURL_DEFAULT = "http://127.0.0.1:8096" - - private const val USERNAME_KEY = "username" - private const val USERNAME_DEFAULT = "" - - private const val PASSWORD_KEY = "password" - private const val PASSWORD_DEFAULT = "" - - private const val MEDIALIB_KEY = "library_pref" - private const val MEDIALIB_DEFAULT = "" - - private const val SEASONS_LIMIT = 20 - private const val SERIES_LIMIT = 5 - - private const val PREF_EP_DETAILS_KEY = "pref_episode_details_key" - private val PREF_EP_DETAILS = arrayOf("Overview", "Runtime", "Size") - private val PREF_EP_DETAILS_DEFAULT = emptySet<String>() - - private const val PREF_SUB_KEY = "preferred_subLang" - private const val PREF_SUB_DEFAULT = "eng" - - private const val PREF_AUDIO_KEY = "preferred_audioLang" - private const val PREF_AUDIO_DEFAULT = "jpn" - - private const val PREF_INFO_TYPE = "preferred_meta_type" - private const val PREF_INFO_DEFAULT = false - - private const val PREF_TRUST_CERT_KEY = "preferred_trust_all_certs" - private const val PREF_TRUST_CERT_DEFAULT = false - - private const val PREF_SPLIT_COLLECTIONS_KEY = "preferred_split_col" - private const val PREF_SPLIT_COLLECTIONS_DEFAULT = false - - private const val PREF_SORT_EPISODES_KEY = "preferred_sort_ep" - private const val PREF_SORT_EPISODES_DEFAULT = false - } - - private fun getCustomLabel(): String = - preferences.getString(PREF_CUSTOM_LABEL_KEY, suffix)!!.ifBlank { suffix } - - private fun getPrefBaseUrl(): String = - preferences.getString(HOSTURL_KEY, HOSTURL_DEFAULT)!! - - override fun setupPreferenceScreen(screen: PreferenceScreen) { - if (suffix == "1") { - ListPreference(screen.context).apply { - key = EXTRA_SOURCES_COUNT_KEY - title = "Number of sources" - summary = "Number of jellyfin sources to create. There will always be at least one Jellyfin source." - entries = EXTRA_SOURCES_ENTRIES - entryValues = EXTRA_SOURCES_ENTRIES - - setDefaultValue(EXTRA_SOURCES_COUNT_DEFAULT) - setOnPreferenceChangeListener { _, newValue -> - try { - val setting = preferences.edit().putString(EXTRA_SOURCES_COUNT_KEY, newValue as String).commit() - Toast.makeText(screen.context, "Restart Aniyomi to apply new setting.", Toast.LENGTH_LONG).show() - setting - } catch (e: Exception) { - e.printStackTrace() - false - } - } - }.also(screen::addPreference) - } - - EditTextPreference(screen.context).apply { - key = PREF_CUSTOM_LABEL_KEY - title = "Custom Label" - summary = "Show the given label for the source instead of the default." - setDefaultValue(PREF_CUSTOM_LABEL_DEFAULT) - - setOnPreferenceChangeListener { _, newValue -> - runCatching { - val value = (newValue as String).trim().ifBlank { PREF_CUSTOM_LABEL_DEFAULT } - Toast.makeText(screen.context, "Restart Aniyomi to apply new setting.", Toast.LENGTH_LONG).show() - preferences.edit().putString(key, value).commit() - }.getOrDefault(false) - } - }.also(screen::addPreference) - - val mediaLibPref = medialibPreference(screen) - screen.addPreference( - screen.editTextPreference( - HOSTURL_KEY, - "Host URL", - HOSTURL_DEFAULT, - baseUrl, - false, - "", - mediaLibPref, - ), - ) - screen.addPreference( - screen.editTextPreference( - USERNAME_KEY, - "Username", - USERNAME_DEFAULT, - username, - false, - "The account username", - mediaLibPref, - ), - ) - screen.addPreference( - screen.editTextPreference( - PASSWORD_KEY, - "Password", - PASSWORD_DEFAULT, - password, - true, - "••••••••", - mediaLibPref, - ), - ) - screen.addPreference(mediaLibPref) - - MultiSelectListPreference(screen.context).apply { - key = PREF_EP_DETAILS_KEY - title = "Additional details for episodes" - summary = "Show additional details about an episode in the scanlator field" - entries = PREF_EP_DETAILS - entryValues = PREF_EP_DETAILS - setDefaultValue(PREF_EP_DETAILS_DEFAULT) - - setOnPreferenceChangeListener { _, newValue -> - @Suppress("UNCHECKED_CAST") - preferences.edit().putStringSet(key, newValue as Set<String>).commit() - } - }.also(screen::addPreference) - - ListPreference(screen.context).apply { - key = PREF_SUB_KEY - title = "Preferred sub language" - entries = JellyfinConstants.PREF_ENTRIES - entryValues = JellyfinConstants.PREF_VALUES - setDefaultValue(PREF_SUB_DEFAULT) - summary = "%s" - - setOnPreferenceChangeListener { _, newValue -> - val selected = newValue as String - val index = findIndexOfValue(selected) - val entry = entryValues[index] as String - preferences.edit().putString(key, entry).commit() - } - }.also(screen::addPreference) - - ListPreference(screen.context).apply { - key = PREF_AUDIO_KEY - title = "Preferred audio language" - entries = JellyfinConstants.PREF_ENTRIES - entryValues = JellyfinConstants.PREF_VALUES - setDefaultValue(PREF_AUDIO_DEFAULT) - summary = "%s" - - setOnPreferenceChangeListener { _, newValue -> - val selected = newValue as String - val index = findIndexOfValue(selected) - val entry = entryValues[index] as String - preferences.edit().putString(key, entry).commit() - } - }.also(screen::addPreference) - - SwitchPreferenceCompat(screen.context).apply { - key = PREF_INFO_TYPE - title = "Retrieve metadata from series" - summary = """Enable this to retrieve metadata from series instead of season when applicable.""".trimMargin() - setDefaultValue(PREF_INFO_DEFAULT) - - setOnPreferenceChangeListener { _, newValue -> - val new = newValue as Boolean - preferences.edit().putBoolean(key, new).commit() - } - }.also(screen::addPreference) - - SwitchPreferenceCompat(screen.context).apply { - key = PREF_TRUST_CERT_KEY - title = "Trust all certificates" - summary = "Requires app restart to take effect." - setDefaultValue(PREF_TRUST_CERT_DEFAULT) - - setOnPreferenceChangeListener { _, newValue -> - val new = newValue as Boolean - preferences.edit().putBoolean(key, new).commit() - } - }.also(screen::addPreference) - - SwitchPreferenceCompat(screen.context).apply { - key = PREF_SPLIT_COLLECTIONS_KEY - title = "Split collections" - summary = "Split each item in a collection into its own entry" - setDefaultValue(PREF_SPLIT_COLLECTIONS_DEFAULT) - - setOnPreferenceChangeListener { _, newValue -> - val new = newValue as Boolean - preferences.edit().putBoolean(key, new).commit() - } - }.also(screen::addPreference) - - SwitchPreferenceCompat(screen.context).apply { - key = PREF_SORT_EPISODES_KEY - title = "Sort episodes by release date" - summary = "Useful for collections, otherwise items in a collection are grouped by name." - setDefaultValue(PREF_SORT_EPISODES_DEFAULT) - - setOnPreferenceChangeListener { _, newValue -> - val new = newValue as Boolean - preferences.edit().putBoolean(key, new).commit() - } - }.also(screen::addPreference) - } - - private val SharedPreferences.getApiKey - get() = getString(APIKEY_KEY, null) - - private val SharedPreferences.getUserId - get() = getString(USERID_KEY, null) - - private val SharedPreferences.getUserName - get() = getString(USERNAME_KEY, USERNAME_DEFAULT)!! - - private val SharedPreferences.getPassword - get() = getString(PASSWORD_KEY, PASSWORD_DEFAULT)!! - - private val SharedPreferences.getMediaLibId - get() = getString(MEDIALIB_KEY, MEDIALIB_DEFAULT)!! - - private val SharedPreferences.getEpDetails - get() = getStringSet(PREF_EP_DETAILS_KEY, PREF_EP_DETAILS_DEFAULT)!! - - private val SharedPreferences.getSubPref - get() = getString(PREF_SUB_KEY, PREF_SUB_DEFAULT)!! - - private val SharedPreferences.getAudioPref - get() = getString(PREF_AUDIO_KEY, PREF_AUDIO_DEFAULT)!! - - private val SharedPreferences.useSeriesData - get() = getBoolean(PREF_INFO_TYPE, PREF_INFO_DEFAULT) - - private val SharedPreferences.getTrustCert - get() = getBoolean(PREF_TRUST_CERT_KEY, PREF_TRUST_CERT_DEFAULT) - - private val SharedPreferences.getSplitCol - get() = getBoolean(PREF_SPLIT_COLLECTIONS_KEY, PREF_SPLIT_COLLECTIONS_DEFAULT) - - private val SharedPreferences.sortEp - get() = getBoolean(PREF_SORT_EPISODES_KEY, PREF_SORT_EPISODES_DEFAULT) - - private abstract class MediaLibPreference(context: Context) : ListPreference(context) { - abstract fun reload() - } - - private fun medialibPreference(screen: PreferenceScreen) = - object : MediaLibPreference(screen.context) { - override fun reload() { - this.apply { - key = MEDIALIB_KEY - title = "Select Media Library" - summary = "%s" - - Thread { - try { - val mediaLibsResponse = client.newCall( - GET("$baseUrl/Users/$userId/Items?api_key=$apiKey"), - ).execute() - val mediaJson = mediaLibsResponse.parseAs<ItemsDto>().items - - val entriesArray = mediaJson.map { it.name } - val entriesValueArray = mediaJson.map { it.id } - - entries = entriesArray.toTypedArray() - entryValues = entriesValueArray.toTypedArray() - } catch (ex: Exception) { - entries = emptyArray() - entryValues = emptyArray() - } - }.start() - - setOnPreferenceChangeListener { _, newValue -> - val selected = newValue as String - val index = findIndexOfValue(selected) - val entry = entryValues[index] as String - parentId = entry - preferences.edit().putString(key, entry).commit() - } - } - } - }.apply { reload() } - - private fun getSummary(isPassword: Boolean, value: String, placeholder: String) = when { - isPassword && value.isNotEmpty() || !isPassword && value.isEmpty() -> placeholder - else -> value - } - - private fun PreferenceScreen.editTextPreference(key: String, title: String, default: String, value: String, isPassword: Boolean = false, placeholder: String, mediaLibPref: MediaLibPreference): EditTextPreference { - return EditTextPreference(context).apply { - this.key = key - this.title = title - summary = getSummary(isPassword, value, placeholder) - this.setDefaultValue(default) - dialogTitle = title - - setOnBindEditTextListener { - it.inputType = if (isPassword) { - InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD - } else { - InputType.TYPE_CLASS_TEXT - } - } - - setOnPreferenceChangeListener { _, newValue -> - try { - val newValueString = newValue as String - val res = preferences.edit().putString(key, newValueString).commit() - summary = getSummary(isPassword, newValueString, placeholder) - val loginRes = login(true, context) - if (loginRes == true) { - mediaLibPref.reload() - } - res - } catch (e: Exception) { - false - } - } - } - } -} diff --git a/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/JellyfinAuthenticator.kt b/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/JellyfinAuthenticator.kt deleted file mode 100644 index 0fc2ef42..00000000 --- a/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/JellyfinAuthenticator.kt +++ /dev/null @@ -1,94 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.all.jellyfin - -import android.content.SharedPreferences -import android.os.Build -import android.util.Log -import eu.kanade.tachiyomi.AppInfo -import eu.kanade.tachiyomi.animeextension.all.jellyfin.Jellyfin.Companion.APIKEY_KEY -import eu.kanade.tachiyomi.animeextension.all.jellyfin.Jellyfin.Companion.USERID_KEY -import eu.kanade.tachiyomi.network.POST -import eu.kanade.tachiyomi.util.parseAs -import kotlinx.serialization.encodeToString -import kotlinx.serialization.json.Json -import kotlinx.serialization.json.buildJsonObject -import kotlinx.serialization.json.put -import okhttp3.Headers -import okhttp3.MediaType.Companion.toMediaType -import okhttp3.OkHttpClient -import okhttp3.RequestBody.Companion.toRequestBody -import uy.kohesive.injekt.injectLazy - -class JellyfinAuthenticator( - private val preferences: SharedPreferences, - private val baseUrl: String, - private val client: OkHttpClient, -) { - - private val json: Json by injectLazy() - - fun login(username: String, password: String): Pair<String?, String?> { - return runCatching { - val authResult = authenticateWithPassword(username, password) - val key = authResult.accessToken - val userId = authResult.sessionInfo.userId - saveLogin(key, userId) - Pair(key, userId) - }.getOrElse { - Log.e(LOG_TAG, it.stackTraceToString()) - Pair(null, null) - } - } - - private fun authenticateWithPassword(username: String, password: String): LoginDto { - var deviceId = getPrefDeviceId() - if (deviceId.isNullOrEmpty()) { - deviceId = getRandomString() - setPrefDeviceId(deviceId) - } - val aniyomiVersion = AppInfo.getVersionName() - val androidVersion = Build.VERSION.RELEASE - val authHeader = Headers.headersOf( - "X-Emby-Authorization", - "MediaBrowser Client=\"$CLIENT\", Device=\"Android $androidVersion\", DeviceId=\"$deviceId\", Version=\"$aniyomiVersion\"", - ) - val body = json.encodeToString( - buildJsonObject { - put("Username", username) - put("Pw", password) - }, - ).toRequestBody("application/json; charset=utf-8".toMediaType()) - - val request = POST("$baseUrl/Users/authenticatebyname", headers = authHeader, body = body) - return client.newCall(request).execute().parseAs() - } - - private fun getRandomString(): String { - val allowedChars = ('A'..'Z') + ('a'..'z') + ('0'..'9') - return (1..172) - .map { allowedChars.random() } - .joinToString("") - } - - private fun saveLogin(key: String, userId: String) { - preferences.edit() - .putString(APIKEY_KEY, key) - .putString(USERID_KEY, userId) - .apply() - } - - private fun getPrefDeviceId(): String? = preferences.getString( - DEVICEID_KEY, - null, - ) - - private fun setPrefDeviceId(value: String) = preferences.edit().putString( - DEVICEID_KEY, - value, - ).apply() - - companion object { - private const val DEVICEID_KEY = "device_id" - private const val CLIENT = "Aniyomi" - private const val LOG_TAG = "JellyfinAuthenticator" - } -} diff --git a/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/JellyfinConstants.kt b/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/JellyfinConstants.kt deleted file mode 100644 index b6ed5f37..00000000 --- a/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/JellyfinConstants.kt +++ /dev/null @@ -1,129 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.all.jellyfin - -object JellyfinConstants { - val QUALITIES_LIST = arrayOf( - Quality(480, 360, 292000, 128000, "360p - 420 kbps"), - Quality(854, 480, 528000, 192000, "480p - 720 kbps"), - Quality(854, 480, 1308000, 192000, "480p - 1.5 Mbps"), - Quality(854, 480, 2808000, 192000, "480p - 3 Mbps"), - Quality(1280, 720, 3808000, 192000, "720p - 4 Mbps"), - Quality(1280, 720, 5808000, 192000, "720p - 6 Mbps"), - Quality(1280, 720, 7808000, 192000, "720p - 8 Mbps"), - Quality(1920, 1080, 9808000, 192000, "1080p - 10 Mbps"), - Quality(1920, 1080, 14808000, 192000, "1080p - 15 Mbps"), - Quality(1920, 1080, 19808000, 192000, "1080p - 20 Mbps"), - Quality(1920, 1080, 39808000, 192000, "1080p - 40 Mbps"), - Quality(1920, 1080, 59808000, 192000, "1080p - 60 Mbps"), - Quality(3840, 2160, 80000000, 192000, "4K - 80 Mbps"), - Quality(3840, 2160, 120000000, 192000, "4K - 120 Mbps"), - ) - - data class Quality( - val width: Int, - val height: Int, - val videoBitrate: Int, - val audioBitrate: Int, - val description: String, - ) - - val PREF_VALUES = arrayOf( - "aar", "abk", "ace", "ach", "ada", "ady", "afh", "afr", "ain", "aka", "akk", "ale", "alt", "amh", "ang", "anp", "apa", - "ara", "arc", "arg", "arn", "arp", "arw", "asm", "ast", "ath", "ava", "ave", "awa", "aym", "aze", "bai", "bak", "bal", - "bam", "ban", "bas", "bej", "bel", "bem", "ben", "ber", "bho", "bik", "bin", "bis", "bla", "bod", "bos", "bra", "bre", - "bua", "bug", "bul", "byn", "cad", "car", "cat", "ceb", "ces", "cha", "chb", "che", "chg", "chk", "chm", "chn", "cho", - "chp", "chr", "chu", "chv", "chy", "cnr", "cop", "cor", "cos", "cre", "crh", "csb", "cym", "dak", "dan", "dar", "del", - "den", "deu", "dgr", "din", "div", "doi", "dsb", "dua", "dum", "dyu", "dzo", "efi", "egy", "eka", "ell", "elx", "eng", - "enm", "epo", "est", "eus", "ewe", "ewo", "fan", "fao", "fas", "fat", "fij", "fil", "fin", "fiu", "fon", "fra", "frm", - "fro", "frr", "frs", "fry", "ful", "fur", "gaa", "gay", "gba", "gez", "gil", "gla", "gle", "glg", "glv", "gmh", "goh", - "gon", "gor", "got", "grb", "grc", "grn", "gsw", "guj", "gwi", "hai", "hat", "hau", "haw", "heb", "her", "hil", "hin", - "hit", "hmn", "hmo", "hrv", "hsb", "hun", "hup", "hye", "iba", "ibo", "ido", "iii", "ijo", "iku", "ile", "ilo", "ina", - "inc", "ind", "inh", "ipk", "isl", "ita", "jav", "jbo", "jpn", "jpr", "jrb", "kaa", "kab", "kac", "kal", "kam", "kan", - "kar", "kas", "kat", "kau", "kaw", "kaz", "kbd", "kha", "khm", "kho", "kik", "kin", "kir", "kmb", "kok", "kom", "kon", - "kor", "kos", "kpe", "krc", "krl", "kru", "kua", "kum", "kur", "kut", "lad", "lah", "lam", "lao", "lat", "lav", "lez", - "lim", "lin", "lit", "lol", "loz", "ltz", "lua", "lub", "lug", "lui", "lun", "luo", "lus", "mad", "mag", "mah", "mai", - "mak", "mal", "man", "mar", "mas", "mdf", "mdr", "men", "mga", "mic", "min", "mkd", "mkh", "mlg", "mlt", "mnc", "mni", - "moh", "mon", "mos", "mri", "msa", "mus", "mwl", "mwr", "mya", "myv", "nah", "nap", "nau", "nav", "nbl", "nde", "ndo", - "nds", "nep", "new", "nia", "nic", "niu", "nld", "nno", "nob", "nog", "non", "nor", "nqo", "nso", "nub", "nwc", "nya", - "nym", "nyn", "nyo", "nzi", "oci", "oji", "ori", "orm", "osa", "oss", "ota", "oto", "pag", "pal", "pam", "pan", "pap", - "pau", "peo", "phn", "pli", "pol", "pon", "por", "pro", "pus", "que", "raj", "rap", "rar", "roh", "rom", "ron", "run", - "rup", "rus", "sad", "sag", "sah", "sam", "san", "sas", "sat", "scn", "sco", "sel", "sga", "shn", "sid", "sin", "slk", - "slv", "sma", "sme", "smj", "smn", "smo", "sms", "sna", "snd", "snk", "sog", "som", "son", "sot", "spa", "sqi", "srd", - "srn", "srp", "srr", "ssw", "suk", "sun", "sus", "sux", "swa", "swe", "syc", "syr", "tah", "tai", "tam", "tat", "tel", - "tem", "ter", "tet", "tgk", "tgl", "tha", "tig", "tir", "tiv", "tkl", "tlh", "tli", "tmh", "tog", "ton", "tpi", "tsi", - "tsn", "tso", "tuk", "tum", "tup", "tur", "tvl", "twi", "tyv", "udm", "uga", "uig", "ukr", "umb", "urd", "uzb", "vai", - "ven", "vie", "vol", "vot", "wal", "war", "was", "wen", "wln", "wol", "xal", "xho", "yao", "yap", "yid", "yor", "zap", - "zbl", "zen", "zgh", "zha", "zho", "zul", "zun", "zza", - ) - - val PREF_ENTRIES = arrayOf( - "Qafaraf; ’Afar Af; Afaraf; Qafar af", "Аҧсуа бызшәа Aƥsua bızšwa; Аҧсшәа Aƥsua", "بهسا اچيه", "Lwo", "Dangme", - "Адыгабзэ; Кӏахыбзэ", "El-Afrihili", "Afrikaans", "アイヌ・イタㇰ Ainu-itak", "Akan", "𒀝𒅗𒁺𒌑", "Уна́ӈам тунуу́; Унаӈан умсуу", - "Алтай тили", "አማርኛ Amârıñâ", "Ænglisc; Anglisc; Englisc", "Angika", "Apache languages", "العَرَبِيَّة al'Arabiyyeẗ", - "Official Aramaic (700–300 BCE); Imperial Aramaic (700–300 BCE)", "aragonés", "Mapudungun; Mapuche", "Hinónoʼeitíít", - "Lokono", "অসমীয়া", "Asturianu; Llïonés", "Athapascan languages", "Магӏарул мацӏ; Авар мацӏ", "Avestan", "अवधी", - "Aymar aru", "Azərbaycan dili; آذربایجان دیلی; Азәрбајҹан дили", "Bamiléké", "Башҡорт теле; Başqort tele", - "بلوچی", "ߓߊߡߊߣߊߣߞߊߣ", "ᬪᬵᬱᬩᬮᬶ; ᬩᬲᬩᬮᬶ; Basa Bali", "Mbene; Ɓasaá", "Bidhaawyeet", "Беларуская мова Belaruskaâ mova", - "Chibemba", "বাংলা Bāŋlā", "Tamaziɣt; Tamazight; ⵜⴰⵎⴰⵣⵉⵖⵜ; ⵝⴰⵎⴰⵣⵉⵗⵝ; ⵜⴰⵎⴰⵣⵉⵗⵜ", "भोजपुरी", "Bikol", "Ẹ̀dó", - "Bislama", "ᓱᖽᐧᖿ", "བོད་སྐད་ Bodskad; ལྷ་སའི་སྐད་ Lhas'iskad", "bosanski", "Braj", "Brezhoneg", "буряад хэлэн", - "ᨅᨔ ᨕᨘᨁᨗ", "български език bălgarski ezik", "ብሊና; ብሊን", "Hasí:nay", "Kari'nja", "català,valencià", "Sinugbuanong Binisayâ", - "čeština; český jazyk", "Finu' Chamoru", "Muysccubun", "Нохчийн мотт; نَاخچیین موٓتت; ნახჩიე მუოთთ", "جغتای", - "Chuukese", "марий йылме", "chinuk wawa; wawa; chinook lelang; lelang", "Chahta'", "ᑌᓀᓱᒼᕄᓀ (Dënesųłiné)", - "ᏣᎳᎩ ᎦᏬᏂᎯᏍᏗ Tsalagi gawonihisdi", "Славе́нскїй ѧ҆зы́къ", "Чӑвашла", "Tsėhésenėstsestȯtse", "crnogorski / црногорски", - "ϯⲙⲉⲑⲣⲉⲙⲛ̀ⲭⲏⲙⲓ; ⲧⲙⲛ̄ⲧⲣⲙ̄ⲛ̄ⲕⲏⲙⲉ", "Kernowek", "Corsu; Lingua corsa", "Cree", "Къырымтатарджа; Къырымтатар тили; Ҡырымтатарҗа; Ҡырымтатар тили", - "Kaszëbsczi jãzëk", "Cymraeg; y Gymraeg", "Dakhótiyapi; Dakȟótiyapi", "dansk", "дарган мез", "Delaware", "Dene K'e", - "Deutsch", "Dogrib", "Thuɔŋjäŋ", "ދިވެހި; ދިވެހިބަސް Divehi", "𑠖𑠵𑠌𑠤𑠮; डोगरी; ڈوگرى", "Dolnoserbski; Dolnoserbšćina", - "Duala", "Dutch, Middle (ca. 1050–1350)", "Julakan", "རྫོང་ཁ་ Ĵoŋkha", "Efik", "Egyptian (Ancient)", "Ekajuk", - "Νέα Ελληνικά Néa Ellêniká", "Elamite", "English", "English, Middle (1100–1500)", "Esperanto", "eesti keel", - "euskara", "Èʋegbe", "Ewondo", "Fang", "føroyskt", "فارسی Fārsiy", "Mfantse; Fante; Fanti", "Na Vosa Vakaviti", - "Wikang Filipino", "suomen kieli", "Finno-Ugrian languages", "Fon gbè", "français", "françois; franceis", "Franceis; François; Romanz", - "Frasch; Fresk; Freesk; Friisk", "Oostfreesk; Plattdüütsk", "Frysk", "Fulfulde; Pulaar; Pular", "Furlan", - "Gã", "Basa Gayo", "Gbaya", "ግዕዝ", "Taetae ni Kiribati", "Gàidhlig", "Gaeilge", "galego", "Gaelg; Gailck", "Diutsch", - "Diutisk", "Gondi", "Bahasa Hulontalo", "Gothic", "Grebo", "Ἑλληνική", "Avañe'ẽ", "Schwiizerdütsch", "ગુજરાતી Gujarātī", - "Dinjii Zhu’ Ginjik", "X̱aat Kíl; X̱aadas Kíl; X̱aayda Kil; Xaad kil", "kreyòl ayisyen", "Harshen Hausa; هَرْشَن", - "ʻŌlelo Hawaiʻi", "עברית 'Ivriyþ", "Otjiherero", "Ilonggo", "हिन्दी Hindī", "𒉈𒅆𒇷", "lus Hmoob; lug Moob; lol Hmongb; 𖬇𖬰𖬞 𖬌𖬣𖬵", - "Hiri Motu", "hrvatski", "hornjoserbšćina", "magyar nyelv", "Na:tinixwe Mixine:whe'", "Հայերէն Hayerèn; Հայերեն Hayeren", - "Jaku Iban", "Asụsụ Igbo", "Ido", "ꆈꌠꉙ Nuosuhxop", "Ịjọ", "ᐃᓄᒃᑎᑐᑦ Inuktitut", "Interlingue; Occidental", "Pagsasao nga Ilokano; Ilokano", - "Interlingua (International Auxiliary Language Association)", "Indo-Aryan languages", "bahasa Indonesia", - "ГӀалгӀай мотт", "Iñupiaq", "íslenska", "italiano; lingua italiana", "ꦧꦱꦗꦮ / Basa Jawa", "la .lojban.", "日本語 Nihongo", - "Dzhidi", "عربية يهودية / ערבית יהודית", "Qaraqalpaq tili; Қарақалпақ тили", "Tamaziɣt Taqbaylit; Tazwawt", - "Jingpho", "Kalaallisut; Greenlandic", "Kamba", "ಕನ್ನಡ Kannađa", "Karen languages", "कॉशुर / كأشُر", "ქართული Kharthuli", - "Kanuri", "ꦧꦱꦗꦮ", "қазақ тілі qazaq tili; қазақша qazaqşa", "Адыгэбзэ (Къэбэрдейбзэ) Adıgăbză (Qăbărdeĭbză)", - "কা কতিয়েন খাশি", "ភាសាខ្មែរ Phiəsaakhmær", "Khotanese; Sakan", "Gĩkũyũ", "Ikinyarwanda", "кыргызча kırgızça; кыргыз тили kırgız tili", - "Kimbundu", "कोंकणी", "Коми кыв", "Kongo", "한국어 Han'gug'ô", "Kosraean", "Kpɛlɛwoo", "Къарачай-Малкъар тил; Таулу тил", - "karjal; kariela; karjala", "कुड़ुख़", "Kuanyama; Kwanyama", "къумукъ тил/qumuq til", "kurdî / کوردی", "Kutenai", - "Judeo-español", "بھارت کا", "Lamba", "ພາສາລາວ Phasalaw", "Lingua latīna", "Latviešu valoda", "Лезги чӏал", - "Lèmburgs", "Lingala", "lietuvių kalba", "Lomongo", "Lozi", "Lëtzebuergesch", "Cilubà / Tshiluba", "Kiluba", - "Luganda", "Cham'teela", "Chilunda", "Dholuo", "Mizo ṭawng", "Madhura", "मगही", "Kajin M̧ajeļ", "मैथिली; মৈথিলী", - "Basa Mangkasara' / ᨅᨔ ᨆᨀᨔᨑ", "മലയാളം Malayāļã", "Mandi'nka kango", "मराठी Marāţhī", "ɔl", "мокшень кяль", - "Mandar", "Mɛnde yia", "Gaoidhealg", "Míkmawísimk", "Baso Minang", "македонски јазик makedonski jazik", "Mon-Khmer languages", - "Malagasy", "Malti", "ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ Manju gisun", "Manipuri", "Kanien’kéha", "монгол хэл mongol xel; ᠮᠣᠩᠭᠣᠯ ᠬᠡᠯᠡ", - "Mooré", "Te Reo Māori", "Bahasa Melayu", "Mvskoke", "mirandés; lhéngua mirandesa", "मारवाड़ी", "မြန်မာစာ Mrãmācā; မြန်မာစကား Mrãmākā:", - "эрзянь кель", "Nahuatl languages", "napulitano", "dorerin Naoero", "Diné bizaad; Naabeehó bizaad", "isiNdebele seSewula", - "siNdebele saseNyakatho", "ndonga", "Plattdütsch; Plattdüütsch", "नेपाली भाषा Nepālī bhāśā", "नेपाल भाषा; नेवाः भाय्", - "Li Niha", "Niger-Kordofanian languages", "ko e vagahau Niuē", "Nederlands; Vlaams", "norsk nynorsk", "norsk bokmål", - "Ногай тили", "Dǫnsk tunga; Norrœnt mál", "norsk", "N'Ko", "Sesotho sa Leboa", "لغات نوبية", "पुलां भाय्; पुलाङु नेपाल भाय्", - "Chichewa; Chinyanja", "Nyamwezi", "Nyankole", "Runyoro", "Nzima", "occitan; lenga d'òc", "Ojibwa", "ଓଡ଼ିଆ", - "Afaan Oromoo", "Wazhazhe ie / 𐓏𐓘𐓻𐓘𐓻𐓟 𐒻𐓟", "Ирон ӕвзаг Iron ævzag", "لسان عثمانى / lisân-ı Osmânî", "Otomian languages", - "Salitan Pangasinan", "Pārsīk; Pārsīg", "Amánung Kapampangan; Amánung Sísuan", "ਪੰਜਾਬੀ / پنجابی Pãjābī", - "Papiamentu", "a tekoi er a Belau", "Persian, Old (ca. 600–400 B.C.)", "𐤃𐤁𐤓𐤉𐤌 𐤊𐤍𐤏𐤍𐤉𐤌 Dabariym Kana'aniym", - "Pāli", "Język polski", "Pohnpeian", "português", "Provençal, Old (to 1500); Old Occitan (to 1500)", "پښتو Pax̌tow", - "Runa simi; kichwa simi; Nuna shimi", "राजस्थानी", "Vananga rapa nui", "Māori Kūki 'Āirani", "Rumantsch; Rumàntsch; Romauntsch; Romontsch", - "romani čhib", "limba română", "Ikirundi", "armãneashce; armãneashti; rrãmãneshti", "русский язык russkiĭ âzık", - "Sandaweeki", "yângâ tî sängö", "Сахалыы", "ארמית", "संस्कृतम् Sąskŕtam; 𑌸𑌂𑌸𑍍𑌕𑍃𑌤𑌮𑍍", "Sasak", "ᱥᱟᱱᱛᱟᱲᱤ", "Sicilianu", - "Braid Scots; Lallans", "Selkup", "Goídelc", "ၵႂၢမ်းတႆးယႂ်", "Sidaamu Afoo", "සිංහල Sĩhala", "slovenčina; slovenský jazyk", - "slovenski jezik; slovenščina", "Åarjelsaemien gïele", "davvisámegiella", "julevsámegiella", "anarâškielâ", - "Gagana faʻa Sāmoa", "sääʹmǩiõll", "chiShona", "سنڌي / सिन्धी / ਸਿੰਧੀ", "Sooninkanxanne", "Sogdian", "af Soomaali", - "Songhai languages", "Sesotho [southern]", "español; castellano", "Shqip", "sardu; limba sarda; lingua sarda", - "Sranan Tongo", "српски / srpski", "Seereer", "siSwati", "Kɪsukuma", "ᮘᮞ ᮞᮥᮔ᮪ᮓ / Basa Sunda", "Sosoxui", "𒅴𒂠", - "Kiswahili", "svenska", "Classical Syriac", "ܠܫܢܐ ܣܘܪܝܝܐ Lešānā Suryāyā", "Reo Tahiti; Reo Mā'ohi", "ภาษาไท; ภาษาไต", - "தமிழ் Tamił", "татар теле / tatar tele / تاتار", "తెలుగు Telugu", "KʌThemnɛ", "Terêna", "Lia-Tetun", "тоҷикӣ toçikī", - "Wikang Tagalog", "ภาษาไทย Phasathay", "ትግረ; ትግሬ; ኻሳ; ትግራይት", "ትግርኛ", "Tiv", "Tokelau", "Klingon; tlhIngan-Hol", - "Lingít", "Tamashek", "chiTonga", "lea faka-Tonga", "Tok Pisin", "Tsimshian", "Setswana", "Xitsonga", "Türkmençe / Түркменче / تورکمن تیلی تورکمنچ; türkmen dili / түркмен дили", - "chiTumbuka", "Tupi languages", "Türkçe", "Te Ggana Tuuvalu; Te Gagana Tuuvalu", "Twi", "тыва дыл", "удмурт кыл", - "Ugaritic", "ئۇيغۇرچە ; ئۇيغۇر تىلى", "Українська мова; Українська", "Úmbúndú", "اُردُو Urduw", "Oʻzbekcha / Ózbekça / ўзбекча / ئوزبېچه; oʻzbek tili / ўзбек тили / ئوبېک تیلی", - "ꕙꔤ", "Tshivenḓa", "Tiếng Việt", "Volapük", "vađđa ceeli", "Wolaitta; Wolaytta", "Winaray; Samareño; Lineyte-Samarnon; Binisayâ nga Winaray; Binisayâ nga Samar-Leyte; “Binisayâ nga Waray”", - "wá:šiw ʔítlu", "Serbsce / Serbski", "Walon", "Wolof", "Хальмг келн / Xaľmg keln", "isiXhosa", "Yao", "Yapese", - "ייִדיש; יידיש; אידיש Yidiš", "èdè Yorùbá", "Diidxazá/Dizhsa", "Blissymbols; Blissymbolics; Bliss", "Tuḍḍungiyya", - "ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ", "Vahcuengh / 話僮", "中文 Zhōngwén; 汉语; 漢語 Hànyǔ", "isiZulu", "Shiwi'ma", "kirmanckî; dimilkî; kirdkî; zazakî", - ) -} diff --git a/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/JellyfinDto.kt b/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/JellyfinDto.kt deleted file mode 100644 index 76b449dc..00000000 --- a/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/JellyfinDto.kt +++ /dev/null @@ -1,234 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.all.jellyfin - -import eu.kanade.tachiyomi.animeextension.all.jellyfin.Jellyfin.EpisodeType -import eu.kanade.tachiyomi.animesource.model.SAnime -import eu.kanade.tachiyomi.animesource.model.SEpisode -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable -import okhttp3.HttpUrl.Companion.toHttpUrl -import org.jsoup.Jsoup -import java.text.SimpleDateFormat -import java.util.Locale - -@Serializable -data class LoginDto( - @SerialName("AccessToken") val accessToken: String, - @SerialName("SessionInfo") val sessionInfo: LoginSessionDto, -) { - @Serializable - data class LoginSessionDto( - @SerialName("UserId") val userId: String, - ) -} - -@Serializable -data class ItemsDto( - @SerialName("Items") val items: List<ItemDto>, - @SerialName("TotalRecordCount") val itemCount: Int, -) - -@Serializable -data class ItemDto( - @SerialName("Name") val name: String, - @SerialName("Type") val type: String, - @SerialName("Id") val id: String, - @SerialName("LocationType") val locationType: String, - @SerialName("ImageTags") val imageTags: ImageDto, - @SerialName("SeriesId") val seriesId: String? = null, - @SerialName("SeriesName") val seriesName: String? = null, - - // Details - @SerialName("Overview") val overview: String? = null, - @SerialName("Genres") val genres: List<String>? = null, - @SerialName("Studios") val studios: List<StudioDto>? = null, - - // Only for series, not season - @SerialName("Status") val seriesStatus: String? = null, - @SerialName("SeasonName") val seasonName: String? = null, - - // Episode - @SerialName("PremiereDate") val premiereData: String? = null, - @SerialName("RunTimeTicks") val runTime: Long? = null, - @SerialName("MediaSources") val mediaSources: List<MediaDto>? = null, - @SerialName("IndexNumber") val indexNumber: Int? = null, -) { - @Serializable - data class ImageDto( - @SerialName("Primary") val primary: String? = null, - ) - - @Serializable - data class StudioDto( - @SerialName("Name") val name: String, - ) - - fun toSAnime(baseUrl: String, userId: String, apiKey: String): SAnime = SAnime.create().apply { - val httpUrl = baseUrl.toHttpUrl().newBuilder().apply { - addPathSegment("Users") - addPathSegment(userId) - addPathSegment("Items") - addPathSegment(id) - addQueryParameter("api_key", apiKey) - } - - thumbnail_url = "$baseUrl/Items/$id/Images/Primary?api_key=$apiKey" - - when (type) { - "Season" -> { - // To prevent one extra GET request when fetching episodes - httpUrl.fragment("seriesId,${seriesId!!}") - - if (locationType == "Virtual") { - title = seriesName!! - thumbnail_url = "$baseUrl/Items/$seriesId/Images/Primary?api_key=$apiKey" - } else { - title = "$seriesName $name" - } - - // Use series as fallback - if (imageTags.primary == null) { - thumbnail_url = "$baseUrl/Items/$seriesId/Images/Primary?api_key=$apiKey" - } - } - "Movie" -> { - httpUrl.fragment("movie") - title = name - } - "BoxSet" -> { - httpUrl.fragment("boxSet") - title = name - } - "Series" -> { - httpUrl.fragment("series") - title = name - } - } - - url = httpUrl.build().toString() - - // Details - description = overview?.let { - Jsoup.parseBodyFragment( - it.replace("<br>", "br2n"), - ).text().replace("br2n", "\n") - } - genre = genres?.joinToString(", ") - author = studios?.joinToString(", ") { it.name } - - if (type == "Movie") { - status = SAnime.COMPLETED - } else { - status = seriesStatus.parseStatus() - } - } - - private fun String?.parseStatus(): Int = when (this) { - "Ended" -> SAnime.COMPLETED - "Continuing" -> SAnime.ONGOING - else -> SAnime.UNKNOWN - } - - // ============================== Episodes ============================== - - fun toSEpisode( - baseUrl: String, - userId: String, - apiKey: String, - epDetails: Set<String>, - epType: EpisodeType, - prefix: String, - ): SEpisode = SEpisode.create().apply { - when (epType) { - EpisodeType.MOVIE -> { - episode_number = 1F - name = "${prefix}Movie" - } - EpisodeType.EPISODE -> { - episode_number = indexNumber?.toFloat() ?: 1F - name = "${prefix}Ep. $indexNumber - ${this@ItemDto.name}" - } - } - - val extraInfo = buildList { - if (epDetails.contains("Overview") && overview != null && epType == EpisodeType.EPISODE) { - add(overview) - } - - if (epDetails.contains("Size") && mediaSources != null) { - mediaSources.first().size?.also { - add(it.formatBytes()) - } - } - - if (epDetails.contains("Runtime") && runTime != null) { - add(runTime.formatTicks()) - } - } - - scanlator = extraInfo.joinToString(" • ") - premiereData?.also { - date_upload = parseDate(it.removeSuffix("Z")) - } - url = "$baseUrl/Users/$userId/Items/$id?api_key=$apiKey" - } - - private fun Long.formatBytes(): String = when { - this >= 1_000_000_000 -> "%.2f GB".format(this / 1_000_000_000.0) - this >= 1_000_000 -> "%.2f MB".format(this / 1_000_000.0) - this >= 1_000 -> "%.2f KB".format(this / 1_000.0) - this > 1 -> "$this bytes" - this == 1L -> "$this byte" - else -> "" - } - - private fun Long.formatTicks(): String { - val seconds = this / 10_000_000 - val minutes = seconds / 60 - val hours = minutes / 60 - - val remainingSeconds = seconds % 60 - val remainingMinutes = minutes % 60 - - val formattedHours = if (hours > 0) "${hours}h " else "" - val formattedMinutes = if (remainingMinutes > 0) "${remainingMinutes}m " else "" - val formattedSeconds = "${remainingSeconds}s" - - return "$formattedHours$formattedMinutes$formattedSeconds".trim() - } - - private fun parseDate(dateStr: String): Long { - return runCatching { DATE_FORMATTER.parse(dateStr)?.time } - .getOrNull() ?: 0L - } - - companion object { - private val DATE_FORMATTER by lazy { - SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS", Locale.ENGLISH) - } - } -} - -@Serializable -data class SessionDto( - @SerialName("MediaSources") val mediaSources: List<MediaDto>, - @SerialName("PlaySessionId") val playSessionId: String, -) - -@Serializable -data class MediaDto( - @SerialName("Size") val size: Long? = null, - @SerialName("MediaStreams") val mediaStreams: List<MediaStreamDto>, -) { - @Serializable - data class MediaStreamDto( - @SerialName("Codec") val codec: String, - @SerialName("Index") val index: Int, - @SerialName("Type") val type: String, - @SerialName("SupportsExternalStream") val supportsExternalStream: Boolean, - @SerialName("IsExternal") val isExternal: Boolean, - @SerialName("Language") val lang: String? = null, - @SerialName("DisplayTitle") val displayTitle: String? = null, - @SerialName("Height") val height: Int? = null, - @SerialName("Width") val width: Int? = null, - ) -} diff --git a/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/JellyfinFactory.kt b/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/JellyfinFactory.kt deleted file mode 100644 index f86c5989..00000000 --- a/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/JellyfinFactory.kt +++ /dev/null @@ -1,18 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.all.jellyfin - -import eu.kanade.tachiyomi.animesource.AnimeSource -import eu.kanade.tachiyomi.animesource.AnimeSourceFactory - -class JellyfinFactory : AnimeSourceFactory { - override fun createSources(): List<AnimeSource> { - val firstJelly = Jellyfin("1") - val extraCount = firstJelly.preferences.getString(Jellyfin.EXTRA_SOURCES_COUNT_KEY, Jellyfin.EXTRA_SOURCES_COUNT_DEFAULT)!!.toInt() - - return buildList(extraCount) { - add(firstJelly) - for (i in 2..extraCount) { - add(Jellyfin("$i")) - } - } - } -} From eac5ca9cc5694a83efbebb5030056fecf1099a2b Mon Sep 17 00:00:00 2001 From: Dark25 <nadiecaca2000@gmail.com> Date: Fri, 19 Jul 2024 10:23:47 +0100 Subject: [PATCH 5/5] Feat(es/AnimeOnline.Ninja): add select server in settings (#62) * Update AnimeOnlineNinja.kt Feat(es/AnimeOnline.Ninja): add select server in settings * Update build.gradle --- src/es/animeonlineninja/build.gradle | 4 ++-- .../es/animeonlineninja/AnimeOnlineNinja.kt | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/es/animeonlineninja/build.gradle b/src/es/animeonlineninja/build.gradle index bd3244cf..0d00888d 100644 --- a/src/es/animeonlineninja/build.gradle +++ b/src/es/animeonlineninja/build.gradle @@ -3,7 +3,7 @@ ext { extClass = '.AnimeOnlineNinja' themePkg = 'dooplay' baseUrl = 'https://ww3.animeonline.ninja' - overrideVersionCode = 38 + overrideVersionCode = 39 } apply from: "$rootDir/common.gradle" @@ -14,4 +14,4 @@ dependencies { implementation(project(':lib:filemoon-extractor')) implementation(project(':lib:mixdrop-extractor')) implementation(project(':lib:uqload-extractor')) -} \ No newline at end of file +} diff --git a/src/es/animeonlineninja/src/eu/kanade/tachiyomi/animeextension/es/animeonlineninja/AnimeOnlineNinja.kt b/src/es/animeonlineninja/src/eu/kanade/tachiyomi/animeextension/es/animeonlineninja/AnimeOnlineNinja.kt index 87d31d61..06758da5 100644 --- a/src/es/animeonlineninja/src/eu/kanade/tachiyomi/animeextension/es/animeonlineninja/AnimeOnlineNinja.kt +++ b/src/es/animeonlineninja/src/eu/kanade/tachiyomi/animeextension/es/animeonlineninja/AnimeOnlineNinja.kt @@ -222,6 +222,21 @@ class AnimeOnlineNinja : DooPlay( preferences.edit().putString(key, entry).commit() } } + ListPreference(screen.context).apply { + key = PREF_SERVER_KEY + title = "Preferred server" + entries = SERVER_LIST + entryValues = SERVER_LIST + setDefaultValue(PREF_SERVER_DEFAULT) + summary = "%s" + + setOnPreferenceChangeListener { _, newValue -> + val selected = newValue as String + val index = findIndexOfValue(selected) + val entry = entryValues[index] as String + preferences.edit().putString(key, entry).commit() + } + }.also(screen::addPreference) val vrfIterceptPref = CheckBoxPreference(screen.context).apply { key = PREF_VRF_INTERCEPT_KEY @@ -240,9 +255,11 @@ class AnimeOnlineNinja : DooPlay( override fun List<Video>.sort(): List<Video> { val quality = preferences.getString(prefQualityKey, prefQualityDefault)!! val lang = preferences.getString(PREF_LANG_KEY, PREF_LANG_DEFAULT)!! + val server = preferences.getString(PREF_SERVER_KEY, PREF_SERVER_DEFAULT)!! return sortedWith( compareBy( { it.quality.contains(lang) }, + { it.quality.contains(server, true) }, { it.quality.contains(quality) }, ), ).reversed() @@ -255,8 +272,11 @@ class AnimeOnlineNinja : DooPlay( private const val PREF_LANG_KEY = "preferred_lang" private const val PREF_LANG_TITLE = "Preferred language" private const val PREF_LANG_DEFAULT = "SUB" + private const val PREF_SERVER_KEY = "preferred_server" + private const val PREF_SERVER_DEFAULT = "Uqload" private val PREF_LANG_ENTRIES = arrayOf("SUB", "All", "ES", "LAT") private val PREF_LANG_VALUES = arrayOf("SUB", "", "ES", "LAT") + private val SERVER_LIST = arrayOf("Filemoon", "DoodStream", "StreamTape", "MixDrop", "Uqload", "WolfStream", "saidochesto.top") private const val PREF_VRF_INTERCEPT_KEY = "vrf_intercept" private const val PREF_VRF_INTERCEPT_TITLE = "Intercept VRF links (Requiere Reiniciar)"