From f5429b887fd8fd8b4fa6ec147eee09d01732e92a Mon Sep 17 00:00:00 2001 From: CriosChan <36739192+CriosChan@users.noreply.github.com> Date: Tue, 28 Oct 2025 15:36:27 +0100 Subject: [PATCH] Add MangaNova (#11260) * MangaNova: V1 (Closes #11259) * MangaNova: Bad isNsfw in build.gradle * MangaNova: Changes asked by AwkwardPeak7 * MangaNova: Spelling Mistake --- src/fr/manganova/AndroidManifest.xml | 27 +++ src/fr/manganova/build.gradle | 8 + .../manganova/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 7578 bytes .../manganova/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3900 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 10809 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 20755 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 28039 bytes .../extension/fr/manganova/MangaNova.kt | 176 ++++++++++++++++++ .../extension/fr/manganova/MangaNovaDto.kt | 122 ++++++++++++ .../fr/manganova/MangaNovaUrlActivity.kt | 39 ++++ 10 files changed, 372 insertions(+) create mode 100644 src/fr/manganova/AndroidManifest.xml create mode 100644 src/fr/manganova/build.gradle create mode 100644 src/fr/manganova/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/fr/manganova/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/fr/manganova/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/fr/manganova/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/fr/manganova/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/fr/manganova/src/eu/kanade/tachiyomi/extension/fr/manganova/MangaNova.kt create mode 100644 src/fr/manganova/src/eu/kanade/tachiyomi/extension/fr/manganova/MangaNovaDto.kt create mode 100644 src/fr/manganova/src/eu/kanade/tachiyomi/extension/fr/manganova/MangaNovaUrlActivity.kt diff --git a/src/fr/manganova/AndroidManifest.xml b/src/fr/manganova/AndroidManifest.xml new file mode 100644 index 000000000..8ce70cc98 --- /dev/null +++ b/src/fr/manganova/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + diff --git a/src/fr/manganova/build.gradle b/src/fr/manganova/build.gradle new file mode 100644 index 000000000..a25b712ec --- /dev/null +++ b/src/fr/manganova/build.gradle @@ -0,0 +1,8 @@ +ext { + extName = 'MangaNova' + extClass = '.MangaNova' + extVersionCode = 1 + isNsfw = false +} + +apply from: "$rootDir/common.gradle" diff --git a/src/fr/manganova/res/mipmap-hdpi/ic_launcher.png b/src/fr/manganova/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..916f830168a9e744ada8a4f39448075b6e5c2c02 GIT binary patch literal 7578 zcmV;L9cAK)P)u6qBibYWzWB|+!Bcj$9&x>M`D-~ImYU+$&g z*5|4SP`B{8Is&%VN0% zUmGB*V9Xd>6l-lA{=r)ZaES7MXPC`@>#qqAjos2VjDL7G&HK$u^NU`XTa@dHOc>)Y5p1jQJDbT-6`p< zhlIsG+|6p6hC>(foc84#E6cMFJ8MgJR#&^544yi1Z=Z=qmY!thL@-(00ofp4AS{p+MeN7ce~IqpM{O`>nSr`=jU{v z*hSx`CmV!g&+I9wJ9zLCV85!(wFDq)_Z@?yJ8|I)Wng^EE*yM%Zb5;{3?k5aY=()k ziLC~NMkPIXZ2w;TpPVN^5)D${%@8ri#$wY1oAy3yWY|3s@m<@8nEJ$p3jHI({K;&T z%P)nwj_`VR%LSk5$(U<7Qci7=m!NDJ#2W@*c6P)*62qm{0B zmNg9xi;ew#T>RLs;id`3uzHqhT_ngM%xOClu`qnvv5$lARG&+gPny&vnqihyOVaeH z?CkuO0M!zJv}3~JBmXC=?ehYNuDg$aKOZ~d34%aolssE;^)IK#88a;!OKONVA;N4L ztOH+P288w$C740-;x&ky7AITfj}8gN=|N&O4i}?2UM(_5zAm)qq%a3qI1^7xs|m+W-^=l_HEbMV0i7M)A^Snd-tAbGATD~jx7O*42Q#} z3%->wgfv2V>NXtm=6>DVg-Ol(h)7lGkz0t(hM}`7#1}f<^&~cTbj}7^Bd$IiNh*v7l2m33RMoI&+Clut1$v~$fK|&n@&xU{1X;#_9!Ww0gR0fm& z5WQ=*7PSN*m9E5$@Hv_E#*CWq0g)jS%ude>V!hAk6GG8=!hoSg&~q0+XQ);{ku?lR zI7m?p!xj#*XjTSIocxPb+xfNeKkdEc?3lVyo{g(Y!C>9AaDp20fdr4#4jlbjFzTA%g_iA zHUdBXkCy^vbOIGx19W5sP}T;Z6tIagA&>}=OluwIT$YEDW>kEIM|qV=i__9flZTk+ z2O>N>!{;0)=dPPoEd_|m!a3b~XUA#!iw#eCyfNVof`{-iy?pRbpMQU^#4G(|BHtTry3W#c1sy3}YL*VfEx zXhvlg0fR%+Yjp;oWyod>gxE}c25FbD)M>j++`~bAq~DcVTJ`pk1HjBHsuK< zgCK=MfP#P%#QLIu`^SHKtG{}u_S}!PAP~wE{c1X^WKd+-+KCZyt?!R+HL^>HZE&cL zwIQ<@#Fqk%40K`EgH-^~R`ao=@4GNwYUes;OraAv>Xz2OaK@y=&ct(}I`;!K^#m*5ve!5fH0 z9n#A+GGBB&;N1F!=i>H{o#n;Ie=>{23`lIGf}@Hl=@*e^0ul)z^&>(f6P`$F`@7B| z*3mYWjZpN7m}CsHDE$O#6$aI^pRlL{2^cLod^ZIfChb$Kkl^@13qKE6@N zWuQ_pQ%gCGzZ<=|Na@P7Q(T?#XG0JKa=)o|`0x*H-41rm;f2wC7F7RmJuGStKulrx z&Rwnb%$fsrn(dQnbKj^!CQOfw2!GMWtl)gUo*sV`c*O+SElbWF{+hR^)aR{6U>w*X zl4_7VOvL<)dbM9tNUWX@$%qWO!=R%wHFN-7l57-Nrb5tAM+&O#n>HQyl`lSMC$5{Y z$$-uLSVBU(1!)~thUwT?6mW{tjiMs0Nh5;Iig14YemkH+@BxzK2-q)l@oj6XrD>eKTv&%Eib%cb|wyKWB2x*BP91dEakroLx7Hyi=`8P_ z@_4kpcD~mirS*udz$r=g^`7#l7ds1gBQo}2C&jr*R>O?jqMp{fYbQ{^$5WKZD8XXW zs9KR`a;!0slvz@b3|r5wJ3j@=6q6)Z8!~OS_%FI;y&KKxyC?vmc~L#T127T`1~^x* zS(G@-w;(t%LEahAmgAUngxLb zi~dNEC4&+eYD{&&Mqvs;%tlQ?v<&1*QGjh+IfvoJ3%w zQjP;8lLQ~2q+a`a$}I15_*1Pgn9d9x`ebsbIKQ^jcN=GH);_g*x0jS(eyJLuJm-1< zqKY%ev~Q5$V%NhPnpOgtF*ciVRgCT>i;w?PgD*{sF^GGg*S>6Q!=Y?^Ht`aQ7dh2E zxo0xvdsV|bGG%0jglUIghz1d3BNB>^GD1V9&i0<^Zu#{4YEFb89JKjd}$ z;|d!;#(s|l^Tfo&jO>nG_tFfBB#B2W1-R`9zEOq}JN;_P9DyXzgi=J9Oywg+EQ&F^ zr_^-X_2qM4Yo@N;>AQf(2`ih;Am+{V9@eo`!Y6Jj@X@5>pRL*XQ?X0)UaUFg_hxpR z*BzDM6=LO*fai-R8jjC9Ak>qjk#sEZew)y!u_kuChIjTxjiE)^0$yKhkYp3iIs!ui zY2vbp;V1xMP|zwLG#12{XcEcOlzfdT(k%0I3o?R)1w^pJgc0|h#yFH!0E)oauoLPK zevXz=FLYceE(=~y4w>ukyKj9+NcE7aj2|}5`dl;Zod#b86kLk9uL#oB7({>5ZB(~* zy!KUnb$uU+)7O;Q^e=5bcl@2X)dhqZy7Qfqrbg9!7CHHJ@JQOa)$Xz>&$|kD<2m9^ z#C~|q=a~sFSsZmw%BT?mio>eVZ8)8rl5@#8D4CW;Of$S*S`zd$t+iO}W_?1Ql14O! zisV~HU4!G675p9e9}#>45SMPXMi$&T0DU|fECC1uM`&9>2n6rsvcG$5zjr${M$Oc~ zR;?nx>eg+mHs);miiG@ikE{zkvn3yprp;#%{ircHVxZ18qPx~Q*DmpUw(!+U<}?%% z*C`E%G}^wlaXEr3JlPY7gQJ3b&4Ah;=HfZBYC&{|DeagvzLm%R4wj@Dfii##ft10h z_#%mx0~M05pipq{I>b8)j{BXpQ!*@r2gX!BO6$?9Uk1=AH}zK98vnCR0opz2-VuFR zcD<5|5r8`U2oP0{<_qpV%b0El&+>%Hq%WH7ci-LnF0=W4rcHkA`H+$o-4{voDqTun zo2@~LOT}jTFs#eyGk)*!S+0|$I!9)N&g+-NE2$+ZE`Wrs@m!ov;x9+NPlw)B*kMOor69P+3 z;7R+5IfOx|S!jN56i_3l?e-IqRyDNXC%c-7DG@U^eQN}&xRHuVkVjrv zofftv#LGNh@9!YziLMm`YjYO`*+YUlrlf7e1Bs&dALyP!ynz@@Ig%935h>Zf$5;RM z{Z$86ApB08U*GLEPX9$e<6;}Q#{n&2Do=nRZdG#ls{79%mk}0!GEwt+6pA6M(ROvozAJ9wrwMk`hR?y0}y*S$vm{ZOs%qedxjSW+;0x3 z-M0v*iU=MtL+$DaW5$DKdLNbxIVax+{8A)p4+S+8e>kIJ_h`IEH5KxHqd3fZl99Yo zO(SZ;o>DLO!?XjIzr_pYx?TxUnnA4+Mq7E`RLbkMD#0NZ$!M$#QK=^tuh+oKWzTPs zCceG{^606WY3SL9BL781_7I~nqTGbpi7Zd%V;Hk~TT#P-fWi(orf>w-(HC#D>WF)0n zzOiVQNa{g2T3L2%$d_hLS__}4&+ii+&TYQ??s-Opp*H5j2WdezA|QrWko82*0$TkN|&@Tu&C;&I~!rHJAx(AULCncvI1&x!NzS_c2ZcakWd zOb}s=nnqnQX>ATb+`$C%gtlVz5|`M@zd|e@`C{Eq?w^=UL6UV^JIOas!bq^z`x8KC zY2VA;EA}qIYZNiZrsPzmec3l#8DLCfa7a=S9Rk!9$%0Ee3NVd}9e{d6V}#ALF2Dl5 z2Q^0mfu?*vltcC-A4>l$ssmDHMbpZZvilmNe;*y4trvX*pwm96<7x_D-Ug2?{T5^A z#`j+}{!wYvEP(d6GLB6TME%3XCweFGr~7Volwo48gaBk1#zTpQsa<60MPgz#-X6+| z1#$p<9R1^6bvgGIxm+YZAsr-~v3$^;xpzz~y-LgCa&>SSNc2R33cM7qFah%^`%x}1en8Q`Nx-LG&-F1w+}f_1*ON`uKq6O-OGAYG_&6=z zh=2eqqSiF#W;_-GPB|cF!^yxK|Hy&EPQT(HlzP+59z85`($g0i-0la#c3uk^N1$5Z zi~jN<{NbY`a0Yjtc(?p@)SaGy_ej#Rtt6Yj>gR?4B3;I&Uuo5Mf52dV-^q8Nhr086 z=6P!s7pyYqUy;VF$8_R1M0&iat1fi&%F>ONmOTb`eYQ~g*STj4$UQ^@h+&x@kAsfS zrfL?)Sl~8B19}3KvaCZIBg@zXHw~T&pL~AndFq4N+oi8D%5z|4(peUd9;gfgZ{en` z@i8%Tj9%|#ifv$JOkDjsr|0!u@c1*E;NSgXWBuy}^z5s%m5tk1e{A~jwO%6DS6x)R zQGf{Ay4yJ}YI7+4h1cIb>L1z*{r_HZn#4dVK-_EtWXulLZQ&>g51=hH@E9oKZW!F; zfJ|WAZmVJWBW3w7e``O}Slwz|zP8*RVu*XRjjvx?2-Vr5gBY|-jX;C9J|LG@iBfsa zMaX~uI22a#iiVIVSgmctiHQ@tBnJXBupT~);;OZBT0Z!VcGq{OHLuJ5Kvk%l)pPX8hOYXn49)`aa z6(S%68xeJN{a=1HE6bQ=iAlokGtcQgt`Q*dG>t`j88doG?+Ki$gxr@lh0dSSwr_fG zi*AnJn9t?Nr(YVdQe4x7eb@A4%`q`@4;O(fIusqY&O@bcPpimzEeH@93>lbleJC?z z6i2_Ir>F=rOp?)i#1s^4{8y{+0aOTbSH-cuKhduxh%<#pEDdfUu(nJ(KY z&yU`Vi>GZAKR#Odlc1Al2H*9IU(ErCJdDIIhR?&TeLL%7#=I{uPtUG8Msgo@=NOj? z5WO{;U7p0k5T$~JtdTSbl8^*^AR0j;G$KJDHWY7)WgN1RtD+3-Iln=lE9$Q+C<@&^or<++8@hiTC40}N*Gd;Ne0slVW#Ug6 ztIX#rzdqxhz3^MuiL4?4BGIlZt;byvq~-!dlte$CgV1?lsWS=$X4UA*6J(>3nh_Jv z6!L^o(`BIrJ~1(rMcLA#cqJM9VifrNiB0O!>L!I?`860hE2|Zke*bh0jd2ml+({lr z$6`%PgDCqfK%H%e-zJd5DnW=p&6jvRKQ8$eUU(-5u+&I|eJFyn<+{PSoW|E;ThsFd zSYk@LjggU^PB;T+=Xh&Lpr+ciT5Pj^7)swi%s|gKAV?DWZ<@uz7O6AST3oLuJ3Xve zpEhFI2y4`2(OuD~V1-awtqA_cSco<{Fp|by9fUPu81Ipl57G+}%hRrKEbU=&N$(J= zc>mGE7vPImzJ<+u&j5*antHq&+Dz442C3i@rl`4$DxfNmjmyPY(E1>Pnc9n^9%UGf zUZl*xayUrb<3rd)_O-}pdL*F@AW)J-O0q$X3RVhfGhT1-D^)|_Fi9ml)QFL*0VRGD zg)jHOnLQ=2`ip$n`)MAO;vsdJTiy9~P0hKSB`pC+1xW=+dG@~eF?z-%8dmrYyVsmO zOAZ;)cSU>>%{-gM!8nSx=>4ccELR6wu0fVqK?GLTAfc4NP+8r$RF4iW`vfbDGFjyy zsR-hUWmqYo0k1;>Z;1nrep>{e&fW@p8rc$#QFRT8k^FPp^wbQCPhrng=R3w06sUWK zuG?B#3eeBYZZgDjFC=%Fht`ngqNQaiC0o7($U<|=LHhyg$5Hgy+fDFbxRz}r1Y)Rw zWRvTR!r610^La*11835K4fk&v4SEREXu*VmBBN~2V}R!w*?}~u#lX>1FT#at9?DME zLec&jDE_#SE$SXg@=fBTz{6>2x>w`cKaXU~a)I<(8y3xGGh4iH8 zHet{EV|E&3Dx*dYEV`{>?~8bkQbZ%>hT*bxvJKijV51&xXQGGeX%oYXalD;LF8vnj zvfn$mKhK~EP>}}EnYG9j8jTIvBH)UVBLMz7KQ5`^;EQX)S>kTYy+RR)ZlSTTt*%_H zFFBQgqX>2!>K}47hOAV=g(`atUK7T{@%fi{h z;LMWu5Rk~`a@>#z=BW|T;h{+C&#ev6LC5G!0Xbdk;9`Er7hD@YJy&+{yeN7KYVGb) z&c$PSjd(}3sQ@Siu2m^Lq6S-|@0@q8@Wbqy!lpaNl>V%0)v^f-AsVUvq(-wKp?(_*t@!UoQ#D;J!(l_Nhy%}hCfF_`ki6WKG_867Dk)M=_8^k zossoZ%mp{-Poa?4_$htG35S2j13Qlpz|~NK{^s^!X$4e(J~( zbq@>zgi#ory}Um+q(e6oAi`30SD2b2DE59KYeFyFmSBm^SwptMkdL}%N&r>-Q7X$C zI#_s9k_A_u4Zs=Ev)Q;%qs_#aMGft(bjtfD?kOj0=}IvAUe|uDlict>=_36EK0s4P z%jb_-^)q+*FKl`xKcBeu%lo4;@Hcbw!9HB^>yl@~`ipk0C2OY4YVK-Z^Zg*aTCM#O z6Hov}9noSzN7=7R1|NJPF#~m&fiBju(Y z`Zc~5mt~!KG(bRUF}y>HeD{PN|hQLuKb$V zVsJIx6nfnvd@YcE3xG%;$Y9h?-?YvLpQ|!XEsNaD=U>+bs%wG#|N8uI#i0MQAl?G# w8dG-*pj!a7%(`ze=oW)+F{ot-T;uNl1=j-P?gr%IlK=n!07*qoM6N<$f{AT@8vpbODw%K+2a=F&++SP7_ z=9ZG)x?VELt~Q36cj`UhQV2w?cKir8R2`bWja}X_vv{$&vTxc^PY45=luTr z|4{HNZ`7~+{_q=s|Fi^ulfbWD0`>X%iXIy_xc^f?eyR#d9J!CK`oiY=Q{LXfb_5~* ze*?K|06RwI29D4N%+orZ3ps`CNUc)(MDNWX)%BdW0(Awd8=nS=V`Q<$jxa z&LgEqk0JnpfH*gCXs%Yl$LoTvEU%W-J7luPncKgq*i#2=*P5RLtltvYJLVDfV7(?v zv;DnuovI?o-{3PtbJo0AQ@(s(Yik{j9i4M@5`a1{A~7~e8Q3c+SQru!EZiH^T?~Ve z_Cs!sV(X&MJ9e%qX(G1slhn>%0QBV{lb7g#p7-b0`tFO)mz(imvR5(5UZ{$piF;A@`p5gGgT5l~3r&dpx{K5k=YuzLx|Du?w;Oz3ETLCU+Q@hq*TWGqP3 zCM7F7%wQb*MZ}@U=M_Uu# zfw)VbablCG0h9}RBxl_pYJ4m~6EK*OP!y$g0Nw96s+Y%Svlfr?ouC(N^E#!VvOGF) zi>+7P#+Z3+pZ}0b`2&DD-!CCqXVn%TY=`%!TFQ4c_Ktcr-0qlR^CW;>&^V8cqoo=L(z1~wXY?6Vw^X|1QUZ?ccLm^CgF&lg z1G}%V*SG9RjY=Kk?bv7SNR*p6S?x2H%E$I|mRf)q$LSHWpq^6K5*gny9VoXHWOy7A z0QvQK9}3)BeSvay^OKztF`OMfW=)bdU@9dOfV$^PR5T9C8l_VPEO!x=p-YAhn~;^& zymQ{^*4S0W)&?KK@3bG3zz)b|@}Q81Md(VZKmvsz^Yjea=dp(kY-594p0`#%___OP z6^w&Ovy~Wysf~}oHet+_6>gOvZ?=raZ3O% z7>&x8^n+GBn_M!#u+SIo>H4(D2gB{`C)eF+!Uors{FiLiUl6f=+b6bn3g5mDgO}FL zMS{m01L%1`^m!W!7?l-Nadl{lvxf#k&oO}u0EJLMK0E9Qdp<2it z{x(k}K-G;OKQ}I=X5~jF)8JVj+e`fdkPE4@mlL8_8XfH1%WB!`*XoL1*#j|@Gtu^y z$DS~>hLsd%nU6k)#M%}_MX497JB~AgE3t!*11}c_w1j~Uns;9nJ*Oxdgx(2tLnQjP z8>*xbq1pzorfl-A!VxzuF)?~ma#|e%peU4p7-WLycG7*`J;)M+V9XOIz8BQHeC9Jp ztZ8cxI!F%YmjomM0EW+kvtAlyKK>SNvVIyL6+e+>E6tu1?{n6wVTG=1-{N<+JtgcF zoy+!y3&Oz3$D^D;tl({*&TFlD_oUlyIWr-6ZZCy>HsQR_*CT-U&k3WRJjfl!FG9_@ z3HkAiJDs15J z0NZYm@RWeglSUP~#)&7of6Pw8dCSXv`|93^j4hFhLL3#<0948usJ;g4QWoOK%U(x!jrvQB^8R{0s^g6H(<;IX|~ z=Wd5L5(8NzSZKB)srl;%aC1vIGP^cMy+bAA#&>xk7bDtVKP66HRmqhWWM`{#HQhGL zId&wC`4g4(HE=So`?+1h@V^}b;*y2yQ>MHf7+L*PrSj~G^yRS3`p`o!wDJ75*uuh_ zil#fp0VJk&#OMxQcV?ufx9m^009+*o))J#x94v4zwY&RZ(x!$o*0x|=Tj@H&J+ep0 zQJ5&1s36Imi28rllDe%~i2fp7u1wVl+<(!WCzO(L!1Ox?RFECYu84mbutHc&RCZH# zcJ#Dv`U>d3SNZw@=dh(;!m0JWdPNppy?W)JW^-4~;bZij0FZgj^{DU@t**rOgw{h7 zi27icnPUPzGzk1OvvZIyVcXBOPkBgxvIy#Y*{Yr!Ei*9+bib(ktjh>&TTe9b&cu!+ zc*uFCR~gU-2VCxeW9e`4GpueOb3|ue-ezUc`3J8>p8mS~Ldd&uW;VL9LnIE|WXS#i z(6&b!OPk!Wr+T&i&uk<>BBH7-T3x6Y__1c!5MQ=gCAem0w;tP!b0ihkwGEf{gall#QZX|Jp>*1GyiMfE5#=|8ils>qHf4sa28gQTI^3Z2kbySR%p?HM!%Cq_-V@xs#aM6sa!gCi1x!PhSuzC3GkxJ7X>vKZ5h5 zGE*0(GgBTg(i<2#rfKMf1Od}#3}n9CM=5}d0j}IE7Cf+7SZ(&eHL~x*)Tv`)IrdXX zJtn_MU;9_DMKC)*HP!xVPOLF}^={%uzt`>rfNan-h3h}Gdeh9Q=EHx)F-g``_2Kg6 zF$~Ogc%#9E*(fbz#EUw~qybfXNPr`B4LdXG{Ch&_KL)Cy8>wx)=yI%rc&W|>hyHp- z*t(+{$fbyPVH>AU&yDbS-lw7}l=kr2mgxm>U#ud-v}8cwnxoDmujg#^o+aw_T?GCB zP@WExKdlk_4UIFEOz#9BFAkCAj+Tp?cw}$8yC13tD!Wo@Z`LWMrl0!kD_n;P16ra^ zPsBnZR+Wkqt#GB(;`8x@3B(xP%La^8&xsFRtaZDegqUwBPtGfSi=7Y|$OUXSZZrc3IJyHX*n%0W{f8vS0eEaLUwHy*p#NhPo{M7lIh zMm-IT2p&2ZI=o2;LgF)OS}k|8YI%`IEj`2rDC)fo<&`s(T(*02 zZ9u11pjTqW#&0vryL-CDa-kK<;*N%wC#?sa&+y+A8@5Ev=y3BEdr8tf{(G=lLJ^)8^bc3)vnY0wPF>jefm9)VqB zq4q!xeE8UA*oky8Uixf=#FX1Me*xSit&@FogY`05T#pl5P7(E576{pMf|&I(D#Rc# zDiAa+c2IYyR0_ zY2DUh`_WQkAR8E?h7dFjnIHl73Jcd7onZP$J)A$=hDo73kgxMttq_i$srd%Sn+N8s z)>72dzc<$gZKHQfei%1ejyp-fAd5^e^aDC$A z&XWhg^utm3CbhVeuKnA5mpu^gL^vi~9rS2s_mYo^(UGSrRVNtPn=z0!Cyps->Ro@t@N)t1=d533&2IpH5w`vaqQ6PtM=TIhVDR~7330000< KMNUMnLSTZ_euZuT literal 0 HcmV?d00001 diff --git a/src/fr/manganova/res/mipmap-xhdpi/ic_launcher.png b/src/fr/manganova/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..02dc66e0f965d089a2347cde5d469e7baa9cdf68 GIT binary patch literal 10809 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 h6O8|VKlTAN${k}y5aUt**() + val mangaList = mutableListOf() + + for (serie in catalogue.newSeries) { + mangaList.add(serie.toDetailedSManga()) + } + return MangasPage(mangaList, false) + } + + // Search + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val url = if (query.isNotBlank()) { + "$api/catalogue/#$query" + } else { + "$api/catalogue/" + } + return GET(url, headers) + } + + override fun searchMangaParse(response: Response): MangasPage { + val catalogue = response.parseAs() + val mangaList = mutableListOf() + + val fragment = response.request.url.fragment + val searchQuery = fragment ?: "" + + if (searchQuery.startsWith("SLUG:")) { + val serie = catalogue.series.find { it.slug == searchQuery.removePrefix("SLUG:") } + if (serie != null) { + mangaList.add(serie.toDetailedSManga()) + } + return MangasPage(mangaList, false) + } + + for (serie in catalogue.series) { + if (searchQuery.isBlank() || + serie.title.contains(searchQuery, ignoreCase = true) || + serie.titleJap.contains(searchQuery, ignoreCase = true) + ) { + mangaList.add(serie.toDetailedSManga()) + } + } + + return MangasPage(mangaList, false) + } + + // Details + override fun fetchMangaDetails(manga: SManga): Observable { + val splitedPath = URI(manga.url).path.split("/") + val slug = splitedPath[2] + return client.newCall(GET("$api/catalogue/", headers)) + .asObservableSuccess() + .map { response -> + mangaDetailsParse(response, slug) + } + } + + private fun mangaDetailsParse(response: Response, slug: String = ""): SManga { + val catalogue = response.parseAs() + val series = catalogue.series + val serie = series.find { it.slug == slug } + if (serie == null) { + throw UnsupportedOperationException("Bad SLUG") + } + return serie.toDetailedSManga() + } + + // Pages + override fun pageListRequest(chapter: SChapter): Request { + val splitedPath = URI(chapter.url).path.split("/") + val slug = splitedPath[2] + val chapterNumber = splitedPath[4] + return GET("$api/mangas/$slug/chapitres/$chapterNumber", headers) + } + + override fun pageListParse(response: Response): List { + val images = response.parseAs().images + return images.mapIndexed { index, pageData -> + Page(pageData.pageNumber, imageUrl = pageData.image) + } + } + + // Chapters + override fun chapterListRequest(manga: SManga): Request { + val splitedPath = URI(manga.url).path.split("/") + val slug = splitedPath[2] + return GET("$api/mangas/$slug", headers) + } + + override fun chapterListParse(response: Response): List { + val serie = response.parseAs().serie + val categories = serie.chapitres + val chapterList = mutableListOf() + + val currentEpoch = System.currentTimeMillis() + for (category in categories) { + for (chapter in category.chapitres) { + if (chapter.amount != 0) continue + + val chapter = SChapter.create().apply { + name = category.title + " - " + chapter.title + " - " + chapter.subTitle + setUrlWithoutDomain("$baseUrl/lecture-en-ligne/${serie.slug}/chapitre/${chapter.number}") + chapter_number = chapter.number + date_upload = currentEpoch + (chapter.availableTime * 1000L) + } + chapterList.add(chapter) + } + } + + return chapterList.sortedByDescending { it.chapter_number } + } + + // Unsupported stuff + override fun imageUrlParse(response: Response): String { + throw UnsupportedOperationException() + } + + override fun mangaDetailsParse(response: Response): SManga { + throw UnsupportedOperationException() + } +} diff --git a/src/fr/manganova/src/eu/kanade/tachiyomi/extension/fr/manganova/MangaNovaDto.kt b/src/fr/manganova/src/eu/kanade/tachiyomi/extension/fr/manganova/MangaNovaDto.kt new file mode 100644 index 000000000..4dff6086a --- /dev/null +++ b/src/fr/manganova/src/eu/kanade/tachiyomi/extension/fr/manganova/MangaNovaDto.kt @@ -0,0 +1,122 @@ +package eu.kanade.tachiyomi.extension.fr.manganova + +import eu.kanade.tachiyomi.source.model.SManga +import kotlinx.serialization.KSerializer +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.descriptors.PrimitiveKind +import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder +import kotlinx.serialization.json.JsonDecoder +import kotlinx.serialization.json.JsonPrimitive +import kotlinx.serialization.json.floatOrNull + +/** + * Data Transfer Objects for MangaNova extension + */ + +object SafeFloatDeserializer : KSerializer { + override val descriptor: SerialDescriptor = + PrimitiveSerialDescriptor("SafeFloat", PrimitiveKind.FLOAT) + + override fun serialize(encoder: Encoder, value: Float) { + encoder.encodeFloat(value) + } + + override fun deserialize(decoder: Decoder): Float { + val jsonDecoder = decoder as? JsonDecoder ?: return try { + decoder.decodeFloat() + } catch (_: Exception) { + -1F + } + + return try { + val element = jsonDecoder.decodeJsonElement() + when (element) { + is JsonPrimitive -> { + element.floatOrNull ?: element.content.toFloatOrNull() ?: -1F + } + + else -> -1F + } + } catch (_: Exception) { + -1F + } + } +} + +@Serializable +class Catalogue( + val series: List, + @SerialName("new_series") + val newSeries: List, +) + +@Serializable +class Serie( + val title: String, + @SerialName("title_jap") + val titleJap: String, + val slug: String, + val description: String, + val genres: String, + val poster: String, + val author: String, + val dessinateur: String, + val running: Int, +) + +@Serializable +class DetailedSerieContainer( + val serie: DetailedSerie, +) + +@Serializable +class DetailedSerie( + val slug: String, + val chapitres: List, +) + +@Serializable +class Category( + val title: String, + val chapitres: List, +) + +@Serializable +class Chapter( + val title: String, + @SerialName("sub_title") + val subTitle: String, + @Serializable(with = SafeFloatDeserializer::class) + val number: Float, + @SerialName("available_time") + val availableTime: Long, + val amount: Int, +) + +@Serializable +class ChapterDetails( + val images: List, +) + +@Serializable +class Image( + val image: String, + @SerialName("page_number") + val pageNumber: Int, +) + +// DTO to SManga extension functions +fun Serie.toDetailedSManga(): SManga = SManga.create().apply { + title = this@toDetailedSManga.title + description = this@toDetailedSManga.description + artist = this@toDetailedSManga.dessinateur + author = this@toDetailedSManga.author + status = if (this@toDetailedSManga.running == 0) SManga.COMPLETED else SManga.ONGOING + thumbnail_url = this@toDetailedSManga.poster + url = "/manga/${this@toDetailedSManga.slug}" + genre = this@toDetailedSManga.genres.replace(",", ", ") +} diff --git a/src/fr/manganova/src/eu/kanade/tachiyomi/extension/fr/manganova/MangaNovaUrlActivity.kt b/src/fr/manganova/src/eu/kanade/tachiyomi/extension/fr/manganova/MangaNovaUrlActivity.kt new file mode 100644 index 000000000..61cb98ef5 --- /dev/null +++ b/src/fr/manganova/src/eu/kanade/tachiyomi/extension/fr/manganova/MangaNovaUrlActivity.kt @@ -0,0 +1,39 @@ +package eu.kanade.tachiyomi.extension.fr.manganova + +import android.app.Activity +import android.content.ActivityNotFoundException +import android.content.Intent +import android.os.Bundle +import android.util.Log +import kotlin.system.exitProcess + +/** + * Springboard that accepts https://www.manganova.fr/lecture-en-ligne/xxxxxx && + * https://www.manganova.fr/manga/xxxxxx intents and redirects them to + * the main Tachiyomi process. + */ +class MangaNovaUrlActivity : Activity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val pathSegments = intent?.data?.pathSegments + if (pathSegments != null && pathSegments.size >= 2) { + val slug = pathSegments[1] + val mainIntent = Intent().apply { + action = "eu.kanade.tachiyomi.SEARCH" + putExtra("query", "SLUG:$slug") + putExtra("filter", packageName) + } + + try { + startActivity(mainIntent) + } catch (e: ActivityNotFoundException) { + Log.e("MangaNovaUrlActivity", e.toString()) + } + } else { + Log.e("MangaNovaUrlActivity", "could not parse uri from intent $intent") + } + + finish() + exitProcess(0) + } +}