From 0f649bb48f5a1b446cc3861706420e86a61f26bb Mon Sep 17 00:00:00 2001 From: arisnguyenit97 Date: Thu, 4 Jul 2024 09:50:44 +0700 Subject: [PATCH] :sparkles: feat: add Markdown builder for telegram message #3 --- libs/unify4j-v1.0.0.jar | Bin 143087 -> 149348 bytes .../telegram/message/MarkdownBuilder.java | 174 ++++++++++++++++++ .../model/enums/TelegramTextMode.java | 3 +- .../model/rd/AbstractTelegramClass.java | 12 ++ .../groovy/org/bot4j/MarkdownBuilderTest.java | 101 ++++++++++ .../test/groovy/org/bot4j/Telegram4jTest.java | 5 +- 6 files changed, 292 insertions(+), 3 deletions(-) create mode 100644 plugin/src/main/groovy/org/bot4j/telegram/message/MarkdownBuilder.java create mode 100644 plugin/src/test/groovy/org/bot4j/MarkdownBuilderTest.java diff --git a/libs/unify4j-v1.0.0.jar b/libs/unify4j-v1.0.0.jar index 1fd0c8e0eeedb6633b9a502516739c58c4c9ae41..26ed8d5af835609e2b5469689058721925289eb7 100644 GIT binary patch delta 16410 zcmZWw1zc2J(`T3N?(Qxr0coUDx=TPr8U!Sk21&`KLFw-9MnFpG7LZQq&~I6M-{{327r58C^{g77h;v1_=qqLTMuwodNdY#;*Wt4!H$VL;osZ zhTgt%J=|�F>}hf(bzn7D@ym$6!GT0+L1)C^13D0E7}Z3`+!1VqOIJ$XOA4M-1f{ z>Y+YzUK?N|LOH(X)IbbKyShvt^)S#7VPFu@;$x7BYx-YOJpy)Y>9L_mY##vd!NVGS zkUlmt#4BAA(%)&l@v9=tH6K4r0iYnyIL=3JO48*~u^&LeOjWMhq%bgcf-o@Dv1

