From 06b55792431b018c3f5bd43605e00c9acb01dd94 Mon Sep 17 00:00:00 2001 From: Chopper <156493704+ttony2chopper@users.noreply.github.com> Date: Sat, 30 Mar 2024 08:54:51 -0300 Subject: [PATCH] Add UnionMangas (#2091) * Add latestUpdates, popularManga and mangaDetails to UnionMangas * Add initial chapter request configuration * Fix client headers request * Add fetch chapter * Fix chapter list parse * Add search impl * Fix chapter url * Rename hash function * Add utils functions * Add pageList * typo * Cleanup. * Add intent query * Refactoring * Remove password hardcode * Replace Exception by RuntimeException * throws message exception to user * Add rateLimit * Add Pageable class * Cleanup * Remove unicodes * Remove nullable dto properties * Rename variables * Replace 'data class' with regular 'class' * Remove try/catch. Let exceptions be thrown * Fix search request * Cleanup --------- Co-authored-by: bapeey <90949336+bapeey@users.noreply.github.com> --- src/all/unionmangas/AndroidManifest.xml | 25 ++ src/all/unionmangas/build.gradle | 12 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 7516 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3666 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 12059 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 24476 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 42009 bytes .../extension/all/unionmangas/UnionMangas.kt | 238 ++++++++++++++++++ .../all/unionmangas/UnionMangasDto.kt | 149 +++++++++++ .../all/unionmangas/UnionMangasFactory.kt | 15 ++ .../all/unionmangas/UnionMangasUrlActivity.kt | 36 +++ 11 files changed, 475 insertions(+) create mode 100644 src/all/unionmangas/AndroidManifest.xml create mode 100644 src/all/unionmangas/build.gradle create mode 100644 src/all/unionmangas/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/all/unionmangas/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/all/unionmangas/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/all/unionmangas/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/all/unionmangas/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/all/unionmangas/src/eu/kanade/tachiyomi/extension/all/unionmangas/UnionMangas.kt create mode 100644 src/all/unionmangas/src/eu/kanade/tachiyomi/extension/all/unionmangas/UnionMangasDto.kt create mode 100644 src/all/unionmangas/src/eu/kanade/tachiyomi/extension/all/unionmangas/UnionMangasFactory.kt create mode 100644 src/all/unionmangas/src/eu/kanade/tachiyomi/extension/all/unionmangas/UnionMangasUrlActivity.kt diff --git a/src/all/unionmangas/AndroidManifest.xml b/src/all/unionmangas/AndroidManifest.xml new file mode 100644 index 000000000..fe3c9ed17 --- /dev/null +++ b/src/all/unionmangas/AndroidManifest.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/all/unionmangas/build.gradle b/src/all/unionmangas/build.gradle new file mode 100644 index 000000000..1d8bfddf1 --- /dev/null +++ b/src/all/unionmangas/build.gradle @@ -0,0 +1,12 @@ +ext { + extName = 'Union Mangas' + extClass = '.UnionMangasFactory' + extVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" + +dependencies { + implementation(project(':lib:cryptoaes')) +} diff --git a/src/all/unionmangas/res/mipmap-hdpi/ic_launcher.png b/src/all/unionmangas/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..869d060dff8db516f91c0b7eaadda982ed2376b4 GIT binary patch literal 7516 zcmV-i9i!rjP)lMC-Kh0fU5U!>3(s8Bl7)`GC-YvdsVK}9NbGx9bcR+pSaE*D-xPKhHbS2@g z1dwX!*a6`W^bYw@ZL1%oaC0WNo72LrfI_^JKFcOgXwY8;opjS54}|=B@h9k&qvOIE zb`5`=Urgbso4-!Do_`T(%O7X&+1TQHegw~Z@jHZpg@2?0B(m_=DjW)>veu~!I`m_{ z^O;9KKTtvkT`jHPP@>BZ!H|V;9yaUOu8IEn&U4Fyf;bjTt>_Z7sm85#7BCc35qP>S6f<5 zQKBY5cv#^O9 z=S3N`FZhZnTjds*!;7lY!q)9BR3;CC%Wg+#T`r8rzK7CW4u#7p*dHHO%DzP$SGs~1 zl8$i-4cvxs)b|*Hs?ZKlsnm!rJP2*ZMkt+D&zO>h^AfWKM?zzkTbysVTaohyU2Fb5 z0IBF=!@21_=SCYfvwT_FWL13hT)I*TNBi5bp-79bKKqpHGKbWz-Eq(GA?RnQh3?Ew zsO$|qYnajY>Y@OfLL``*f5RRMaB2;#o$kZ|b1=62xDBU|XYdAk{G*RyVzP_;(st1S z2uzX~S|6D4?QA(W_bq+u&#M z>GqS@^4%s_E>#QIk~fWrh{T(-pF#4O&7>stbXXYY>Hu;RKn@1bpXrwR-wn{|X+7q~ z1!-pr({2GAXUu93(tZ^VHz3mP39`rk1e(;j~S%AEbs zcI*fBcZ;Cp$OJf@#2yzojgBG-vNK~|M`PwLxKq-x^vf;SwdGp`D%I!}r9-zk1HL#} ziFyKQ#*F7Nv|&F`T|jcOwe_`ep722;xa_s0-u_Ofk9Y=M3qWZyfTU4n?pNlecxNI4 z*QaZdS!G6Qm!3%N+zDDTwv+nZLpZ$YB2H1$#~e92X$F? z3jj$f*90Mwx1_;w?Esyb-eYd8QDhMFKrDEZlvu_pk8X=>YBVKcb!{THeDwup^^JwY zW`~0u;ouY%a;g;ATF`(U1*9fQB{cc~{Pn|Cq>9DpY0HGlWyj&bZU~Q#!RyaWfz@Uu zcDZp&d=Q4Gn$RW`*muE3Y;!;tsKuf^#Tfn2qj)U342JU4vVDAs8C|(HNGBWyL0J-?RyD4NJ!9vIeX zXF={IJH9?^$78)h(LLIPSwEb|o#XDuI=NE0qK zy0JaC5>^7(O~#$2F>o|OOS8N^H53tg74j-Ah|||1(d5SQN)5IYIPqxLaP&9h%f@YPTo-_ZoJp>~vIs?5Fp*6>Kw&9ZRT74+8#fSx+M?Fd zfcFnpVnD14orBGM7&cu8v* zbb4C1xp9&W^5X%dq|+me=shf^B&@By3E!{#3~vldK$XRb)kiAOB}{=^Vr{Uy)hM%R zu=9cowgO3Ktq&6tI)vMl}VJ^!n-X25cuIeCth0#A_YUD(%=;qQ`*>U~2DZ zLvucd53#Z!W3A1 zrI^bUi!bb5@Z~3~Fg-nv?2ZBp_m&|>r@)|i8@YNlHs`re?^HrZ!@e*e4BcY_#EA$K zJXL1Kg58&3=Ul`f1;(U0c;I#y>u{E=#r(msI9KDs+xv^~$P>?CLeP0=%X2Au^167w zrqDukB6;1`c`@Ed%K-BGWzs?KDsjdLe5bn^A1_~y5jUBLAx13PU50oAhiJVWC(2bg zZ&rX32lS6sAl3j3Y!?Nsn!q9aZ4MU>kX^c1Pk{ z*>N+zK39t=&p(UNZZgnSd7i|zr3hGXHc~|0N*lzhn1S59+_ih$XH#IjOy&ZEa4`BV z{C(*vB*KFEG?`Bhl%Z{KBQMzx=M^Y4b4a61_|{kl(h{Sfqd>@@7jj~=)s99A`ZF(9 zU{{eE8P$!5Rk?9*sxa-7RccJTH5T)CR^n70hnHsk0Rt+w!(CS@q$y(E$*X9xfX%bW z!kZEcbMx2e#ZEs*0Eup1URCgZos3d4U3Y19C}=+p^Ot@KRaFV*-5!O^!W!r)-6=9_ z@LQPzkvccoA2m`!^hk^fg<9zn&8tula}hunDr=EfZN;u)8_MdH7!c<|d?2$`TJ%ba z#9xV(kqo(lDVZ3OG_#v>XCngCDjUQDB&isKh2=+HBk0MRJ1X)zA}&wJ5xRd3G)%>$k!0bB2PYqcEgWr? zkv>BJu|QD(LO|RLknq{3fJGB^#CAkQuL*d2(Ywewafl|R#k0Lk7?NTnR#>4>1rR_E zRMwd(O17a*bQm-$sX!sEJPU=Xmc%)bQ%cO!s1Y6-h5)65#^9hPTlH(M70Zs6!|ZUQ zV_GlFm^BOWr@n-ykZh4B`IUzwO%3REXOMt+Q{yK9L=ch=x{~`~ueu{XUbYJLRi$Vj zqDEW*hfre>?(Y&xKsd3N(u9*`jff-`bd6LaF-QedfV#=b3(H}#I#58KDznOkq6RzC zqIDRMpyOru@_0R}>T6Nbs6?OZg6ACzA9u@)f016NT#^wPq#%P%A`a_fgL9)x;$9ah$5>34iYT2 zOB&|Sej3sHKcvKgWe%dkHBl|E+)}cde{HFT01(+ApVi>qL~}M#uH@`^8(iJ*LRN(x z@6US$mkKYSU#t-mdzcUtq()J#6<-{yMuQVLM63v)Og>rb#Op(&U{sOnFwLToozzvb zI2CwfTRG0#C^9Et`w<%hG#no4YC=-D0cEu=e14JwNlIhF;*;?FoIfKyDF}*;pPq-U*#WVTfdI`dqYxiMsegs9WY9se-~8C5E?+WS0+HAjlEd;J#}LrLbS z4tjFof-tNWbU42Xg|%*MELCCH{S$HQz+OaF6;QMsfPqOmDxh)Lk>|kv3l>};W8e3d z!PvIpOWYIDfTUm*d9M%zYN+PJ;w6_7Kj)b7d3FN^j(h-54rz~o-5*m4+_(NN@Kds( zBCo{cn@=@9x<&@^02y^NS%!RhfXKB{`oOhG$4~YYtbG4nj7<%~xK6hI?oL< zyku5zvAPD|oV6j-5stv{DCA{kAT7#({~8cZb_)0_#WzPPooLs!6B;VY&;ivL*HMSW zNF($rro4jJV}C3zHP&U;Ve`2LJU(qY?hPz}GWR#xin7d4=+g-{RL}saI&mEU5*Wk_ z)YK7($C+p2w4_4aCgAn=SEH=(B9f?9(>X$qDZPWCq)9u;`>>~iDuP-yhl^DW*q7gc z%xV`g%7wv6Mm*3xgyJCuzC2b*H6sg>f)wZ!uEi~6zY+*Qhn*Y&eJ2A^LyP7jz?bi@ zK}MAgrS%pV!(;IFoT*4S{uLB9nGNDif;?uE-cuya7tF4aL8qs5k;OrB^V}RM&KQL) zhFkFY+RssQsRD5X(Bw1|!qiq&a3RPs>u|ofgw!MuL)!#UqDewi^|0Dv!$z`8_mG!k zMw_j49)b5$Rt@g$W}=Kekm_n0RFL8Nk<=-_rV%M|(P$s&K)AY&B5n=dKT=C&i$(;6 zL}1cWPhgb&0F+gQO+1-DfW&ORbpSCh=Ht8QgVa8fR))MtQh(G9orbSJU4!o^NgWug zL_hLiAvceND*X{`+WbAv9Nh`E!$AhL4$-h-WS0oU1T><+Za^AU48vIGg=ku>Fd(bg zf>>oW%B(?DSgS?_8EvOJ7 z&}IKB0wg(=rT_`YTc=`EI`KxjDLg_+(;E}9Rdr~yte2A)SN$q@$I$fH1c8e ze0Cu*irSWBpzTzbFS%HNX z=cA^!2LC)s&B2HiJpaZ=h)KK&I!aSCR2c}P@ZjjGIXJapCDxy_LmiQb_x|!KLQk!y z`gD#*Y;P(l_VQ&|m6%G#UxWFMbgx_GDYHF#(`MAbQwD98gX~uHt78L z92n!m57W_MPi$-h@);sR5UpRipJ|GjWL(xd znS<0+HRWK;VGGH!rMeV*U%DF==g(5dgfsdx_Eka^n;gm)5(G9zi9F zu2C4cWGf6|aRjEYH;C*s^71(RvhgGA+qxcI(g)(;_D!fL&gIo0I<7r>4IG8+YN&SPb~|B;h=1$m`#^cXl8hqnHJM1>V&JFAd#-)xlZ{{gOweDq)R z6HE#1P(*IoVpbvl>cs+f0R-z{$h5D8m1Y7SnQH3zp08H7Py5)t062WI|Z7F=cdnAFJyCGE^` z698&s82bI?JA|cnhr{VcqlH67r4kjTB{=rmFDS{+21iBu_%@x<{pLFm6`O#lNDcu3 z)PdC~QJr%fhvtokwekXAS8|b!S#z3565R%i7B7Ug=nQ^6QGmTWc45f}OA!3ki%{Cl z0zjg{lsvptA-ygD$&9`j0C`9YcThOEhyR9>3l|Wc{S)-1nW*b_FXpZN83o4=;hD|~ zYS&P!m>#M?6VhM#0x_f_g3WYOj6@(+kl|&TNfTzTD(0qWMiCJ%goUwA7kwZ7Ejhdu z8H*;tSyRs6Z>7@f@=Pa^diKYhM~5LYa}%sFX{hdS2V&Z%0jsCbmQC7^#0PDHA(aEf z25prMI{i#XF%I$!D`F+fjSUfS#kMD_dx-k#RFtP)g(bE(-ali2IyT#Or)@pqD#)&2z78Ua=%@L z(<@&BN84uDrKJ`Nu^oN6oUlS}uj5d#VT|eXl?_cr9)%oKY~nK^FKc)W;{oz6^z{LV1&T(>#pG#>`~&~RqPj8qN&*BJ zk&!$GZ@s$|T4KroGO#Dh+*AT_Kpz|dZNyDz$UBViv^$YLdl>@5qG6`$VFgW=ZNZL; zru~0`O4!XcIQZscs5U{FnZSo<;wHvaXzG zpZ|K593ZdUt!7XxUvl;TXex*YAo6Ur=?`Mgip|J5mxWL&%GXmf@TpE}1gq_0JVXLh zK|l4edFXimbiT9UB5)``pzK`*j`}`lzgdRtRWH$=Mpgh5R;k{h!-^~pK~%V}rS3>X zQY_y8<3t2!tZP;%lcbgw(cfO{Rz=dMr;rVzK#`9hB4i*Adg+D?qHnbdQ?-h|Fm7o+XaN60g&c!SK*_4%Y)C*OMx?#4PE9Ckf( z*ayqB*jCJ%1VZtB#w&9$!hHhD3v6dc(}#cC$(uS+1B)A4ldO`Fjy0IWNyqLan9U8*e>@>ccDzG>2w=x#HbH8Y{%{`n~@eun--#6 z)DU#gcsxBQ2GAm9{A}Ls=X~}TvL`HL5SY{G)Zid(c*v;c(C^Msm^I;U=$vM7=k`FG zm%%f~Q)l+b=iQhtV$7eBg}g#vtTjdZ)6cZ$ZII^+7~OsLD9TpHlPP;W1aCPQLueZ> zpYivfj3u9J#L>OGkgRv(jwB#V>s2>Z0L26}SB<$)ku=yK!fN3JC@q72$o0SxyQVOB%KKDIchy_$Z})Dqer_ zIV2qY6v|q*Pnxv~efcaTqXH=Ml&I;VdUwpRf>~=eQ27CfZTePH=fNi@6Cv`Yu&_!V z7b{-l4ogHur;%9m%Mom&NL%H!@jK7@QqC1jO+?m0t97VwxSYzVmnf2^^{#secc2;sFE2(sGGzYic@#e9u4N0e4l%;F1>#24>xyu77N?6kfC*T=HxJ)_ z^*QXcA3A}y{IWfUMUAxMUZ=;1vG-xh9bKT`x0c+PjR!{-)ce!ot3D>l+d3od0Z6bi z()7HO_a66=Odf*pCz{72{Nhuo#F2J4zAM#X&4(YrQd0vLm1%>5Lh;B`PvO2cI;b+f zp&!0j_~^U&L;8L>Y#t}>k=Y+=*AE~AshG?g2vMjfGL&3}j7|Oo^hxGKpam2;>ULP$ z55pR2+iY07nqmVE_dWg;CU!8wko6sTD`JzhGU7~|vs1QEg5wmuloTBaGBsUJHco38 zWXO1;?TabF+Ly^D(*_E0} z{{#vvQ!78b@loxTA~WxO&7Fndb?IkXuDm+e!k%mL{zg~-uAf6OV_?`cF7duw6AVkJ zm`A^mXs#+gdpkWO5d%L_KJPWYKgN~B7kEUy{p23_8QrKG!eO-HG*ksggnY{fA33~f{(^naK1(quak<^*J%x=kMsFI_94!GPMq;x3OI{rFEQV)1 z;Z0$kGh^oV!U_M%w^Jwz7P>d{0hi+^t9u3wPYGx{e_-r;NhWPKt%^3P@>|(`L1?bs zl1Nez=?`9yo{1;ju*dhHz8Eze3n_i@92MR)6|}iB%V)>rV=-8hUH8I3oWtd|7S=nm z7VNK{wf<~9RkisavIuqICXdSj#71Y^-;F&YHL*{mg$+zHY1*k3O6rVXDKosne!wjzEXS2Ixt2z#=n zWq`4JuI9e~6bP65UIq|*GC-tfi~s8a8|Z2$DuMEU85{{X2_)(DvI}{&0R3-d!~cj( mHvqZ<%r^kK0Z{8S@xKAoJ0cqpTt}n;0000;Q literal 0 HcmV?d00001 diff --git a/src/all/unionmangas/res/mipmap-mdpi/ic_launcher.png b/src/all/unionmangas/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..03dacb35d430c680017f4d2b37c446f313dc7887 GIT binary patch literal 3666 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 literal 0 HcmV?d00001 diff --git a/src/all/unionmangas/res/mipmap-xhdpi/ic_launcher.png b/src/all/unionmangas/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..f87d63d823104d9148869c4001d5e12d750ff418 GIT binary patch literal 12059 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�)S@_ssV^Ywdl`K4;FE0`JH8=lDaIGdtIMJDwL~ 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 langOption.infix + else -> "v3/po" + } + + override val client = network.client.newBuilder() + .rateLimit(5, 2, TimeUnit.SECONDS) + .build() + + private fun apiHeaders(url: String): Headers { + val date = apiDateFormat.format(Date()) + val path = url.toUrlWithoutDomain() + + return headersBuilder() + .add("_hash", authorization(apiSeed, domain, date)) + .add("_tranId", authorization(apiSeed, domain, date, path)) + .add("_date", date) + .add("_domain", domain) + .add("_path", path) + .add("Origin", baseUrl) + .add("Host", apiUrl.removeProtocol()) + .add("Referer", "$baseUrl/") + .build() + } + + private fun authorization(vararg payloads: String): String { + val md = MessageDigest.getInstance("MD5") + val bytes = payloads.joinToString("").toByteArray() + val digest = md.digest(bytes) + return digest + .fold("") { str, byte -> str + "%02x".format(byte) } + .padStart(32, '0') + } + + override fun chapterListParse(response: Response) = throw UnsupportedOperationException() + + override fun fetchChapterList(manga: SManga): Observable> { + val chapters = mutableListOf() + var currentPage = 0 + do { + val chaptersDto = fetchChapterListPageable(manga, currentPage) + chapters += chaptersDto.toSChapter(langOption) + currentPage++ + } while (chaptersDto.hasNextPage()) + return Observable.just(chapters.reversed()) + } + + private fun fetchChapterListPageable(manga: SManga, page: Int): ChapterPageDto { + val maxResult = 16 + val url = "$apiUrl/api/$langApiInfix/GetChapterListFilter/${manga.slug()}/$maxResult/$page/all/ASC" + return client.newCall(GET(url, apiHeaders(url))).execute() + .parseAs() + } + + override fun latestUpdatesParse(response: Response): MangasPage { + val nextData = response.parseNextData() + val dto = nextData.data.latestUpdateDto + val mangas = dto.mangas.map { mangaParse(it, nextData.query) } + + return MangasPage( + mangas = mangas, + hasNextPage = dto.hasNextPage(), + ) + } + + override fun latestUpdatesRequest(page: Int): Request { + val url = "$baseUrl/${langOption.infix}/latest-releases".toHttpUrl().newBuilder() + .addQueryParameter("page", "$page") + .build() + return GET(url, headers) + } + + override fun mangaDetailsParse(response: Response): SManga { + val nextData = response.parseNextData() + val dto = nextData.data.mangaDetailsDto + return SManga.create().apply { + title = dto.title + genre = dto.genres + thumbnail_url = dto.thumbnailUrl + url = mangaUrlParse(dto.slug, nextData.query.type) + status = dto.status + } + } + + override fun pageListParse(response: Response): List { + val chaptersDto = decryptChapters(response) + return chaptersDto.images.mapIndexed { index, imageUrl -> + Page(index, imageUrl = imageUrl) + } + } + + private fun decryptChapters(response: Response): ChaptersDto { + val document = response.asJsoup() + val password = findChapterPassword(document) + val pageListData = document.parseNextData().data.pageListData + val decodedData = CryptoAES.decrypt(pageListData, password) + return ChaptersDto( + data = json.decodeFromString(decodedData).data, + delimiter = langOption.pageDelimiter, + ) + } + + private fun findChapterPassword(document: Document): String { + val regxPasswordUrl = """\/pages\/%5Btype%5D\/%5Bidmanga%5D\/%5Biddetail%5D-.+\.js""".toRegex() + val regxFindPassword = """AES\.decrypt\(\w+,"(?[^"]+)"\)""".toRegex(RegexOption.MULTILINE) + val jsDecryptUrl = document.select("script") + .map { it.absUrl("src") } + .first { regxPasswordUrl.find(it) != null } + val jsDecrypt = client.newCall(GET(jsDecryptUrl, headers)).execute().asJsoup().html() + return regxFindPassword.find(jsDecrypt)?.groups?.get("password")!!.value.trim() + } + + override fun popularMangaParse(response: Response): MangasPage { + val dto = response.parseNextData() + val mangas = dto.data.mangas.map { it.details }.map { mangaParse(it, dto.query) } + return MangasPage( + mangas = mangas, + hasNextPage = false, + ) + } + + override fun popularMangaRequest(page: Int) = GET("$baseUrl/${langOption.infix}") + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val maxResult = 6 + val url = "$apiUrl/api/$langApiInfix/searchforms/$maxResult/".toHttpUrl().newBuilder() + .addPathSegment(query) + .addPathSegment("${page - 1}") + .build() + return GET(url, apiHeaders(url.toString())) + } + + override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { + if (query.startsWith(slugPrefix)) { + val mangaUrl = query.substringAfter(slugPrefix) + return client.newCall(GET("$baseUrl/${langOption.infix}/$mangaUrl", headers)) + .asObservableSuccess().map { response -> + val manga = mangaDetailsParse(response).apply { + url = mangaUrl + } + MangasPage(listOf(manga), false) + } + } + return super.fetchSearchManga(page, query, filters) + } + + override fun imageUrlParse(response: Response): String = "" + + override fun searchMangaParse(response: Response): MangasPage { + val mangasDto = response.parseAs().apply { + currentPage = response.request.url.pathSegments.last() + } + + return MangasPage( + mangas = mangasDto.toSManga(langOption.infix), + hasNextPage = mangasDto.hasNextPage(), + ) + } + + private inline fun Response.parseNextData() = asJsoup().parseNextData() + + private inline fun Document.parseNextData(): NextData { + val jsonContent = selectFirst("script#__NEXT_DATA__")!!.html() + return json.decodeFromString>(jsonContent) + } + + private inline fun Response.parseAs(): T { + return json.decodeFromString(body.string()) + } + + private fun String.removeProtocol() = trim().replace("https://", "") + + private fun SManga.slug() = this.url.split("/").last() + + private fun String.toUrlWithoutDomain() = trim().replace(apiUrl, "") + + private fun mangaParse(dto: MangaDto, query: QueryDto): SManga { + return SManga.create().apply { + title = dto.title + thumbnail_url = dto.thumbnailUrl + status = dto.status + url = mangaUrlParse(dto.slug, query.type) + genre = dto.genres + } + } + + private fun mangaUrlParse(slug: String, pathSegment: String) = "/$pathSegment/$slug" + + companion object { + val apiUrl = "https://api.unionmanga.xyz" + val apiSeed = "8e0550790c94d6abc71d738959a88d209690dc86" + val domain = "yaoi-chan.xyz" + val slugPrefix = "slug:" + val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH) + val apiDateFormat = SimpleDateFormat("EE, dd MMM yyyy HH:mm:ss 'GMT'", Locale.ENGLISH) + .apply { timeZone = TimeZone.getTimeZone("GMT") } + } +} diff --git a/src/all/unionmangas/src/eu/kanade/tachiyomi/extension/all/unionmangas/UnionMangasDto.kt b/src/all/unionmangas/src/eu/kanade/tachiyomi/extension/all/unionmangas/UnionMangasDto.kt new file mode 100644 index 000000000..05cce5d88 --- /dev/null +++ b/src/all/unionmangas/src/eu/kanade/tachiyomi/extension/all/unionmangas/UnionMangasDto.kt @@ -0,0 +1,149 @@ +package eu.kanade.tachiyomi.extension.all.unionmangas + +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +class NextData(val props: Props, val query: QueryDto) { + val data get() = props.pageProps +} + +@Serializable +class Props(val pageProps: T) + +@Serializable +class PopularMangaProps(@SerialName("data_popular") val mangas: List) + +@Serializable +class LatestUpdateProps(@SerialName("data_lastuppdate") val latestUpdateDto: MangaListDto) + +@Serializable +class MangaDetailsProps(@SerialName("dataManga") val mangaDetailsDto: MangaDetailsDto) + +@Serializable +class ChaptersProps(@SerialName("data") val pageListData: String) + +@Serializable +abstract class Pageable { + abstract var currentPage: String? + abstract var totalPage: Int + + fun hasNextPage() = + try { (currentPage!!.toInt() + 1) < totalPage } catch (_: Exception) { false } +} + +@Serializable +class ChapterPageDto( + val totalRecode: Int = 0, + override var currentPage: String?, + override var totalPage: Int, + @SerialName("data") val chapters: List = emptyList(), +) : Pageable() { + fun toSChapter(langOption: LanguageOption): List = + chapters.map { chapter -> + SChapter.create().apply { + name = chapter.name + date_upload = chapter.date.toDate() + url = "/${langOption.infix}${chapter.toChapterUrl(langOption.chpPrefix)}" + } + } + + private fun String.toDate(): Long = + try { UnionMangas.dateFormat.parse(trim())!!.time } catch (_: Exception) { 0L } + + private fun ChapterDto.toChapterUrl(prefix: String) = "/${this.slugManga}/$prefix-${this.id}" +} + +@Serializable +class ChapterDto( + val date: String, + val slug: String, + @SerialName("idDoc") val slugManga: String, + @SerialName("idDetail") val id: String, + @SerialName("nameChapter") val name: String, +) + +@Serializable +class QueryDto( + val type: String, +) + +@Serializable +class MangaListDto( + override var currentPage: String?, + override var totalPage: Int, + @SerialName("data") val mangas: List, +) : Pageable() { + fun toSManga(siteLang: String) = mangas.map { dto -> + SManga.create().apply { + title = dto.title + thumbnail_url = dto.thumbnailUrl + status = dto.status + url = mangaUrlParse(dto.slug, siteLang) + genre = dto.genres + } + } +} + +@Serializable +class PopularMangaDto( + @SerialName("document") val details: MangaDto, +) + +@Serializable +class MangaDto( + @SerialName("name") val title: String, + @SerialName("image") private val _thumbnailUrl: String, + @SerialName("idDoc") val slug: String, + @SerialName("genres") private val _genres: String, + @SerialName("status") val _status: String, +) { + val thumbnailUrl get() = "${UnionMangas.apiUrl}$_thumbnailUrl" + val genres get() = _genres.split(",").joinToString { it.trim() } + val status get() = toSMangaStatus(_status) +} + +@Serializable +class MangaDetailsDto( + @SerialName("name") val title: String, + @SerialName("image") private val _thumbnailUrl: String, + @SerialName("idDoc") val slug: String, + @SerialName("lsgenres") private val _genres: List, + @SerialName("lsstatus") private val _status: List, +) { + + val thumbnailUrl get() = "${UnionMangas.apiUrl}$_thumbnailUrl" + val genres get() = _genres.joinToString { it.name } + val status get() = toSMangaStatus(_status.first().name) + + @Serializable + class Prop( + val name: String, + ) +} + +@Serializable +class ChaptersDto( + @SerialName("dataManga") val data: PageDto, + private var delimiter: String = "", +) { + val images get() = data.getImages(delimiter) +} + +@Serializable +class PageDto( + @SerialName("source") private val imgData: String, +) { + fun getImages(delimiter: String): List = imgData.split(delimiter) +} + +private fun mangaUrlParse(slug: String, pathSegment: String) = "/$pathSegment/$slug" + +private fun toSMangaStatus(status: String) = + when (status.lowercase()) { + "ongoing" -> SManga.ONGOING + "completed" -> SManga.COMPLETED + else -> SManga.UNKNOWN + } diff --git a/src/all/unionmangas/src/eu/kanade/tachiyomi/extension/all/unionmangas/UnionMangasFactory.kt b/src/all/unionmangas/src/eu/kanade/tachiyomi/extension/all/unionmangas/UnionMangasFactory.kt new file mode 100644 index 000000000..0356f440f --- /dev/null +++ b/src/all/unionmangas/src/eu/kanade/tachiyomi/extension/all/unionmangas/UnionMangasFactory.kt @@ -0,0 +1,15 @@ +package eu.kanade.tachiyomi.extension.all.unionmangas + +import eu.kanade.tachiyomi.source.Source +import eu.kanade.tachiyomi.source.SourceFactory + +class UnionMangasFactory : SourceFactory { + override fun createSources(): List = languages.map { UnionMangas(it) } +} + +class LanguageOption(val lang: String, val infix: String = lang, val chpPrefix: String, val pageDelimiter: String) + +val languages = listOf( + LanguageOption("it", "italy", "leer", ","), + LanguageOption("pt-BR", "manga-br", "cap", "#"), +) diff --git a/src/all/unionmangas/src/eu/kanade/tachiyomi/extension/all/unionmangas/UnionMangasUrlActivity.kt b/src/all/unionmangas/src/eu/kanade/tachiyomi/extension/all/unionmangas/UnionMangasUrlActivity.kt new file mode 100644 index 000000000..c4c8fb9e7 --- /dev/null +++ b/src/all/unionmangas/src/eu/kanade/tachiyomi/extension/all/unionmangas/UnionMangasUrlActivity.kt @@ -0,0 +1,36 @@ +package eu.kanade.tachiyomi.extension.all.unionmangas + +import android.app.Activity +import android.content.ActivityNotFoundException +import android.content.Intent +import android.os.Bundle +import android.util.Log +import kotlin.system.exitProcess + +class UnionMangasUrlActivity : Activity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val host = intent?.data?.host + val pathSegments = intent?.data?.pathSegments + + if (host != null && pathSegments != null) { + val intent = Intent().apply { + action = "eu.kanade.tachiyomi.SEARCH" + putExtra("query", slug(pathSegments)) + putExtra("filter", packageName) + } + + try { + startActivity(intent) + } catch (e: ActivityNotFoundException) { + Log.e("UnionMangasUrlActivity", e.toString()) + } + } + + finish() + exitProcess(0) + } + + private fun slug(pathSegments: List) = "${UnionMangas.slugPrefix}${pathSegments.last()}" +}