<-T;3Rqzn_a84O7QCn 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 P@-LkN2BsP!g@O4$9G+pk delta 10400 zcmaia1yoes_x8+1x?8%tyOBm32`TAr327Kox?>O#kP;B21SCYHOOzHQm6k36LH{!Y zZ}|ScwZ1!R*4^{$=RA9#ed6A=&a5P%@6DrOYpWsMA_9TX&_F0fpHi`zk>EFBRU~BC zErJg5>jfL)HqHyb)uVuEkP!weiV+gRh(u4uLl`9FZ!i$XC?hj~FfN$qNf5@Y6mX3! z-U%Q>APB1QKFJ2jIXEL)Pa;I9RA45DHd$GCEm(uMO=rVbhrjAHl>A z24A-&h8W|c!?H3Yr}+J}JAFxtt^Rq+Bp5;RPvgNr1bCUNf{6nsRU;`|43mRE9-`2F zVlY`cMHv+&5?m+SDgJ~p@&kyDcBX9f7L-v2Ehc>+1&dL@!>*Iv)%D&>SJ#HgIAiU& zk_Nqdg0~tz&)%<^7inmKR5koO^mU)4zufcP{qR8}n|9~uQc`O~>c^Z{d$3d&rhT5M zqC$L6vZNksIN1d4pyX@Cj8=uHX!agSXqk8Hxuj_aME;2`=W&WM=T~SCwMS~%*J&n6 z&PQ>!-1m0qstrf>WEXV1>WL*yHVH_NyfW1$_~XQ(WxjDJW=<a6FdCON8kJk4z{W3c~=!~e}7o3VdM;=6{{Zeyt7I>C3-!UzMA z{Z9j3N|0aevGxXm-F6<>?;iVY9LCgajNswdGRYsum{AvATE0|s@rsjf+92gij)@0D z-%K$PT(S+w4>F;cTD2-~<4KrWkq$i)soq;&7N>EWkttIG_U2ltZSXv~eUNUssl ztglmrQwAU8<=vG_sTRxIC|5sqHEL_9GkV2EYO|NPoxq4ZBmN!P-@trf?vvl-+Eg!x zQ+0)F>m|GNYoXUtdNZVPCwh&g1fzzyG)^wfg;hue&V{uOP9?NV+Aa4}jA{0g&<5R- zdg+}ZC_h{2V;i*%%oVI~qA#W%6Wj|CA(_;3CyI$@)Q_m$$TBV9pxoO_?!!`#ZvvnK zIWF5YcXtT%@M=EkEK;bxR(eI1(A}B3T0+qwbGxHd^R>LToijVp!W02H@29}R0ilBo zusG(~#q^1iZt98*YeKabuzqNoqe-O7k34DzNtVJ@wUA<@)xqyECp&)>*p7&0lkFYW*Pf~bxoBVdHsHzEs z!sq3)!)3R`({8!)_qPHAHB26zDC`@coXM0+X82B8a1!q%S0*wSfs82Pdvxi#QcDec zNM;GZ;O7cjp3PBeUA$7uq8+!b)SQXXZZAA6yE8UT;+`1QsJLYrz1h$}SJk+E$V)FH zI5Xl?neXco%W@&FJ;X@Hoc6u2e4#WCVkqfBeYVLp#g`J}61z)OyqWX1)6X=(5^pTE zvXovzcD7CsZ|qj;YuX3m`YuTNgarKAai{vi%IW3Dylvln(Q|~{%Gc(+IBIvse3hP@ z+8Fa^Jpf&8QcdQCdOWH}uSpf_c^1z7lZQ<$xj@Fi-__jwy9^`cJOTF8TIBGLDi8&f z3%s^U%i+|y$wlI5F{j)YC{A6=cN6L(0(tF58XU#~x+7|gXp&3z587hi4PbFUqO~-M zl$|N64U?rDQdbCA%Hevh_Xg@}H4tebEU0l@Qm#_XMY12d;zF@9vm`e{P4dyhi)*}M z-OSgs#+i{uqOf+ie*~FXdpRBu{;-j{Cj8#)R{8xxQFiQl_}fX zf=cV;1ePL7nrCv>r&bIF;@`(+voC z58ZSM=OxCyba}ufU$IB?SV84sr8;^KPj>>IeA|jG-tt}mNJ-WVf$;J8UtHwXF3C*y z47v%+@A@(f0bhoV6OatM4He39p=d1h{bN;+xsYjJV`4>`UD*UW4UMIalb5->o4lP^ z>d+_L6>##^dYLi4#rmRuICT&bNF6cBDyx!6O_cx1f%JI=oyHu~seCp?dLT*G9&%t$ z&YP!Za;HxVN|Dh#l9_jjku?ug5<@s}9KII3(IWgIkUKZ3TS|E=Q>3>gzNCvNT0Yk* zzLma5Dy>Apqe6s;BkNpku@eo)@mTAC4J9bs9yj!re$Lrz(eTbXHk2zxNNc=psxjr( zuBJlTfRz-X)3NLYo}i>evy*V-SE`b=!&gb}coz55k+B;<)(MKZ(dj3Ai8AH#9&k&lV5oY}@}^7*!>Hy}OMZlQPFDTYm##dK@V^H{GYfH<@*VTHv zk-U0#Khpy5p1ilKPnVcCO-I=BM!OAq>NO8?ne#}^3H91MEVOhhr57NJOy9pfc3{m7 zT`$6OMrUed`Vp>Nb>!qy;acVHG~0@PU-4bER1F%Xf%|rw+c>8z)3S{R`^YTy-R@B( zCWd(u%oyy`6R{r5oU@iQlo;Wz?KfQHZ@JoI!$xF8k6AQWy?fc(dxjR*NXynFzP9G{ zlOpGw<(;)FO^<~tRio!al&*-z6;dD4Z<@ypVdU_!=a;s(-_@vr@k?W3`&%P>Z zv@x1ZIZ)7L#;7KKjnw-_p>eFSpRdiHmvR+A2z|icsfAIDO;62`4q+JmUW-T79^rgB zJ8`?O!JEXX!0diB-9+w#2qKg*?_`D#+#>V`srwm?7-mD3Eo{NWIv%pv7p&Y6i*Qdi zu}^*PrA>ECa!U7u)-m*PsWy?kl-S+M`-~o()M*LvCrwdp#uw9{JWjzJAC(*=2pxD9 ztKdM2#Iedj$tm3Dn*gzp(bxYX@`++AuK10BEtlM#QyF_HOc5U5(tSQ2GC!>rqUj7X z+J$?V>8}}QfV2nt7&%nghJsV%fdS-0uadipI=AKGoA_(9bc^zBmeYkus5v>DaxPXv ziRWW5_j?FbhlT3aLq$L_ih8MX?6pITsL=u##omV<^7K+ zye3*C+YehPZ(NQdQNfRNT9R4mtQmO17fx_iwT=576WvwG$*L3UTm*F9#-1gWayg^? z>|F%NfV+FoehEq#Wr!64(+25#Xp^3^3sr#;Qre4*9Q;q#c^1>!9nww0*LnJ9v!&XR zQuMS`%XGqzCG-0zl3t<(_5+0y#nUBpf@BM;BH09-=CV;Au|e$D5k9KCWgil{G`&9CSsr&Lh()LDTu?ZKI9fg9qIKL)E+OY1N=Azu2{p;ZDMb|}#*Ptcas zF+0>TWh7?!86_u_P}(>=QkpdE{C*BB>n0;d_wRb0<;t&!+W{k;=?>Ilbi}w^HMH64 z(`qw2nSoKLON;j5znQbP)f;gZsBJcOb65t(-=`C1j22dMvWqH=M<~h{>z9W-%I4o= z)@nAVDy)3;6GG&%vi)%=nl&&ZgBFd}7_4(2m}XD8uXc{7jy|ayO70*nG)B-?U7*JJ zBwkiFv~Kh2wN{P{`n-&Ys?QeISbfbpb0vBQ`X|&4JBOT^0p`iz$3dMcO)-~EpxzI* z?9$;v_mC_!T>`2HjNiYtF>u0oQroriwJ$Ebvn%7A(H|laB*xPJ!`o6;q~1?t&yMU& z|8BwTD?PDGoOb~+ZT_e91C2;7zhixKL&0pw@`8>rm;OHe;Extz=5Os{n61T?cpt6w zyus0{LM@>vxX`Sri7ov!Y4MYsm%5N2LtbXy8()#Om^yc}#4b*UBadnyhvYL;=%>5s z#o3g@bisy@xLErpRlb95hU}S@?IOHNpv*uU?7;ot9HmQ+BM~nfN%X?N z6gb@;XT0@$b!#M8)HRzc?=E024#|G|?rp2BGT|E;F?oRlT{FRnaJJ_v_XUW2xS`Tk6+7U&$893p!Ma5rdsb;H| z;WdGX2#>K zVqM3${vsp#{51o!@G^IQ>>X+Y5HW>-k=cVxiZV?8G7XmJ$Bp;VQ1r@C=8vIQYeW*{mIrBg!@Xu z6LR{(*4l+JpD^PMaM(_8=%)C}tw?87Q>|NkoG)~Ub^ukvk^=8BHtX*AN;vv35S1Lt z|E%*1_^GSKFEOIV3^k0@Aejg6gNqL$%P&m*$tyYwDk$_^!TM5y^2ePEjXATZK@seE zQtacgxU)^O8)(70vWp(+?Sa@A6)c7B0TBQ5m|L$>O1$%8_>jIKu-121c5rFSs~6w%puX@~pFe|atrE(beO~ck(jlQBBxB1z z13Zi?AKBN>KwaYEk?YxQy|m7bBxEL-}AQcNSA54QJ>&guJ0tHs7E%cq1CrC;lR z)nHvr+!iZ*MV-Zp%4cedjEw3K_q=YqfZl$-lK1YT+>v&b=C3A#ra^s$^<>_IpJuQE zW+%wRBR6ZF^3eOU6Kn=6*<;m|o$~T)78zbI5O%yXWb>1YVKgnci zoHol}BpHXlP3D^^O`pH7o>LXcJOi=QoI}$D;@n4@u!%&-WH}rT)EDU&tpuO6$FCG2 z?{3I?SBT4LN@h_~MEjtNxvC9Vzbp;<;;Hr!W6T#z0&~o_q;G{GF$CASrOzhqtC+@l z&F=uIcd*x23-UJkoQjDDGxhzYH6Dz&e_Y{3Rb;S9(iE2b9DgD8#VNiSbr=sqTtH*R ztVFOx`2=LHfc%1C-sM)$Wr1LVifr*)+n*|!SIv(_+orfhL#jK zdNcVOCAdO!nQ2)-SGN}5SC4Oho;McYEeaKG!@)2IeWt2 zc-yC8Sk27>JGgI=Y%_V%c&dEIjoB=vc%S#;%2QXa%&?FfO`ll+=$+#f@q zm1BaaoA?bHAAfgUjyMiPGK&E7JUuC-lzo_DI_Vcv-`nq|F2Cbs69W;gJ}?v392oP< zJnwh|Iy4sS_4_S4NnW4&6=xdr{}!+`6EdAmp+6w;He062OuA7ZzlqLjOs~Zt2Uq z%O}4oBUX;=3m=}?TZ;AvCglcyvbtkpNmx9QF7HUI;aD7GE0oCr)h-!Rh|f@Sj2%;N zP{kDDaCV6B6m!*kRam9Ual*Efp))mhGAQ1nZ=~hRO63h5Q~AM8u^H+qBvs&2S~Mth ztjMJBk=62|VvNf+80rlPHNFt2n8Ruzw%p~(K5+k`cx*7tZwX4@bkDY}eS;l!w7til ze6&sT82gU$?`{Ld5x2~y1j%nx3rW4dxi6q?FCRoQZ(IgI=3Mt`-HM&<59#x)&OeSGM=fM3;$qOr$y?7%adOz(KgKIC5pC_oa9VV?h(A- zs4}Xyiz#hIh&cis9@jzFIQB}}R|7hNXoOhzUijG3RCNWVd#3yIc=F9grk+{}JQIp+ zBTFztZM;ugDajf&43Rr1jQ7HDf7SLVyD&Pc=|e#IZ2u0<$c_Oe6~%dm3D?0aSZwQH zmd=IWto3{vf;93$X})0z=o6^ zopqSe&?(@tLLr)vH;r6^_A|=bnI?J1ANEFF6MPk3E4D-<-YAk_E@iy>)+{U-RBJ%V zQS(D;RW7h_}p(d~Diauza?Wls>k)NWb_j zIgFVaQd5jRux3``;o53O%h4@cK~$4LtxW<}afL9?cP)^zL9?|c318fC@%G*Bxu;id z-)!>-g{*UiI9IDrdqbS{a{t&FTy_OcB*RTV=P^D77A)z^CU_UiK6{;2k!JGVk*=0e=Tz8fx96xZISC`{@gVEd=$ADMnmW8CmrlHZ zA~8RYIlU_iV4*00k|@XwM9r=sO?cu*v*3ZZ!XiBVQXdxZB)Hd zutbvN`4N3zSkOI-P&1ne)?H;sYiYfAev)PUYARnzq6(hoD_Z5u2uj#a;A|-37`)~l zVSJj@AgS_HB51no5S5#|Dt=H)d&3cZ0F%tr^^xBrGC^$(=|`_!Pe*O|Oo=F-eMch% z-?M57L1BZCVb|p8Yw{r}d?2dFDwMXs(|4NqOl}^FJfx{T?O#3!9;ww6iYO!*)Su4Q zTQx3Y7fN_)Z(ZhT3Mi86eGr!N4D*Ou#=7Y2nviuLXuMzJ-}W`I66Qgw;Fq?jESY>J`l&Cw}z_U8dIu zbK5<+*XL&OeOc&;W4Mg(=NM}Z0mgGJ#+ zlbbNO7m;I=h&Y(%76NmW1~Xn;DRSUsBt+ujwT-ixw?Lo^4CqHU@NFor2td(fp#;vq zg%3Y0TzipsO9%`C4a2^IP+4IxbrZK5*zh`&Saq-&;!F}6?*?Xo@`?edWJsVtDr?w; z%&{B>E1w>8#0^Y_;52FIf%C6(+cN;8APV1fW(1D8?p1_2I0=y@l*k4wgh*W720V_S zK~X$mfgtu^G^mC>__{_9?7_y@YRyjIj|dB%k1(QTw;TA*H3VxZf`DW^!QgAY!Xt1N zqJB;D!QlSu%9MqJzg%bZI0{BXv`B~n9|4GJb-gnr$cByGOL}N(6qvTDDjwW?JwA@l zz%Oy(Y$$0Jm>dEkITaX20&zLl%GvTJQmuzjFgDfA~lRG=Lj05XE-Iq8e;W1_pE>* z!Z>3E?!c!eRGbaCo^md10HUzaQZ_&u!C7Ym)DVUcJD`p*BH4kv2;(C=pouVOIRI6J z;rf@+!U1R_5NysH!-5mAMa1goyb&bf0-O;@B-dYpTsJzD+<*?k<-vV}v~%C+;Pb%9 z@SGp;0NRLg{MQ+H3lAWR2>Xi%pa4!f(`#*rp}f2RIRez+g@O7#a4;RO7YCZi3m`@f znhSRv_d=iZ0VL@)eK^p0xCb6&8}3Q`gwTQQ7Pk>PVtg?0#RNhp)aVw}oev^vY4?H@AOCkS@`2{x{_8WayQVt3jDvJu1 zh0+Mz^paZu2G^s3)0Y{Epce2S@VLc3V{Z~QCY5Qv`P@5M4-bk6mSxPhKU12&?~{4F~Aanp}7c@1bRmZAVd^v69Z!A z2itKhVFeTTqnFeFP|=_%LI4ATul7xO@iUAch7JNr{=qL0g9k)NqeAzE0Iuuu3d5p~ zN&V@(S#6@;<2Z8WFJF>dEa6S=YKZbIP z-h`48g-Ip++XdUIiJ+}w02V?oZPMJZ4)!GAfOSvoZ#@uf9vT|_OYf5?z=`PEZ@8YN z(cdn9gi7&4Jz`1NBgYL^Adx>*w$1*g5JB3 zAc8i_-=qxJ|EmPBKfT;s@Djw^!4+8%^R^N$(1QRdq0#nWLg<}y`23K zb}SdpqJ`4lxk+B;4lMc5O86KMbKCIzXNxnOLpOa90UKiYj=}kdQp0r{=))@5iW|9e zGj8*6x$qi<9Na|+)vg8OKzU_u{3%K>fA#C@A%7?X;2nxl|7Wozj=ySN!2p3uNdNnQ2-&#iOOpd=P@J>>#~O51 zfTdAz^miIGbnquv4=E+lK5WP6g_W27j|?`E04TmNtadO-JgA`}fMo%10O$O*USTg< zHy3=plA!<~cTansM{bUG{(??C-nM?;|1*>?ZlCQdz+y$hhLY*8*06hVm?{bYO`rsr zp;xKIj0OV!q`q0Ie+uP4uTMZeuGC&|h P*hd|