From 7b73698ccecc9a1e0e92e775259809dfde1dc33c Mon Sep 17 00:00:00 2001 From: Ahn Jiwan Date: Sun, 4 Feb 2024 00:25:31 +0900 Subject: [PATCH 1/6] :sparkles: feat: change category to slash command (#34) --- ...-31 \354\230\244\355\233\204 11.12.52.png" | Bin 0 -> 46529 bytes ...-31 \354\230\244\355\233\204 11.23.23.png" | Bin 0 -> 47120 bytes ...-31 \354\230\244\355\233\204 11.30.19.png" | Bin 0 -> 79889 bytes src/bot/initialize-bot.ts | 6 +- src/commands/category.ts | 52 +++++++----------- src/commands/ping.ts | 10 ++++ src/index.ts | 35 +++--------- 7 files changed, 44 insertions(+), 59 deletions(-) create mode 100644 "src/assets/\354\212\244\355\201\254\353\246\260\354\203\267 2024-01-31 \354\230\244\355\233\204 11.12.52.png" create mode 100644 "src/assets/\354\212\244\355\201\254\353\246\260\354\203\267 2024-01-31 \354\230\244\355\233\204 11.23.23.png" create mode 100644 "src/assets/\354\212\244\355\201\254\353\246\260\354\203\267 2024-01-31 \354\230\244\355\233\204 11.30.19.png" create mode 100644 src/commands/ping.ts diff --git "a/src/assets/\354\212\244\355\201\254\353\246\260\354\203\267 2024-01-31 \354\230\244\355\233\204 11.12.52.png" "b/src/assets/\354\212\244\355\201\254\353\246\260\354\203\267 2024-01-31 \354\230\244\355\233\204 11.12.52.png" new file mode 100644 index 0000000000000000000000000000000000000000..a51c125a90dfd8cf000e9ac095d22807c0508a9e GIT binary patch literal 46529 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 Wf1eX=9!v!T{G`O>MGJ-X{r?X%>PyG~ literal 0 HcmV?d00001 diff --git "a/src/assets/\354\212\244\355\201\254\353\246\260\354\203\267 2024-01-31 \354\230\244\355\233\204 11.23.23.png" "b/src/assets/\354\212\244\355\201\254\353\246\260\354\203\267 2024-01-31 \354\230\244\355\233\204 11.23.23.png" new file mode 100644 index 0000000000000000000000000000000000000000..f273ee954cacb5dea36fb14a20ea60905f846450 GIT binary patch literal 47120 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 literal 0 HcmV?d00001 diff --git "a/src/assets/\354\212\244\355\201\254\353\246\260\354\203\267 2024-01-31 \354\230\244\355\233\204 11.30.19.png" "b/src/assets/\354\212\244\355\201\254\353\246\260\354\203\267 2024-01-31 \354\230\244\355\233\204 11.30.19.png" new file mode 100644 index 0000000000000000000000000000000000000000..a25a2569862195a1fde8d6516a13e836c041a5b2 GIT binary patch literal 79889 zcmZU(1z23Y(+7%sai>V3K!H-6wu?IyhvM#wEUv}ft+=~8Ebi{^Ebi{Em-jE<_uYH< zd9uk#GMRH`lF7_336_%)`+!1>0tE&2K|)+u0SXFc2?`3j3kl)9X42PE_5DG?R7glp zLP&^0&eqD<)WQe~iZIS0s#Q`@54X=V9_zQ9+&3)430*^MGj!0QoPf9LBqFDtni$Xy`!EI}33{Vgj{SW#36AvZO-rgF( z#N_1U^v#Lwo0Y8z6U)z^Kbe?WnOIpF-+M6HxmeokIWtadLpWnaV)5zKMe>qv&{pYjZKalC47ABT&%uN3?_B$!}KeYfk zQ)eR!HDOcGyLjGt@Un9-bN{RV|F7kLIsP9?)&HgZ&i4PJ{68)KUrHrABU>RW&^t?e z-v8Cif7t%t#{Up8wG1;q~~AuRCQ8TwcY zURQaRfRDkJ*_H|cvM+ORs-Pesw}cPfOYxik7^VtJ1Z{#ZJ2n$r;n%x%!XrQyPZ?{Z zcaW#mySAma53zRZ5ZANYr`E?6yK$cR3gM#aV8f`)Otb*1MLak-XaRmq%=b*^6D9$P zqySON+ZdTd;vcjL!!ui>o3$WJXNBQ{KhuqtxKTGHafMt~??G;`F?pqt3L-yT<*pDi= zcX#xVK0mm~se)@Fb^*Yf06fx!EuRp04fz0CQNb<4X zxOv;c{J9GB1Lh*=iV9?7@H?iL0S3>h$Nmul?T z$SWyR9%Z8@l>l!Q@ zB09+Tylg9H`C`4Q;0g?I_<3VexO zhjOcha!L&?aoj)hy5iUjXj1g`rh$|Pfh|c+alkCpdnMyaR^AyjLrC4cUG@)!LR(qg z;h#0PtWMz$FL_pygE>b8b$!cfmtQvZzhq?a?c52O|Ao77$`OThLeZoL)(ZdcbbJEi%QYwNJ1!LSu#AbmOiy-p;)B&v1?75fv=&JK%)#Su~{Q4}aro1! z{sA1BM0mF5!OTCCCq4B&e5(<0uCRL>7yLv^^WWvR+=@hqoSJm~P(3?=?Mkm6^I@v! ziU_i6`cwIUy-3J~!oJC^1l)!q#A7VLMe##y3qucp{-ho@FAL zahpSG@(g^DeRHi$;nHIWk#@v-krWUFUfUD0B#UB96 z4e*0w(K%@>13B(dwrR2hbz)Hxl>ag!3jR<7r~_%ynujnPgL8gjfls#Pd3m+;Yaxc8 zM(CI6+e?@YNW%7tB}${8o9Jn&Z3?@^S>*%DWv$ZUQpnVuOdOtAKh9&4Qk(pMqSDbc zF#&PL7)$w-rtVv%JO{ypUKwr0f*i?|3whPJya6gw;w&;0yRF64g=^y}FQ(5Zo&YDF z-d>kf7K8k-nM^(Rp(L(^aA3XJqK}|Zcj{kFE$3T{#V;gpU|l}*xzgCED1MW%)XC1+ z#Kh&nO885eS$d`YyT*1R-rzv(!fF?=oBhf)ZnDl!Y{|IjIox|o|rtB<8*6*00ss*Y-K~YoPn_-w6Xm9 zhoflSbdIGR>G?N>UcMa01&9(Ai0G_CrU~aHVh0B(Cp0Hl6ThSa)3w@UPw5WsiOjc> zCa<~D7YUsRB=^Xa`6Pxut~~MRd`;LTJ3Ox=ooTx>RNO7re3x0GQgQHQm=UQ_Dfz1! zHl0Rgca)bFk@7C3PS~gfq^^H5Ozpdc>6#0h-|n+Vj7O5?nt9cb)$nJo|L&F|{5ay6 zGS3tgyvjY(33x|MnsLZ5C^%SPF&zCg?U?NuGsl%^ z$Rvv+JBN8PogORQv8|#f-rQCVYOUbg%KV~f{bm@f9(U&}VR};0>$xs4Ekv!_FssSI z43ca(BiKD-a9f&G_oF0Dz&Bmx^V9BVN-Uis&Erji=`}Di-Trn&tz?_tVk=)dKA&o~ zL`gB9N`|c|s8ENGN~xL2mr+DKs9iCNA5A{pAi5e^QNM9viLfM5CR_Y@wGD5ysuVkN~tq{eu$cU=quTScxI_ zzie8ER-hM+>%k(k?9t3;jTHQK!tCJsf*sW~4YN!2xP&QYFf8AS3$v3T`@zg!`qUq{ zXeLI8S9L8>FcGW{ctwq9t#ZvG2Opvah_d)c9xFk&iH;Y!CneL^Xu$d_W9eM)8knhS zVu1ZVW;oeZaIwL55Ed@>-xXzYaiH0kvRL_o>|Js3=T&wfq(oK8Mt!=2qL^`fe~v6-p}pR%_MK&P(+ifKK>|*(fZW;*F`a4&+%^|p^_dQHm`ULYhq#;q=t5x z)5YH&sQ%eUI@;l(t&m8j1h3F8^NKc{@R%JPPNR4hy8m_3^w=PjU9 z{0pv7snE*PYIa;4LO~xB-PnLfj-iPpm!vEYTCUW~VGM6hvsirIU%_Bf>_hYT-KL4j zvrLWp!Ig2)U~q>aIQG*(r2baR_p>6!b{3;yGQsHrnL4al{&fDOLQ_ez)klxV(<2*4 z=@PXPvfkBSG{peh?&LUo-zt`0(b>JYgW4_UvH*MC_K-^hY^{7vc#+IV=EiVd&j?n- zfdNvYbW>Lin1>%;$hIS+Byc3I;$EhdB0yDMv*~gi*U(1sSLoN@b#BzjKTl|HFR|U5 zV{@gYPuXL?CH28oXYp!oX8c91t@f+3JnQ2^3Qwcf| z_5KD0_6Jj7lW{VoNG-pE^&7oU$Ji6vM{l=R`a?d_s=Z|7sVut`EfSCf-effk=h z^y)2FvOgRt%R6s;JA7XEIj1pi#yD9E1P);Wv!dI}{FRX{-v-IG6D>8{EvXif`u00- z%TkKeM*+X4(X!odkBQWOoMD(vwczbA$VKsAJ1p@uJ5GeOClnfNWpKL)nXav_T;FYe zCNF0GNvBhU!r1H{2Bx^tdq9~e-WdiGn72%BxD;w&(EtA7GyYJSjH!_ev{4`1aWzLb zun0Xy{ckkl)8Ps0%}%|Pc%Mi-PFdtn=y0|@>8c|W)zV9YNh^~MHeWKmCB(L4>-#q1 zc1{AZ*c(jg|9E`uydU*xCac?*-D5c+maX8%P;$X|%OoD1lxuP@reLJgv7hNf8<4A9 zlMeRgBrfjpLyIn|jtpsLV>FTKQ9$M!pyMx;^`qP}oC#vpKf(7+d(TdeE7R5goDo7CrfozLbyN8imv zx#~eS6Ti>anHhiD?Pg06u}$_umX7C24n~&_{BEDew_%CejMWQs+Chl^)bge$@s6zrk=@wI28XtNT)ZlH=_o7!Tvr_ zy~#dFOH)uEMucsWzxr&%`UYR9)dljpeOa`5t;z|EBXx?w zFT*YBs~wD{B3RLPH3JVOv4a)^IA)@Ucs-s#m+lW;@J)E0!`~!T+n#5#9k^(o2@XEu z92V;Ly4V`yD|uWf**p;I6WHzLm32=I9PCS-q#{f z<7DZb*SLJ?&qnh6j-J!w$CU+|_?Fl%mb zGPR|9H%5c5rwmPzO1&7-XupVJfs-bIwO(5iKdmHG0HrOY4mLH9)AE;oxHT6U8b#Jc zP{?(b;EbjdYrNdfVk?lHdaNzME1EaWy12c%DxgSDBvb zW~TXkpwgiNwIp`D8=np3VoTSw{zNl69t@R!ocrG|9sE$gy@rImTw>~9!>=c$dCam{B*~eq=&#c9TGM13| zuUhdEjzUWf9^s?I$dq?XE+urIH@|Mh_UV=!4EO9)_*vtEnY*gBgzyu%3m|3a}pjb8=x3|Mv#x6*i*uz z;#*TJ?dF;+Y(w47BrtI$dnQhA{*c@qx!w>XKmXi^1hC!yqL;lLJIFV|_P*!Sh^p^Q z>b(bk54-xV=@9IGG7*Hq{;7fpc&+} z^PBxcmx%iFJa@D8mO!T<)^Fw(%#}n}Y3a}5x_{l0Mg=L(&3q(Eo0HbNNss}^fs04T z7LA|gtu$5IS_Dcb$Ao1_IzN*xIsRiyG2up#3Zo5P&$~Y}vV8Myx1@ac?W2^D_-7I9 zqGQdf6(Qy9pO(sgx$=W+w(~n4k0q!KstZuvSzohmah^-#QkEI?d`{OgaeK#fM=u=a zmq6gb1YwPO4r<8l2}C}vX^a-OT&p>r_Ynv#115&dlxQTF&6Q?x11(m;N$GBnM2C|v z@_!x=3V>7Jbr|kEE3aN%mYC3Av*agshEW$p8`H|9teoDZ*VD6XxVFBJOFd|#UD%iQ z^~Jo+2piKhrwI8^PG5CZ1uX+HDzi)ndq6Wpr^iVddcIiWgDGq_s`PrtzuzAFuKb7e+#zL-}o(-PyH8mq{OR*6 z_KSc>D87;~q6};pnqOb$?C_rWiKN}*CAs8tOQj52%HQW6-Uc=~D2R9Wv&e9TVnHP} zYCt-+>6G8NLuI$)lI)tIah~a&0r~pi11a{ee}ka^itd(iknY`Bw{dE*_ZOEe*_YJp z!Kwu4=A3=l~Yc;RHsX5p7Z~p1vNfbr+=Hm`ms-# zyS`T#0!RGrCnj1fS00J32HO6Ohy0h5E1Uv=Xlk#tMyk-&yvED6)m^k2I$TGNQ!weY zC#J5Ep*!Us1aZnuHq7B|z_k~tjz-A;aO!44mG*DX;6IV55C0>@x?MJD^zesC^bz4# zc(aG+<7ZUcB+WVo8wjUL67~Oq*ZyT&&S9W4AizL`ZiFTHMdN0Rc1*E)Q(Vs&?6Gr7 zn&69E8X*K4m$=F_R972@n2ln;x7+HQV^;`YwPHf9~(XNf@C#teq8Y&8LIyOis?UM=l}DMwA^{dYM;2< zTV_eeQPsj24D{A2aow_AwEk%GPMhuUw=;)Uf2eIVPx(}IjPgG&>Ay!P671L$ei~6C z$fpt@8f5a#i2*r(xL}%EcBFjmg|ME<+-^p?zx^EyExQ-vP)rxKAhJBm{J0574IZxh zIUL({zU*SFm=M@3S7)(IgF)?ds!1;^9(4EGE1B?38pFY3pgY+uMXH|5YPE%op!BK% zFrS%8p{?Hr757!?uh-rR&Ev}7U_;%=Ho8`dCB z;_9DAAaMFCjnjp4T& zKtB4-kt=bpn8-j+3i!E?62ZOXxjlX<+ZpxA-Mz@A93j{twOdB)z5`57B7x2tP=`UG zRiwmD6P!B8+9((oh%8}){L5uOmfApEFWsU27F&$D_C*SZzAjz~huY1?X=O`eXEXll-?bPFjpM|J$(H>t*GwX)Xq0-oJF92-RsYlzj8m*d;g=_=5mWsh z>b^sv2@-o%fO*T6ChRdzzXA8|eu4uDK*-I_=($#|wH1@WT^)4>LF|nF=mLJ=>T)s3p#Qy}grzIJ7R%c^Qmn zM$Lj!i06orS1leVfR|f{RlaIE;%LuhUV@G-l2}LbtT}Kp`!gGx$`67~lS7s)jxw8BYuiM>`|*a|?h#E}flE6N6%FP0 z9%d>BgLLYBIEw38>)rj!&OLh9RYir#4t?A#qTNc9gX1`na^Q!t_+{t}9&>!Hjaf0; z%i_wtak1$u*o=bHmFBBPi`@EEH_6$+y>_>UOUIKsK!XcgK-=q*M<oa|b*Yv~w71(K<>~Sw+ zr_ZoD;}@LA!wrG5IQ5EbaB%RoZb7aRNZtZccTyzie|ea;QJP#>C~mgg!18iA%ygJ` z{B?yYlJ^%WH$_c``y(BrTJ?+?3!FZr)P+qu>j$k?1E%yp@JH`+>1H#uX|G=`4PT7& zIFZqMhc|aeS}9HsPrcoqOdQ-=Fu>t(VuXk-T+QOC_32t!_&y7fyxRXD?Ubi!+J7I_ zam|D@kP%l!nRHO-nM|uSnUt*(d^RCKN8$1I;^biQ?0Y7P=pibo1|7#?jvo>puDCYt zU_Li>eK381(0pUV@sZdp*)vE5ic#_NMq&kn~G&5#7O(jOV zNfgeJ1|rGvtofvUeR01Avl@U=+{;M&n|rOZt_N#=W(3DZj41#Uxesp zfW6wMPoH9`C5>N=CIyO?+E|^LNq^cVYI__QCG7kzQt*GoAkh>X*wt=QM$+Lb(dib*ABuqOh2<`e~<0YxL2M{rWjY@cl9AWwbJ!;gLSM$aKs3@{v&GcylI1$>0zQT9?+>K#DsflS(H~&PF zoA)a|S2Ubh{%!9O676UJYuUR-`K!_sabuNB;gQ*BBvC$ko;6RBsAl0dD{VZMuI9vf zaf&(w2!Z+PIHXd@uk@fcgB|-R=MVY1OH)@GEaN;{N#I|jLT{|KRjh6-atyON?)Xl!}Xw7Af)hj zsp{aRn!j=daFUYq(tFac((M5_n#|F+Im2r$W&%8#1EJd>A)%t?{iT+)*}L{C^DV{6 zrh>M0dKjV(v@6nX1yp<^F*Nrb^94my%Hxu0i_ZqTer%AsKV(RLJ*o(CCYo+q>JO4c zXp7%!d;WXYxgD*O%BS4nPuY$0PK{8zv1juEr@c(09x!_Ow7h0|l^-s%MMX(fWVO~- zEIo$(fs`}$wE2wJ5<(5IUWeL28q6AS?T;YcpVg~q`s`se9Jh7n$vP=opo{}Dxj8tm ztYn^LK{Vcv`a_l0u(fG*NQih@+}V)9KIy2uIuK2TG)_L(zEI=(U4$)byvvYe?NtVY zM;rreE(ZIMW_LJa8c4}{1>-P#&#PYL)_Ay`J&h`TlWWzUXVE!GwOt^au_1CO$n$=C zr`J@|szoeyBXE!MbdGVU-YUZ^fvLQ;8+p|i`rWHOid^y(KV}X$!R|hN8qmeh-ZaRj zyXaH99M+Bn)vU17ZQxUD^YVKnU0q_I{yYg$G0H)w-K+-5T&lu59WO{kx6_h&cHLIN z9wc6F;hN1B*Ggvd==X@1P`)YZO_(Keki0zdNQS4dXYp9Z1DO=-O1n0@G5EmKOG1i4 z(cTM*KZtqte~94GZN>tHp61geU(S7I)_a-wwqw;Ht6C z`M$hQb;YZA#xLm^R!%;y8wUmH)sg{Y1m#c94_7B$qlkpN@Ppdp@x>m=8ubaeO%&*0+~$Z zxXPNy%XITSU9&YeyxW@MESIRXHuuM+-iJ-7rK^6mVRH9Z?$(Pw5=S_^@lJ*cw0spE z_wb69X~*%plBO)=kKBgLk((z9I~*1Z{0^Il%%<~H!T>&T;Syy=(7luEHI|QZ)s;}1 z12*LLz++r)S4wUFqMxkBpU8=9Gg=JjDr-Z#MRaOGm}e8ycYQrA%kW{R`&pX>1+e6t z?p2l4gF((Bh?Q?Toj)nd_u7+t4{+jt%M@!!Bl&K5?%Z?mg2B5U4KrPT=13)Hb*9}K zE^XVS6QJ@f;P-k&7(@0-d_*B^7_S2@!vYE6Jo8 zW2#HJHS*E4KIW5t+I)k55!z6nE6V2&xlhe!ZEQ4Ekh^|AJN%cis!)4dsFTm>(r7n2 z1~ue4{GmKywNvEPjkri(MR&NPzpoPJ0XWWn5`DPL4U5f1M*X0;cv%%sxT_}0$Rf)A zNuU(#I|?}B5#r?(9t{)|5n0+j!X41*hzDI_#JI47Kee(PemI=1sfRVKp=LjJ8%~x6 zvf8XUog~|@No}}(v>h{401g<}hhlYMQ~xTgM7TMcj2(G0z665R%*L z!jqhy5m`{qRmuzDX@%@z7>!x*>4#xy4fIsRNcGKlZ(zhy-RJvXx%T|h*N>5U|1(g! zUS8X^rajJFI-5bJ(ntbgd9ul*1A6o8(ls#HEf(bBu&{`-cAva@QsCzYoYUMKPDXE* z&HHbyP{`9>$hlsMRBGXdr?4Z-avIdqzGRM2ZR@n)$VQBeSzVRls&0JobB;Rc9~=Ezcw*>1TPGOB+Y?F!##9&%{_PC` zha05OVG6jl(Et8g5gg?-SeiY5nq&B8kQJ;7gnNQ0=eD~ zSVK7MQAUz>$I?nH7)Lky3|bNes_k|zJrpQ;&wtu(|7JooNLo0XKl}OTGMIKB@pZkU z4!`bznPdNY-S-y`3J8qfvdtXE#uY>Fk6NrjMlIGn#bfb|d52$c+hi08u z?+h7|w9}EEsYoBB|C6 z5-Nj%@_!!i=JUCg$yp7E=vD&fi0yFbRf>h*3^w6vD1loSpE`2eFv*Hr98c&W*E04R z{&Txs%TP>CR&d0oZi!`pViuMv``u$xfICg_@t!_plQCcK@;wY>$o^1Mo+o*-$E#Wk zYh*kW=A>Bd=kH(aoAT}W8;dFG9kYk}#Lsryo#I3B&8EFU&|Abpi)oFbZCmIC)9;3; zZ$k(8xn~>Y7$x^6=^g%(eaxvdwytmK_{DGqZ2fEuW7b9L=?&DLQ14 z;K;Uy6JUX1gOW;|r4fscj;0^Y>JCKOMHlUSLW4uNtM60pmwntN`E!v+@a{b|p;LJS z!fi^pY6+=l6hZ=@*LJXoYaEsOQ|c=sKW2%_)mbiPgDcz@Q_VMp&Gief=88v;eiNQ* zk(Sp}xEqTgY);TDaBQgydRK>!I(TU`LI~gENDD1LQ0N1ZGO4Ww%&OY(6=5RJ1nw!_!JR=~(yXC3vmH6j%qGX|vVGf|q|GX>Qe;eqaLec&F|y6aRh zSGta@z1!UeueVx3jg`m9=;v~reiUe=)tY;Ol5i)6T!kI_Yf>lR&3762rhDH#(lr$K z)-^(oU*Q8AF9xyBoL19UQehi(t+#!wr#mn2m~FeIjSLuXK`LlV#Z&y^s9%nM)?-^I zR+{BjCab-q9sG)ABR4%3VD@az3m~HEG zUkDz3v0_jN{pMtm?j__~9flq4e7Uw=f*<+uFM4TfYvmoR&Y}3l;wb&z5c#v!Ry=JT zx6b*Y&jpPtWTUqs9XN)_)%v}*H{Bl0klc5$MRBn~z@P};6z9IzGCjyY@&OfAXJT*$ zKbayY@$oACzV3OO#4dr&G+w&61ul^t@f%D{h$Ac9nMV zH(e`lrNrFuN0CQMN&U#`5#TO=srlb11+o5&|m_&c*P~ zlD)k60mDMggnt8mVviVIGMjp*waw*cYhs3DN#&!k(Fr#uS|ccg@1Y4lsnM9;9M0xc zIAebfy1iTTH2F>+-L4Bg+fvPaK%x%bBy%3@+?G!?`%x3?bpk)wIV%UmPZ&M+r3&R>TgA{Lv=G@p*6d_<697?58^CG6dk8X zskg}AbhGT%c2{!voax`cJ)~e^6)9h0MI)Un+wYN2^PvQd?Ad!zynQcSahE?ww6!R` z7R7=Xrn7ne>pM`Hhv*_BVy?`bC1Zb_40FXXnB8Zommki7j5TFeeI zx5Ss#PfKc0Q~g%E>6Gj%WJpUsoDYJ`G40O5f8RGwG|WUclW{ra*FvK$GBeoIn=XWF z!k94ltKFZ!1G5Y;K~Z0?{4fKFA>r;`l0N{x!Wxp(Fja`+;9b|!_%m>u5UqH z$4C@iBo|SD&wjKhdet)p+@a)Ck)Vg=!SU(*MJ#Hk14ZmeWL3h+hQWsKI~b|*Y);qv zSg-5kRScZp%_E!b4=hlh;y`ubr0l?k_W(g52pLe01&~PwcE=O*0Y?S)Yu8`2b+)yqe*`d~Zv5FE8}hiPtBao7 zD;y4DmtvjQ+gBBcF^z9=xx8%MO(pE|9aBsHUS;2peG}2gA!w2(5tDCbkAhSB$-fH~ z(xRMs74ZaxGs^tcldrv70IZi0ft8|jPvjm{0isKf)WuCj97z(q3Lt)mavYh zo_)A1P>Bo%l9ftaX0jRl3DBM7cqz!1q@1I^=(MFC9uv~eY^|ViIY-TsFLq-sq4|W! zB(cf<{4)Jjx*^9a0-yazwDUO;lk9`{&nf6rLp^pVKfcedj)&6)7&r$WVCz>H1ANG< zD|t%+5{)SQcsiG;(PH^in$wyd6Bq1>#r32I(y6(d;-~kGw(SJsbHz`KOxSU%6MCSO z={t*`Ly)+Q{5Qm^cU?tW9`0c&u7n$lQ{n)Y?Q6|X!dQkx+z*jdqd%C~C&hiO!+>A+ zBqG+_pUQT`vFSzo3H(%tV`O=X03WZM1s~>hWPk5m>+Rs}lFbw=YB)gItGD*D&HIja zzrzi^XGtR=4UvC*8KG6z_4ctNxi^~JcrF;o^cIHBf->U7=ro=FvwGd%S1(CsgwBR+ znIx@(H39~&4jHyFq_+vr0OC+@$1x{c+p7hT-O}?7#;|~KLd%rzMJ3`n#E~kmI1hd5 zsoEM+3{Y|z)d0)o);#6#{AMR>BlmoaUSj>kfemW;x(-dn`)x7*q^h4>5rah2Tu=E; zvZAF2$0c13BTY%my2NGAs1{M}XA62cH| zQv_^#7Kn~aGuJh`t%5^y4hL!N%eHvhMK`2L z?7{MYWvs@0!CXg9rI4uGWK!V{$@FH!aLVyzi9JbhI$IhohhZWrQFxk2-`INk=-Kiq zocOzfUp<+56UD^m?$!*ODF*R16`VGOi+jcAy2T{M_1iH88m0RUgRm!b!%TR-wS6Sr z2sn#15)LzQzRT^_bL;*(qTz1fl=-nhHeU<{ChoJf; zBc;ndY4@@y3uK5A-67$tT34df$<`8<8V(5a>lfTi=J(65$UHA2(?hcmr!|iP_GStR z=X7iG4s9LOkvU9s?|h;&iS-~EgjGcA@Zh^oqPip4qf1(0woNhFy&?39NC?VF#@_bb z{)WcNw;c}Kcr@M<;1p`Em?advA%^g~cYm7xZ?U_a=NKu~h?>`2gGoiY85kiA25F3z zV!$prbCfjfM(8KJQ&ac;X4)<;uB7%Qf6> zPQpP=33oi6J}trrAMG+Dt zcE1!4aF#gBr@#y8^hKgs8Ul^7-edQG;c!1VAr)V!ggq{#I5`KWAIvZUihxBc83!2F;3{` z#{-Y5E8S1k_L8Ly0J3+1?YB(@5^8MssLeQ#GFVp@>`AVHe30Rn8aLJlTzI4KVf>L zP|GW#fA_7>*i8g+;j{$mA|8fw5Axp0Ga<2plQJS+em9!>xnH!oKY?B&wBmy0Ih~Qz z!23)~{f3BC6df({-J-uj5wZ`8mhCrg5SDs#o_X0(Xn4Ahg5=NLR9!5Ho)%Si9C{L! z&$@B2w)dlR4i{mdJFk$~ur*Qb2|u0lrDv=lnho|Ee|mgD$LX5mHpS+1o`<>!_-Jy8 zeusbP{sv38|-!RQH)J^u)Ad=4rjes7DY5`)iF# zlz$~b*GHL*r{=A=Iu@BMI z*?j@aV2Uh2Q>zT#N*y7_8i^uZ??eXP0)cf@8d4{@sUUNOuY9@#l(x-)H zmL=k~&8-f1eQUi_BC32M>t@Q>({c88{}Q?NiB+sCkE4oWm(Z*iGqymVL&{<#G?K{L zKa|?UM@E7?eHqrZEo~yOIIB>Wnq22v~*O>g204(!SM0i^ZNnU&d`}%daVE07eFud zq7;m9kGONV(GN&qJi0ME#ffnz$M3c(yWL8WPGOW#77pOT1io>tFM7kpR=7D@cHkb; zs{OlTQHDf5K=N#^F&KJmMNZ0>V`y?lbk=eeVe1Xl#)adoAW$Tk6N|8^P`mZmJm^x$ZtVfInZ_z4!Je9SlXZ{o5Dqvu9y?}*BK1l4c)%=Zs zfqg>2hBmS~tww%*^bp3ilDRqG&Hdimp!)ZT(6l9odL}BoKtx!GVRb|QU*M5F6WX6n z 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 literal 0 HcmV?d00001 diff --git a/src/bot/initialize-bot.ts b/src/bot/initialize-bot.ts index 322a8a0..74a7da0 100644 --- a/src/bot/initialize-bot.ts +++ b/src/bot/initialize-bot.ts @@ -1,4 +1,4 @@ -import {Client, Collection, GatewayIntentBits} from "discord.js"; +import {ApplicationCommandDataResolvable, Client, Collection, GatewayIntentBits, REST, Routes} from "discord.js"; import { mongoConnect } from "../config/mongoDb.js"; import * as dotenv from "dotenv"; import * as fs from "fs"; @@ -18,13 +18,17 @@ export async function initializeBot(client: Client){ //Loading Commands const commands = fs.readdirSync("./dist/commands").filter(file => file.endsWith(".js")); + const slashCommands = new Array(); for (const file of commands) { const commandName = file.split(".")[0]; const command = await import(`../commands/${file}`); console.log(`Attempting to load command ${commandName}`); + slashCommands.push(command.default.data); client.commands.set(commandName, command); } + const rest = new REST({ version: "9" }).setToken(String(process.env.DISCORD_TOKEN)); + const response = await rest.put(Routes.applicationCommands(client.user!.id), { body: slashCommands }); //Initialize Success client.once('ready', async () => { diff --git a/src/commands/category.ts b/src/commands/category.ts index 49c4444..a91ea6f 100644 --- a/src/commands/category.ts +++ b/src/commands/category.ts @@ -1,4 +1,4 @@ -import {Message} from "discord.js"; +import {ChatInputCommandInteraction, Message, SlashCommandBuilder, TextChannel} from "discord.js"; import {categoryList} from "../embedMessage/categoryMessage.js"; import {ModelUtil} from "../util/modelUtil.js"; import {MongoUtil} from "../util/mongoUtil.js"; @@ -19,37 +19,25 @@ async function getProblemWithCategory(user_id: string, category: number) { } } -export async function execute(message: Message){ - try{ - await message.channel.send({embeds: [categoryList]}); - - const botFilter = (m: { author: { bot: any; id: string; }; content: string; }) => !m.author.bot && m.author.id === message.author.id - && !m.content.startsWith('!'); - const responseCollector = message.channel.createMessageCollector({filter: botFilter,max:1, time: 20000}); - - responseCollector.on('collect', async msg => { - const selectedNumber = parseInt(msg.content); - //만일 숫자가 아니거나 0~10 사이의 숫자가 아니라면 - if (isNaN(selectedNumber) || selectedNumber < 0 || selectedNumber > 10){ - await message.reply("숫자를 잘못 입력하셨습니다. 명령을 취소합니다."); +export default{ + data: new SlashCommandBuilder() + .setName('category') + .setDescription('카테고리별 문제를 받습니다.') + .addStringOption(option => option.setName('category').setDescription('카테고리 번호를 입력해주세요.').setRequired(true)), + async execute(interaction: ChatInputCommandInteraction){ + try{ + const number = interaction.options.getString('category'); + if (number === null || parseInt(number) > 10 || parseInt(number) < 1){ + await interaction.reply({embeds: [categoryList]}); + await interaction.followUp("정확한 카테고리 번호를 입력해주세요.") return; } - if(selectedNumber === 10){ - await message.reply("명령을 취소하셨습니다."); - return; - } - - const problem = await getProblemWithCategory(message.author.id, selectedNumber); - await message.channel.send({embeds: [problem.getEmbedMsg("개인 맞춤형 문제입니다.")]}) - }); - - responseCollector.on('end', collected => { - if (collected.size === 0){ - message.reply("입력 시간이 만료되었습니다.") - } - }); - }catch (error){ - logger.error(error); - await message.reply("알 수 없는 오류가 발생했습니다.") + const problem = await getProblemWithCategory(interaction.user.id, parseInt(number)); + await (interaction.channel as TextChannel).send({embeds: [problem.getEmbedMsg("개인 맞춤형 문제입니다.")]}) + await interaction.reply("카테고리별 문제를 전송했습니다.") + }catch (error){ + logger.error(error); + await interaction.reply("알 수 없는 오류가 발생했습니다.") + } } -} \ No newline at end of file +} diff --git a/src/commands/ping.ts b/src/commands/ping.ts new file mode 100644 index 0000000..5481fb8 --- /dev/null +++ b/src/commands/ping.ts @@ -0,0 +1,10 @@ +import {ChatInputCommandInteraction, CommandInteraction, SlashCommandBuilder} from "discord.js"; + +export default { + data: new SlashCommandBuilder().setName('ping').setDescription('Replies with Pong!'), + async execute(interaction: ChatInputCommandInteraction) { + console.log('input') + + await interaction.reply('Pong!'); + } +} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 121e96f..0188f0a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ -import {Client, Collection, GatewayIntentBits} from 'discord.js'; +import {Client, Collection, GatewayIntentBits, Interaction} from 'discord.js'; import { sendDailyProblem } from './bot/cron.js' import * as cron from 'node-cron'; import { logger } from './logger.js' @@ -39,37 +39,20 @@ client.on("guildCreate", async(guild) => { channel.send({embeds: [embedWelcome]}); }) -client.on('messageCreate', message => { +client.on('interactionCreate', async (interaction: Interaction) => { try{ - //Ignore if message is from bot or not from guild - if (message.author.bot || !message.guild || !message.content.startsWith('!')) return; + if (!interaction.isChatInputCommand()) return; + logger.verbose(`Command: ${interaction.commandName} / User: ${interaction.user.id}`) - //Slice the command and arguments - // @ts-ignore - const command: string = message.content.slice(1).split(/ +/).shift().toLowerCase(); + const command = interaction.client.commands.get(interaction.commandName); - if (command === process.env.ADMIN_COMMAND && message.author.id.toString() === process.env.ADMIN_ID){ - sendAdminMessage(message, client).then(r => - logger.verbose(r) - ).catch(error =>{ - logger.error(error) - }); - return; - } + if (!command) return; - //Ignore if command is not in commands - if (!client.commands.has(command)) { - message.reply("알 수 없는 명령어입니다. 명령어를 확인하시려면 !help를 입력해주세요.") - return; - } - - - client.commands.get(command).execute(message); - }catch (error) { + await command.default.execute(interaction); + }catch (error){ console.error(error); - message.reply('알 수 없는 오류가 발생했습니다.'); } -}); +}) cron.schedule('* * * * *', function(){ logger.verbose("Running cron job") From eccc27bf55fb83a57e351c5e32b6575249023113 Mon Sep 17 00:00:00 2001 From: Ahn Jiwan Date: Sun, 4 Feb 2024 16:57:49 +0900 Subject: [PATCH 2/6] :sparkles: feat: change all !command to /command (#34) --- src/commands/category.ts | 2 +- src/commands/daily.ts | 38 +++++++++++++++++++++-- src/commands/help.ts | 11 ++++++- src/commands/prob.ts | 23 +++++++++++++- src/commands/register.ts | 48 ++++++++++++++++++++++++++++- src/commands/report.ts | 24 ++++++++++++++- src/commands/similarid.ts | 26 +++++++++++++++- src/embedMessage/categoryMessage.ts | 22 ++++++------- src/embedMessage/guideMessage.ts | 18 ++++++----- src/index.ts | 1 - 10 files changed, 185 insertions(+), 28 deletions(-) diff --git a/src/commands/category.ts b/src/commands/category.ts index a91ea6f..530ca4a 100644 --- a/src/commands/category.ts +++ b/src/commands/category.ts @@ -27,7 +27,7 @@ export default{ async execute(interaction: ChatInputCommandInteraction){ try{ const number = interaction.options.getString('category'); - if (number === null || parseInt(number) > 10 || parseInt(number) < 1){ + if (number === null || parseInt(number) === null || parseInt(number) > 10 || parseInt(number) < 1){ await interaction.reply({embeds: [categoryList]}); await interaction.followUp("정확한 카테고리 번호를 입력해주세요.") return; diff --git a/src/commands/daily.ts b/src/commands/daily.ts index 00e8fb1..376f5a5 100644 --- a/src/commands/daily.ts +++ b/src/commands/daily.ts @@ -8,7 +8,7 @@ import { logger } from '../logger.js' import {MongoUtil} from '../util/mongoUtil.js'; -import {Message} from "discord.js"; +import {ChatInputCommandInteraction, Message, SlashCommandBuilder} from "discord.js"; async function getUserDailyTime(message: Message){ try { @@ -139,7 +139,39 @@ async function addDailyTimeOfUser(discordId: string, userInput: string, isDailyT } -export async function execute(message: Message) { - await getUserDailyTime(message); +export default{ + data: new SlashCommandBuilder() + .setName('daily') + .setDescription('일일 문제를 받을 시간을 정합니다.') + .addStringOption(option => option.setName('time').setDescription('일일 문제를 받을 시간을 입력해주세요.').setRequired(true)), + + async execute(interaction: ChatInputCommandInteraction){ + try{ + const time = interaction.options.getString('time'); + if (time === null){ + await interaction.reply("시간을 입력해주세요.") + return; + } + const [hour, min] = time.split(' '); + if (hour.length !== 2 || min.length !== 2 || isNaN(Number(hour)) || isNaN(Number(min)) || + parseInt(hour, 10) < 0 || parseInt(hour, 10) >= 24 || parseInt(min, 10) < 0 || + parseInt(min, 10) >= 60) { + await interaction.reply("시간 형식이 올바르지 않습니다. 올바른 형식으로 입력해주세요. (ex. 오전 1시 1분: 01 01)") + return; + } + + const userDailyTime = `${parseInt(hour, 10)} ${parseInt(min, 10)}` + + const response = await MongoUtil.addTime(interaction.user.id, userDailyTime); + if (!response){ + await interaction.reply("알 수 없는 오류가 발생했습니다.") + return; + } + await interaction.reply(`성공적으로 등록되었습니다. 설정한 시간: ${hour}시 ${min}분`) + }catch (error){ + logger.error(error); + await interaction.reply("알 수 없는 오류가 발생했습니다.") + } + } } diff --git a/src/commands/help.ts b/src/commands/help.ts index 615ba66..f4aeb0c 100644 --- a/src/commands/help.ts +++ b/src/commands/help.ts @@ -1,6 +1,15 @@ import {embedWelcome} from '../embedMessage/guideMessage.js'; -import {Message} from "discord.js"; +import {ChatInputCommandInteraction, Message, SlashCommandBuilder} from "discord.js"; export async function execute(message: Message){ message.channel.send({embeds: [embedWelcome]}) } + +export default { + data: new SlashCommandBuilder() + .setName('help') + .setDescription('도움말을 보여줍니다.'), + async execute(interaction: ChatInputCommandInteraction){ + await interaction.reply({embeds: [embedWelcome]}) + } +} \ No newline at end of file diff --git a/src/commands/prob.ts b/src/commands/prob.ts index ee8087e..b8140ab 100644 --- a/src/commands/prob.ts +++ b/src/commands/prob.ts @@ -3,7 +3,7 @@ import {BojProblem, getProblemErrorMsg} from "../model/problem_class.js"; import {logger} from '../logger.js' import {ModelUtil} from "../util/modelUtil.js"; import {MongoUtil} from "../util/mongoUtil.js"; -import {Message} from "discord.js"; +import {ChatInputCommandInteraction, Message, SlashCommandBuilder} from "discord.js"; export async function getRecommendedProblem(user_id: string) { try{ @@ -50,4 +50,25 @@ export async function execute(message: Message) { logger.error(error) await message.reply("알 수 없는 오류가 발생했습니다.") } +} + +export default { + data: new SlashCommandBuilder() + .setName('prob') + .setDescription('즉시 문제를 추천받습니다.'), + + async execute(interaction: ChatInputCommandInteraction){ + try{ + const user = await MongoUtil.findUserWithDiscordId(interaction.user.id); + if (!user) { //없다면 + await interaction.reply("백준 아이디를 등록하지 않았습니다. !register을 통해 아이디를 등록해주세요"); + return; + } + const randProblem = await getRecommendedProblem(user['boj_id']); + await interaction.reply({embeds: [randProblem.getEmbedMsg("개인 맞춤형 문제입니다.")]}); + }catch (error){ + logger.error(error) + await interaction.reply("알 수 없는 오류가 발생했습니다.") + } + } } \ No newline at end of file diff --git a/src/commands/register.ts b/src/commands/register.ts index 7538c91..82cb96f 100644 --- a/src/commands/register.ts +++ b/src/commands/register.ts @@ -1,6 +1,6 @@ import {logger} from "../logger.js"; import {MongoUtil} from "../util/mongoUtil.js"; -import {Message} from "discord.js"; +import {ChatInputCommandInteraction, Message, SlashCommandBuilder} from "discord.js"; import {getUserInfo} from "../embedMessage/userInfoMessage.js"; import {searchUserInfoWithSolvedAc} from "../bot/getUserInfo.js"; @@ -93,3 +93,49 @@ export async function execute (message: Message) { logger.error(error.message) } } + +export default { + data: new SlashCommandBuilder() + .setName('register') + .setDescription('백준 아이디를 등록합니다.') + .addStringOption(option => + option.setName('id') + .setDescription('백준 아이디를 입력해주세요.') + .setRequired(true)), + async execute(interaction: ChatInputCommandInteraction) { + try { + const user = await MongoUtil.findUserWithDiscordId(interaction.user.id); + + if (user) { + const realUser = await searchUserInfoWithSolvedAc(user['boj_id']); + if (realUser.username === 'error') { + await interaction.reply("백준에 존재하지 않는 계정이 등록된 상태입니다. \n/quit을 통해 아이디 제거 후 /register를 통해 다시 등록해주세요.") + return; + } else { + await interaction.reply({embeds: [getUserInfo(realUser)]}) + await interaction.reply(`이미 ${user['boj_id']}로 등록이 된 상태입니다. \n + 변경하시려면 /quit을 통해 아이디 제거 후 /register를 통해 다시 등록해주세요.`) + return; + } + } + + const boj_id = interaction.options.getString('id'); + const realUser = await searchUserInfoWithSolvedAc(boj_id!); + if (realUser.username === 'error') { + await interaction.reply("백준에 존재하지 않는 계정입니다. 명령을 취소합니다.") + return; + } + + await interaction.reply({embeds: [getUserInfo(realUser)]}) + const response = await MongoUtil.addUser(interaction.user.id, boj_id!); + if (response) { + await interaction.reply("정상적으로 등록되었습니다.") + logger.info(`${interaction.user.id} / ${boj_id} 가입 완료`) + } + return; + } catch (error: any) { + await interaction.reply("알 수 없는 오류가 발생했습니다.") + logger.error(error.message) + } + } +} diff --git a/src/commands/report.ts b/src/commands/report.ts index 206c32e..29be7b2 100644 --- a/src/commands/report.ts +++ b/src/commands/report.ts @@ -1,5 +1,5 @@ import {MongoUtil} from "../util/mongoUtil.js"; -import {Message} from "discord.js"; +import {ChatInputCommandInteraction, Message, SlashCommandBuilder} from "discord.js"; export async function execute(message: Message) { try{ @@ -34,4 +34,26 @@ export async function execute(message: Message) { console.log(error) } +} + +export default { + data: new SlashCommandBuilder() + .setName('report') + .setDescription('버그나 개선사항을 제보합니다.') + .addStringOption(option => option.setName('content').setDescription('내용을 입력해주세요.').setRequired(true)), + + async execute(interaction: ChatInputCommandInteraction) { + try { + const content = interaction.options.getString('content'); + const result = await MongoUtil.insertReport(content!); + if (result) { + await interaction.reply("정상적으로 전달되었습니다. 소중한 피드백 감사합니다.") + } else { + await interaction.reply("알 수 없는 오류가 발생했습니다.") + } + } catch (error) { + await interaction.reply("알 수 없는 오류가 발생했습니다.") + console.log(error) + } + } } \ No newline at end of file diff --git a/src/commands/similarid.ts b/src/commands/similarid.ts index 904f275..991a850 100644 --- a/src/commands/similarid.ts +++ b/src/commands/similarid.ts @@ -1,4 +1,4 @@ -import {Message} from "discord.js"; +import {ChatInputCommandInteraction, Message, SlashCommandBuilder} from "discord.js"; import {ModelUtil} from "../util/modelUtil.js"; import {logger} from "../logger.js"; import {MongoUtil} from "../util/mongoUtil.js"; @@ -44,4 +44,28 @@ export async function execute(message: Message) { } }) +} + +export default{ + data: new SlashCommandBuilder() + .setName('similarid') + .setDescription('유사한 문제를 받습니다.') + .addStringOption(option => option.setName('problem_id').setDescription('문제 번호를 입력해주세요.').setRequired(true)), + + async execute(interaction: ChatInputCommandInteraction) { + try { + const problem_id = interaction.options.getString('problem_id'); + console.log(problem_id); + const similarProblemId = await getSimilarProblem(parseInt(problem_id!)); + if (similarProblemId === null) { + await interaction.reply("입력하신 문제 번호에 해당하는 문제가 없습니다.") + return; + } + const problem = await MongoUtil.findProblemWithProblemId(similarProblemId); + await interaction.reply({embeds: [problem.getEmbedMsg("유사 문제입니다.")]}); + } catch (error) { + logger.error(error) + await interaction.reply("알 수 없는 오류가 발생했습니다.") + } + } } \ No newline at end of file diff --git a/src/embedMessage/categoryMessage.ts b/src/embedMessage/categoryMessage.ts index 6bd4755..562caff 100644 --- a/src/embedMessage/categoryMessage.ts +++ b/src/embedMessage/categoryMessage.ts @@ -8,20 +8,20 @@ export const categoryList = new EmbedBuilder() .setDescription("원하시는 문제 유형을 숫자로 입력해주세요! (ex. DP의 경우 2)") .addFields( { name: '\u200B', value: '\u200B' }, - { name: '0: 기본 알고리즘 및 구현', value: 'implementation, simulation, arithmetic', inline: true }, - { name: '1: 자료 구조', value: 'data_structure, deque, stack', inline: true }, - { name: '2: 동적 프로그래밍', value: 'dp, dp_bitfield, deque', inline: true }, + { name: '0: 기본 알고리즘 및 구현', value: '', inline: true }, + { name: '1: 자료 구조', value: '', inline: true }, + { name: '2: 동적 프로그래밍', value: '', inline: true }, { name: '\u200B', value: '\u200B' }, - { name: '3: 그래프 이론', value: 'bfs, dfs, mst, graphs', inline: true }, - { name: '4: 탐색 알고리즘', value: 'binary_search, bruteforcing, backtracking', inline: true }, - { name: '5: 문자열 처리', value: 'regex, string, suffix_tree', inline: true }, + { name: '3: 그래프 이론', value: '', inline: true }, + { name: '4: 탐색 알고리즘', value: '', inline: true }, + { name: '5: 문자열 처리', value: '', inline: true }, { name: '\u200B', value: '\u200B' }, - { name: '6 수학적 알고리즘', value: 'math, calculus, probability', inline: true }, - { name: '7: 최적화 문제', value: 'greedy, divide_and_conquer', inline: true }, - { name: '8: 기하학적 알고리즘', value: 'geometry, parsing, sweeping', inline: true }, + { name: '6 수학적 알고리즘', value: '', inline: true }, + { name: '7: 최적화 문제', value: '', inline: true }, + { name: '8: 기하학적 알고리즘', value: '', inline: true }, { name: '\u200B', value: '\u200B' }, - { name: '9: 고급 알고리즘', value: 'green, utf8, bayes, hackenbush', inline: true }, - { name: '10: 명령어 취소', value: '!category 명령을 취소합니다.', inline: true }, + { name: '9: 고급 알고리즘', value: '', inline: true }, + { name: '10: 명령어 취소', value: '', inline: true }, { name: '\u200B', value: '\u200B' }, ) .setTimestamp() diff --git a/src/embedMessage/guideMessage.ts b/src/embedMessage/guideMessage.ts index 364141c..e066d0e 100644 --- a/src/embedMessage/guideMessage.ts +++ b/src/embedMessage/guideMessage.ts @@ -7,13 +7,17 @@ export const embedWelcome = new EmbedBuilder() .setDescription("원하시는 서비스를 !{명령어} 형식으로 입력해주세요!") .addFields( { name: '\u200B', value: '\u200B' }, - { name: '!register', value: '백준 봇 서비스를 사용하기 위해 백준 아이디를 등록합니다.', inline: false }, - { name: '!prob', value: '개인별 맞춤 문제를 추천해드립니다.', inline: false }, - { name: '!similarid', value: '문제 번호에 해당하는 백준 문제와 유사한 문제를 추천해드립니다.', inline: false }, - { name: '!daily', value: '일일 맞춤형 문제를 매일 정해진 시간에 추천 드립니다.', inline: false }, - { name: '!category', value: '알고리즘 분류 목록을 보여드립니다.', inline: false }, - { name: '!report', value: '버그나 개선사항이 있으면 자유롭게 말씀해주세요!', inline: false }, - { name: '!help', value: '백준 봇 명령어를 알려드립니다.', inline: false }, + { name: '/register', value: '백준 봇 서비스를 사용하기 위해 백준 아이디를 등록합니다.', inline: false }, + { name: '/prob', value: '개인별 맞춤 문제를 추천해드립니다.', inline: false }, + { name: '/similarid', value: '문제 번호에 해당하는 백준 문제와 유사한 문제를 추천해드립니다.', inline: false }, + { name: '/daily', value: '일일 맞춤형 문제를 매일 정해진 시간에 추천 드립니다.', inline: false }, + { name: '/category', value: '알고리즘 분류 목록을 보여드립니다.', inline: false }, + { name: '/report', value: '버그나 개선사항이 있으면 자유롭게 말씀해주세요!', inline: false }, + { name: '/help', value: '백준 봇 명령어를 알려드립니다.', inline: false }, + { name: '/categorylist', value: '/category 사용 전, 알고리즘 분류 목록표를 보여드립니다.', inline: false }, + { name: '/quit', value: '백준 ID를 제거합니다.', inline: false }, + { name: '/deactivate', value: '일일 문제 알림 수신을 비활성화 합니다.', inline: false }, + { name: '\u200B', value: '\u200B' } ) .setTimestamp() diff --git a/src/index.ts b/src/index.ts index 0188f0a..05999b1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -15,7 +15,6 @@ export const client = new Client({ intents: [ GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, - GatewayIntentBits.MessageContent, GatewayIntentBits.GuildMembers, GatewayIntentBits.DirectMessages ], From b96ffe40fa261987703c0cf023cb4a3e9f2980ea Mon Sep 17 00:00:00 2001 From: Ahn Jiwan Date: Sun, 4 Feb 2024 16:59:47 +0900 Subject: [PATCH 3/6] :fire: chore: get rid of deprecated code (#34) --- src/commands/daily.ts | 129 -------------------------------------- src/commands/help.ts | 4 -- src/commands/prob.ts | 15 ----- src/commands/register.ts | 90 -------------------------- src/commands/report.ts | 35 ----------- src/commands/similarid.ts | 30 --------- 6 files changed, 303 deletions(-) diff --git a/src/commands/daily.ts b/src/commands/daily.ts index 376f5a5..c27e63c 100644 --- a/src/commands/daily.ts +++ b/src/commands/daily.ts @@ -10,135 +10,6 @@ import { logger } from '../logger.js' import {MongoUtil} from '../util/mongoUtil.js'; import {ChatInputCommandInteraction, Message, SlashCommandBuilder} from "discord.js"; -async function getUserDailyTime(message: Message){ - try { - const user = await MongoUtil.findUserWithDiscordId(message.author.id) - - if (!user) { //If no user is found - await message.reply("백준 아이디를 등록하지 않았습니다. !register을 통해 아이디를 등록해주세요"); - return; - } - - if (user['daily_time']) { //If user already set daily time - const [hour, min] = user['daily_time'].split(' '); - await message.reply(`${hour}시 ${min}분으로 알림이 설정된 상태입니다. 알림을 비활성화하려면 '비활성화', 변경하시려면 '변경', 명령을 취소하려면 '취소'를 입력해주세요`); - - // Filter for user response - const responseFilter = (m: { author: { bot: any; id: string; }; content: string; }) => !m.author.bot && m.author.id === message.author.id && !m.content.startsWith('!') && - (m.content === '비활성화' || m.content === '변경' || m.content === '취소'); - const responseCollector = message.channel.createMessageCollector({ - filter: responseFilter, - max: 1, - time: 20000 - }); - - // Execute functions based on user response - responseCollector.on('collect', async msg => { - switch (msg.content) { - case '변경': - getInputOfDailyTime(message, true); - break; - case '취소': - await message.reply("명령을 취소하셨습니다.") - break; - case '비활성화': - const result = await MongoUtil.deleteTime(message.author.id); - if (result) { - await message.reply("알림을 비활성화했습니다") - } else { - await message.reply("알 수 없는 오류가 발생했습니다.") - } - break; - default: - break; - } - responseCollector.stop(); - }); - - responseCollector.on('end', collected => { - //Terminate if time limit is exceeded - if (collected.size === 0) { - message.channel.send("입력 시간이 만료되었습니다."); - } - }); - - } else { //If user did not set daily time - getInputOfDailyTime(message, false); - } - }catch (error){ - logger.error(error) - } -} - - -function getInputOfDailyTime(message: Message, isUserDailyTimeAlreadySet: boolean) { - message.channel.send("원하시는 시간을 24시간제로 다음과 같이 입력해주세요. (HH MM), 취소를 원하실 경우 '취소'를 입력해주세요."); - - const botFilter = (m: { author: { bot: any; id: string; }; content: string; }) => !m.author.bot && m.author.id === message.author.id && !m.content.startsWith('!'); - const idCollector = message.channel.createMessageCollector({filter: botFilter,max:1, time: 20000}); - - idCollector.on('collect', async msg => { - if (msg.content === '취소'){ - await message.reply("명령을 취소하셨습니다.") - return; - } - - const isDailyTimeInserted = await addDailyTimeOfUser(message.author.id, msg.content, isUserDailyTimeAlreadySet) - - switch (isDailyTimeInserted) { - case 0: //If time is successfully inserted - const [hour, min] = msg.content.split(' ') - message.channel.send(`성공적으로 등록되었습니다. 설정한 시간: ${hour}시 ${min}분`) - break; - case -1: //If error occurred - message.channel.send("알 수 없는 오류가 발생했습니다.") - break; - case -2: //If time format is invalid - await message.reply("시간 형식이 올바르지 않습니다. 올바른 형식으로 입력해주세요. (ex. 오전 1시 1분: 01 01)") - break; - } - - //Terminate the collector after the user inputs the time - idCollector.stop(); - }); - - idCollector.on('end', collected => { - //Terminate if time limit is exceeded - if (collected.size === 0) { - message.channel.send("입력 시간이 만료되었습니다."); - } - }); - -} - -async function addDailyTimeOfUser(discordId: string, userInput: string, isDailyTimeAlreadySet: boolean) { - const [hour, minute] = userInput.split(' '); - - // If the time format is not properly entered - if (hour.length !== 2 || minute.length !== 2 || isNaN(Number(hour)) || isNaN(Number(minute)) || - parseInt(hour, 10) < 0 || parseInt(hour, 10) >= 24 || parseInt(minute, 10) < 0 || - parseInt(minute, 10) >= 60) { - return -2; - } - - const userDailyTime = `${parseInt(hour, 10)} ${parseInt(minute, 10)}` - - // Modify time if user already set daily time, add time if not - if (!isDailyTimeAlreadySet){ - const response = await MongoUtil.addTime(discordId, userDailyTime); - if (!response){ - return -1; - } - }else{ - const response = await MongoUtil.modifyTime(discordId, userDailyTime); - if (!response){ - return -1; - } - } - return 0; - -} - export default{ data: new SlashCommandBuilder() .setName('daily') diff --git a/src/commands/help.ts b/src/commands/help.ts index f4aeb0c..f024411 100644 --- a/src/commands/help.ts +++ b/src/commands/help.ts @@ -1,10 +1,6 @@ import {embedWelcome} from '../embedMessage/guideMessage.js'; import {ChatInputCommandInteraction, Message, SlashCommandBuilder} from "discord.js"; -export async function execute(message: Message){ - message.channel.send({embeds: [embedWelcome]}) -} - export default { data: new SlashCommandBuilder() .setName('help') diff --git a/src/commands/prob.ts b/src/commands/prob.ts index b8140ab..34abe79 100644 --- a/src/commands/prob.ts +++ b/src/commands/prob.ts @@ -37,21 +37,6 @@ export async function getRandomProblem() { return getProblemErrorMsg(); } -export async function execute(message: Message) { - try{ - const user = await MongoUtil.findUserWithDiscordId(message.author.id); - if (!user) { //없다면 - await message.reply("백준 아이디를 등록하지 않았습니다. !register을 통해 아이디를 등록해주세요"); - return; - } - const randProblem = await getRecommendedProblem(user['boj_id']); - message.channel.send({embeds: [randProblem.getEmbedMsg("개인 맞춤형 문제입니다.")]}); - }catch (error){ - logger.error(error) - await message.reply("알 수 없는 오류가 발생했습니다.") - } -} - export default { data: new SlashCommandBuilder() .setName('prob') diff --git a/src/commands/register.ts b/src/commands/register.ts index 82cb96f..f04d97c 100644 --- a/src/commands/register.ts +++ b/src/commands/register.ts @@ -4,96 +4,6 @@ import {ChatInputCommandInteraction, Message, SlashCommandBuilder} from "discord import {getUserInfo} from "../embedMessage/userInfoMessage.js"; import {searchUserInfoWithSolvedAc} from "../bot/getUserInfo.js"; - -async function registerId(message: Message, isUserAlreadyRegistered: boolean) { - await message.reply("등록하실 백준 아이디를 입력해주세요."); - const botFilter = (m: { author: { bot: any; id: string; }; content: string; }) => !m.author.bot && m.author.id === message.author.id && !m.content.startsWith('!'); - const idCollector = message.channel.createMessageCollector({filter: botFilter,max:1, time: 20000}); - - idCollector.on('collect', async msg => { - const realUser = await searchUserInfoWithSolvedAc(msg.content); - if (realUser.username === 'error'){ - await message.reply("백준에 존재하지 않는 계정입니다. 명령을 취소합니다.") - return; - }else{ - await message.channel.send({embeds: [getUserInfo(realUser)]}) - - let response: boolean; - if(isUserAlreadyRegistered){ - response = await MongoUtil.modifyBojIdOfUser(message.author.id, msg.content); - }else{ - response = await MongoUtil.addUser(message.author.id, msg.content); - } - - if (response){ - await message.reply(isUserAlreadyRegistered ? "정상적으로 변경되었습니다." : "정상적으로 등록되었습니다.") - logger.info(`${message.author.id} / ${msg.content} 가입 완료`) - }else{ - await message.reply("알 수 없는 오류가 발생했습니다.") - } - } - }) - - idCollector.on('end', collected => { - if (collected.size === 0){ - message.reply("입력 시간이 만료되었습니다.") - } - }) -} - -export async function execute (message: Message) { - try { - const user = await MongoUtil.findUserWithDiscordId(message.author.id); - - if (user) { - const realUser = await searchUserInfoWithSolvedAc(user['boj_id']); - - if(realUser.username === 'error'){ - await message.reply("백준에 존재하지 않는 계정이 등록된 상태입니다. '변경' 또는 '삭제'를 입력하여 백준 아이디를 변경해주세요.") - }else{ - await message.channel.send({embeds: [getUserInfo(realUser)]}) - await message.reply(`이미 ${user['boj_id']}로 등록이 된 상태입니다. 변경하시려면 '변경', 삭제하시려면 '삭제'를 입력해주세요. 명령어를 취소하려면 '취소'를 입력해주세요.`) - } - const botFilter = (m: { - author: { bot: any; id: string; }; - content: string; - }) => !m.author.bot && m.author.id === message.author.id && !m.content.startsWith('!') - && (m.content === '변경' || m.content === '삭제' || m.content === '취소'); - const responseCollector = message.channel.createMessageCollector({filter: botFilter, max: 1, time: 20000}); - - responseCollector.on('collect', async msg => { - switch (msg.content) { - case '변경': - await registerId(message, true); - break; - case '삭제': - const response = await MongoUtil.deleteUser(message.author.id); - if (response) { - await message.reply("정상적으로 삭제되었습니다.") - } else { - await message.reply("알 수 없는 오류가 발생했습니다.") - } - break; - case '취소': - await message.reply("명령을 취소하셨습니다."); - break; - } - }) - - responseCollector.on('end', collected => { - if (collected.size === 0) { - message.reply("입력 시간이 만료되었습니다.") - } - }) - - } else { - await registerId(message, false) - } - } catch (error: any) { - logger.error(error.message) - } -} - export default { data: new SlashCommandBuilder() .setName('register') diff --git a/src/commands/report.ts b/src/commands/report.ts index 29be7b2..03a5af5 100644 --- a/src/commands/report.ts +++ b/src/commands/report.ts @@ -1,41 +1,6 @@ import {MongoUtil} from "../util/mongoUtil.js"; import {ChatInputCommandInteraction, Message, SlashCommandBuilder} from "discord.js"; -export async function execute(message: Message) { - try{ - message.channel.send("버그나 개선사항들을 자유롭게 입력해주세요. 모든 의견은 익명으로 개발자에게 전달됩니다.\n명령을 취소하시려면 '취소'를 입력해주세요.") - const botFilter = (m: { author: { bot: any; id: string; }; content: string; }) => !m.author.bot && m.author.id === message.author.id && !m.content.startsWith('!'); - const responseCollector = message.channel.createMessageCollector({filter: botFilter, max: 1, time: 20000}); - - responseCollector.on('collect', async msg => { - if (msg.content === '취소'){ - await message.reply("명령을 취소하셨습니다.") - return; - } - if (msg.content.length <= 0){ - await message.reply("내용을 입력해주세요. 명령을 취소합니다.") - return; - } - - const result = await MongoUtil.insertReport(msg.content) - if (result){ - await message.reply("정상적으로 전달되었습니다. 소중한 피드백 감사합니다.") - }else{ - await message.reply("알 수 없는 오류가 발생했습니다.") - } - }) - responseCollector.on('end', collected => { - if (collected.size === 0){ - message.reply("입력 시간이 만료되었습니다.") - } - }); - }catch (error){ - await message.reply("알 수 없는 오류가 발생했습니다.") - console.log(error) - } - -} - export default { data: new SlashCommandBuilder() .setName('report') diff --git a/src/commands/similarid.ts b/src/commands/similarid.ts index 991a850..5469fb8 100644 --- a/src/commands/similarid.ts +++ b/src/commands/similarid.ts @@ -16,36 +16,6 @@ async function getSimilarProblem(problem_id: number) { } } -export async function execute(message: Message) { - await message.reply("유사한 문제를 찾고 싶은 문제의 번호를 입력해주세요.") - const responseFilter = (m: { author: { bot: any; id: string; }; content: string; }) => !m.author.bot && m.author.id === message.author.id && !m.content.startsWith('!') - const responseCollector = message.channel.createMessageCollector({ - filter: responseFilter, - max: 1, - time: 20000 - }); - responseCollector.on('collect', async msg => { - try{ - const similarProblemId = await getSimilarProblem(parseInt(msg.content)); - if (similarProblemId === null){ - await message.reply("입력하신 문제 번호에 해당하는 문제가 없습니다. 명령을 취소합니다.") - return; - } - const problem = await MongoUtil.findProblemWithProblemId(similarProblemId); - await message.channel.send({embeds: [problem.getEmbedMsg("유사 문제입니다.")]}); - }catch (error){ - logger.error(error) - await message.reply("알 수 없는 오류가 발생했습니다.") - } - }) - responseCollector.on('end', collected => { - if (collected.size === 0){ - message.reply("입력 시간이 만료되었습니다.") - } - }) - -} - export default{ data: new SlashCommandBuilder() .setName('similarid') From e8f6ea2c58bb1ebe8ace52be7d41b7f0a4f57efa Mon Sep 17 00:00:00 2001 From: Ahn Jiwan Date: Sun, 4 Feb 2024 17:10:21 +0900 Subject: [PATCH 4/6] :bulb: chore: update message contents (#34) --- src/commands/category.ts | 2 +- src/commands/daily.ts | 7 ++++++- src/commands/prob.ts | 2 +- src/commands/report.ts | 2 +- src/commands/similarid.ts | 2 +- src/embedMessage/categoryMessage.ts | 22 +++++++++++----------- src/embedMessage/guideMessage.ts | 6 +++--- 7 files changed, 24 insertions(+), 19 deletions(-) diff --git a/src/commands/category.ts b/src/commands/category.ts index 530ca4a..e7dc677 100644 --- a/src/commands/category.ts +++ b/src/commands/category.ts @@ -23,7 +23,7 @@ export default{ data: new SlashCommandBuilder() .setName('category') .setDescription('카테고리별 문제를 받습니다.') - .addStringOption(option => option.setName('category').setDescription('카테고리 번호를 입력해주세요.').setRequired(true)), + .addStringOption(option => option.setName('category').setDescription('카테고리 번호를 입력해주세요. 번호 목록은 /categorylist를 통해 확인해주세요.').setRequired(true)), async execute(interaction: ChatInputCommandInteraction){ try{ const number = interaction.options.getString('category'); diff --git a/src/commands/daily.ts b/src/commands/daily.ts index c27e63c..9daf93f 100644 --- a/src/commands/daily.ts +++ b/src/commands/daily.ts @@ -14,7 +14,7 @@ export default{ data: new SlashCommandBuilder() .setName('daily') .setDescription('일일 문제를 받을 시간을 정합니다.') - .addStringOption(option => option.setName('time').setDescription('일일 문제를 받을 시간을 입력해주세요.').setRequired(true)), + .addStringOption(option => option.setName('time').setDescription('일일 문제를 받을 시간을 입력해주세요. (HH MM, 예시: 13시 5분 => 13 05').setRequired(true)), async execute(interaction: ChatInputCommandInteraction){ try{ @@ -33,6 +33,11 @@ export default{ const userDailyTime = `${parseInt(hour, 10)} ${parseInt(min, 10)}` + const user = await MongoUtil.findUserWithDiscordId(interaction.user.id); + if (!user) { + await interaction.reply("백준 아이디를 등록하지 않았습니다. /register을 통해 아이디를 등록해주세요"); + return; + } const response = await MongoUtil.addTime(interaction.user.id, userDailyTime); if (!response){ await interaction.reply("알 수 없는 오류가 발생했습니다.") diff --git a/src/commands/prob.ts b/src/commands/prob.ts index 34abe79..83ff589 100644 --- a/src/commands/prob.ts +++ b/src/commands/prob.ts @@ -46,7 +46,7 @@ export default { try{ const user = await MongoUtil.findUserWithDiscordId(interaction.user.id); if (!user) { //없다면 - await interaction.reply("백준 아이디를 등록하지 않았습니다. !register을 통해 아이디를 등록해주세요"); + await interaction.reply("백준 아이디를 등록하지 않았습니다. /register을 통해 아이디를 등록해주세요"); return; } const randProblem = await getRecommendedProblem(user['boj_id']); diff --git a/src/commands/report.ts b/src/commands/report.ts index 03a5af5..15ae6e9 100644 --- a/src/commands/report.ts +++ b/src/commands/report.ts @@ -5,7 +5,7 @@ export default { data: new SlashCommandBuilder() .setName('report') .setDescription('버그나 개선사항을 제보합니다.') - .addStringOption(option => option.setName('content').setDescription('내용을 입력해주세요.').setRequired(true)), + .addStringOption(option => option.setName('content').setDescription('내용을 입력해주세요. 모든 피드백은 익명으로 개발자에게 전달됩니다.').setRequired(true)), async execute(interaction: ChatInputCommandInteraction) { try { diff --git a/src/commands/similarid.ts b/src/commands/similarid.ts index 5469fb8..e19c263 100644 --- a/src/commands/similarid.ts +++ b/src/commands/similarid.ts @@ -20,7 +20,7 @@ export default{ data: new SlashCommandBuilder() .setName('similarid') .setDescription('유사한 문제를 받습니다.') - .addStringOption(option => option.setName('problem_id').setDescription('문제 번호를 입력해주세요.').setRequired(true)), + .addStringOption(option => option.setName('problem_id').setDescription('유사한 문제를 받고 싶으신 백준 문제의 번호를 입력해주세요.').setRequired(true)), async execute(interaction: ChatInputCommandInteraction) { try { diff --git a/src/embedMessage/categoryMessage.ts b/src/embedMessage/categoryMessage.ts index 562caff..ff44ce7 100644 --- a/src/embedMessage/categoryMessage.ts +++ b/src/embedMessage/categoryMessage.ts @@ -8,20 +8,20 @@ export const categoryList = new EmbedBuilder() .setDescription("원하시는 문제 유형을 숫자로 입력해주세요! (ex. DP의 경우 2)") .addFields( { name: '\u200B', value: '\u200B' }, - { name: '0: 기본 알고리즘 및 구현', value: '', inline: true }, - { name: '1: 자료 구조', value: '', inline: true }, - { name: '2: 동적 프로그래밍', value: '', inline: true }, + { name: '0: 기본 알고리즘 및 구현', value: ' ', inline: true }, + { name: '1: 자료 구조', value: ' ', inline: true }, + { name: '2: 동적 프로그래밍', value: ' ', inline: true }, { name: '\u200B', value: '\u200B' }, - { name: '3: 그래프 이론', value: '', inline: true }, - { name: '4: 탐색 알고리즘', value: '', inline: true }, - { name: '5: 문자열 처리', value: '', inline: true }, + { name: '3: 그래프 이론', value: ' ', inline: true }, + { name: '4: 탐색 알고리즘', value: ' ', inline: true }, + { name: '5: 문자열 처리', value: ' ', inline: true }, { name: '\u200B', value: '\u200B' }, - { name: '6 수학적 알고리즘', value: '', inline: true }, - { name: '7: 최적화 문제', value: '', inline: true }, - { name: '8: 기하학적 알고리즘', value: '', inline: true }, + { name: '6 수학적 알고리즘', value: ' ', inline: true }, + { name: '7: 최적화 문제', value: ' ', inline: true }, + { name: '8: 기하학적 알고리즘', value: ' ', inline: true }, { name: '\u200B', value: '\u200B' }, - { name: '9: 고급 알고리즘', value: '', inline: true }, - { name: '10: 명령어 취소', value: '', inline: true }, + { name: '9: 고급 알고리즘', value: ' ', inline: true }, + { name: '10: 명령어 취소', value: ' ', inline: true }, { name: '\u200B', value: '\u200B' }, ) .setTimestamp() diff --git a/src/embedMessage/guideMessage.ts b/src/embedMessage/guideMessage.ts index e066d0e..ad145bf 100644 --- a/src/embedMessage/guideMessage.ts +++ b/src/embedMessage/guideMessage.ts @@ -4,7 +4,7 @@ export const embedWelcome = new EmbedBuilder() .setAuthor({name: 'Baekjoon Bot', iconURL: 'https://avatars.githubusercontent.com/u/139442196?s=200&v=4'}) .setThumbnail('https://avatars.githubusercontent.com/u/139442196?s=200&v=4') .setTitle("안녕하세요 백준 봇입니다! :)") - .setDescription("원하시는 서비스를 !{명령어} 형식으로 입력해주세요!") + .setDescription("원하시는 서비스를 /{명령어} 형식으로 입력해주세요!") .addFields( { name: '\u200B', value: '\u200B' }, { name: '/register', value: '백준 봇 서비스를 사용하기 위해 백준 아이디를 등록합니다.', inline: false }, @@ -17,8 +17,8 @@ export const embedWelcome = new EmbedBuilder() { name: '/categorylist', value: '/category 사용 전, 알고리즘 분류 목록표를 보여드립니다.', inline: false }, { name: '/quit', value: '백준 ID를 제거합니다.', inline: false }, { name: '/deactivate', value: '일일 문제 알림 수신을 비활성화 합니다.', inline: false }, - - { name: '\u200B', value: '\u200B' } + { name: '\u200B', value: '\u200B' }, + { name: '업데이트 목록은 다음 링크에서 확인해주세요.', value: 'https://github.com/boaz-baekjoon/baekjoon-discord-bot/releases', inline: false }, ) .setTimestamp() .setFooter({text: 'Baekjoon Bot', iconURL: 'https://avatars.githubusercontent.com/u/139442196?s=200&v=4'}) \ No newline at end of file From f8b5f9b7ddd73011b7ef049223da19ad47a27cdf Mon Sep 17 00:00:00 2001 From: Ahn Jiwan Date: Sun, 4 Feb 2024 17:33:24 +0900 Subject: [PATCH 5/6] :sparkles: feat: add new commands (deactivate, quit, categorylist) (#34) --- src/commands/category.ts | 11 ++++++----- src/commands/categorylist.ts | 19 +++++++++++++++++++ src/commands/deactivate.ts | 27 +++++++++++++++++++++++++++ src/commands/quit.ts | 29 +++++++++++++++++++++++++++++ src/commands/register.ts | 5 ++--- src/embedMessage/categoryMessage.ts | 28 +++++++++++----------------- src/embedMessage/guideMessage.ts | 2 +- 7 files changed, 95 insertions(+), 26 deletions(-) create mode 100644 src/commands/categorylist.ts create mode 100644 src/commands/deactivate.ts create mode 100644 src/commands/quit.ts diff --git a/src/commands/category.ts b/src/commands/category.ts index e7dc677..d4d98af 100644 --- a/src/commands/category.ts +++ b/src/commands/category.ts @@ -5,11 +5,12 @@ import {MongoUtil} from "../util/mongoUtil.js"; import {logger} from "../logger.js"; import {getRandomProblem} from "./prob.js"; -async function getProblemWithCategory(user_id: string, category: number) { +async function getProblemWithCategory(interaction: ChatInputCommandInteraction, category: number) { try{ - const problem_arr = await ModelUtil.getProblemWithCategory(user_id, category); + const problem_arr = await ModelUtil.getProblemWithCategory(interaction.user.id, category); if (problem_arr.length === 0){ - logger.warn(`${user_id}/ 모델 서버 오류로 인한 랜덤 문제 반환`) + await interaction.reply("모델 서버의 오류로 인해 랜덤 문제를 반환합니다.") + logger.warn(`${interaction.user.id}/ 모델 서버 오류로 인한 랜덤 문제 반환`) return await getRandomProblem() } return await MongoUtil.findProblemWithProblemId(problem_arr[0]); @@ -27,12 +28,12 @@ export default{ async execute(interaction: ChatInputCommandInteraction){ try{ const number = interaction.options.getString('category'); - if (number === null || parseInt(number) === null || parseInt(number) > 10 || parseInt(number) < 1){ + if (number === null || parseInt(number) === null || parseInt(number) > 9 || parseInt(number) < 0){ await interaction.reply({embeds: [categoryList]}); await interaction.followUp("정확한 카테고리 번호를 입력해주세요.") return; } - const problem = await getProblemWithCategory(interaction.user.id, parseInt(number)); + const problem = await getProblemWithCategory(interaction, parseInt(number)); await (interaction.channel as TextChannel).send({embeds: [problem.getEmbedMsg("개인 맞춤형 문제입니다.")]}) await interaction.reply("카테고리별 문제를 전송했습니다.") }catch (error){ diff --git a/src/commands/categorylist.ts b/src/commands/categorylist.ts new file mode 100644 index 0000000..7d2b51b --- /dev/null +++ b/src/commands/categorylist.ts @@ -0,0 +1,19 @@ +import {logger} from "../logger.js"; +import {ChatInputCommandInteraction, SlashCommandBuilder} from "discord.js"; +import {ModelUtil} from "../util/modelUtil.js"; +import {categoryList} from "../embedMessage/categoryMessage.js"; + +export default { + data: new SlashCommandBuilder() + .setName('categorylist') + .setDescription('카테고리 목록을 받습니다.'), + + async execute(interaction: ChatInputCommandInteraction) { + try { + await interaction.reply({embeds: [categoryList]}); + } catch (error) { + logger.error(error) + await interaction.reply("알 수 없는 오류가 발생했습니다.") + } + } +} \ No newline at end of file diff --git a/src/commands/deactivate.ts b/src/commands/deactivate.ts new file mode 100644 index 0000000..8ef0298 --- /dev/null +++ b/src/commands/deactivate.ts @@ -0,0 +1,27 @@ +import {ChatInputCommandInteraction, SlashCommandBuilder} from "discord.js"; +import {MongoUtil} from "../util/mongoUtil.js"; +import {logger} from "../logger.js"; + +export default { + data: new SlashCommandBuilder() + .setName('deactivate') + .setDescription('일일 문제 알림 수신을 비활성화 합니다.'), + async execute(interaction: ChatInputCommandInteraction) { + try { + const user = await MongoUtil.findUserWithDiscordId(interaction.user.id); + if (!user) { + await interaction.reply("등록되지 않은 유저입니다. /register를 통해 등록해주세요.") + return; + } + + const response = await MongoUtil.deleteTime(interaction.user.id); + if (response) { + await interaction.reply("정상적으로 중단되었습니다.") + } + return; + } catch (error: any) { + await interaction.reply("알 수 없는 오류가 발생했습니다.") + logger.error(error.message) + } + } +} \ No newline at end of file diff --git a/src/commands/quit.ts b/src/commands/quit.ts new file mode 100644 index 0000000..0bea41b --- /dev/null +++ b/src/commands/quit.ts @@ -0,0 +1,29 @@ +import {ChatInputCommandInteraction, SlashCommandBuilder} from "discord.js"; +import {MongoUtil} from "../util/mongoUtil.js"; +import {logger} from "../logger.js"; + +export default { +data: new SlashCommandBuilder() + .setName('quit') + .setDescription('백준 ID를 포함한 모든 정보를 제거합니다.'), + + async execute(interaction: ChatInputCommandInteraction) { + try { + const user = await MongoUtil.findUserWithDiscordId(interaction.user.id); + if (!user) { + await interaction.reply("등록되지 않은 유저입니다. /register를 통해 등록해주세요.") + return; + } + + const response = await MongoUtil.deleteUser(interaction.user.id); + if (response) { + await interaction.reply("정상적으로 제거되었습니다.") + logger.info(`${interaction.user.id} 제거 완료`) + } + return; + } catch (error: any) { + await interaction.reply("알 수 없는 오류가 발생했습니다.") + logger.error(error.message) + } + } +} \ No newline at end of file diff --git a/src/commands/register.ts b/src/commands/register.ts index f04d97c..b4719e3 100644 --- a/src/commands/register.ts +++ b/src/commands/register.ts @@ -23,8 +23,7 @@ export default { return; } else { await interaction.reply({embeds: [getUserInfo(realUser)]}) - await interaction.reply(`이미 ${user['boj_id']}로 등록이 된 상태입니다. \n - 변경하시려면 /quit을 통해 아이디 제거 후 /register를 통해 다시 등록해주세요.`) + await interaction.followUp(`이미 ${user['boj_id']}로 등록이 된 상태입니다. \n변경하시려면 /quit을 통해 아이디 제거 후 /register를 통해 다시 등록해주세요.`) return; } } @@ -39,7 +38,7 @@ export default { await interaction.reply({embeds: [getUserInfo(realUser)]}) const response = await MongoUtil.addUser(interaction.user.id, boj_id!); if (response) { - await interaction.reply("정상적으로 등록되었습니다.") + await interaction.followUp("정상적으로 등록되었습니다.") logger.info(`${interaction.user.id} / ${boj_id} 가입 완료`) } return; diff --git a/src/embedMessage/categoryMessage.ts b/src/embedMessage/categoryMessage.ts index ff44ce7..7e2954a 100644 --- a/src/embedMessage/categoryMessage.ts +++ b/src/embedMessage/categoryMessage.ts @@ -5,24 +5,18 @@ export const categoryList = new EmbedBuilder() .setAuthor({name: 'Baekjoon Bot', iconURL: 'https://avatars.githubusercontent.com/u/139442196?s=200&v=4'}) .setThumbnail('https://avatars.githubusercontent.com/u/139442196?s=200&v=4') .setTitle("알고리즘 분류 목록입니다.") - .setDescription("원하시는 문제 유형을 숫자로 입력해주세요! (ex. DP의 경우 2)") + .setDescription("원하시는 문제 유형을 /category {숫자}로 입력해주세요!") .addFields( - { name: '\u200B', value: '\u200B' }, - { name: '0: 기본 알고리즘 및 구현', value: ' ', inline: true }, - { name: '1: 자료 구조', value: ' ', inline: true }, - { name: '2: 동적 프로그래밍', value: ' ', inline: true }, - { name: '\u200B', value: '\u200B' }, - { name: '3: 그래프 이론', value: ' ', inline: true }, - { name: '4: 탐색 알고리즘', value: ' ', inline: true }, - { name: '5: 문자열 처리', value: ' ', inline: true }, - { name: '\u200B', value: '\u200B' }, - { name: '6 수학적 알고리즘', value: ' ', inline: true }, - { name: '7: 최적화 문제', value: ' ', inline: true }, - { name: '8: 기하학적 알고리즘', value: ' ', inline: true }, - { name: '\u200B', value: '\u200B' }, - { name: '9: 고급 알고리즘', value: ' ', inline: true }, - { name: '10: 명령어 취소', value: ' ', inline: true }, - { name: '\u200B', value: '\u200B' }, + { name: '0: 기본 알고리즘 및 구현', value: ' ', inline: false }, + { name: '1: 자료 구조', value: ' ', inline: false }, + { name: '2: 동적 프로그래밍', value: ' ', inline: false }, + { name: '3: 그래프 이론', value: ' ', inline: false }, + { name: '4: 탐색 알고리즘', value: ' ', inline: false}, + { name: '5: 문자열 처리', value: ' ', inline: false }, + { name: '6 수학적 알고리즘', value: ' ', inline: false }, + { name: '7: 최적화 문제', value: ' ', inline: false }, + { name: '8: 기하학적 알고리즘', value: ' ', inline: false }, + { name: '9: 고급 알고리즘', value: ' ', inline: false }, ) .setTimestamp() .setFooter({text: 'Baekjoon Bot', iconURL: 'https://avatars.githubusercontent.com/u/139442196?s=200&v=4'}) \ No newline at end of file diff --git a/src/embedMessage/guideMessage.ts b/src/embedMessage/guideMessage.ts index ad145bf..304719e 100644 --- a/src/embedMessage/guideMessage.ts +++ b/src/embedMessage/guideMessage.ts @@ -18,7 +18,7 @@ export const embedWelcome = new EmbedBuilder() { name: '/quit', value: '백준 ID를 제거합니다.', inline: false }, { name: '/deactivate', value: '일일 문제 알림 수신을 비활성화 합니다.', inline: false }, { name: '\u200B', value: '\u200B' }, - { name: '업데이트 목록은 다음 링크에서 확인해주세요.', value: 'https://github.com/boaz-baekjoon/baekjoon-discord-bot/releases', inline: false }, + { name: '업데이트 로그는 다음 링크에서 확인해주세요.', value: 'https://github.com/boaz-baekjoon/baekjoon-discord-bot/releases', inline: false }, ) .setTimestamp() .setFooter({text: 'Baekjoon Bot', iconURL: 'https://avatars.githubusercontent.com/u/139442196?s=200&v=4'}) \ No newline at end of file From e573b3fe8e4e921848376acc5fbaf44bb7df4645 Mon Sep 17 00:00:00 2001 From: Ahn Jiwan Date: Sun, 4 Feb 2024 17:48:47 +0900 Subject: [PATCH 6/6] :bulb: chore: add new update log (#34) --- src/model/problem_class.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/model/problem_class.ts b/src/model/problem_class.ts index a14675a..fecaf18 100644 --- a/src/model/problem_class.ts +++ b/src/model/problem_class.ts @@ -49,7 +49,7 @@ export class BojProblem{ }, {name: '링크', value: `https://www.acmicpc.net/problem/${this.problemId}`, inline: false} ) - .setFooter({text: 'Baekjoon Bot. 버그가 발생한 경우 !report로 제보해주세요.', iconURL: 'https://avatars.githubusercontent.com/u/139442196?s=200&v=4'}) + .setFooter({text: 'Baekjoon Bot. 버그가 발생한 경우 /report로 제보해주세요. /help을 통해 새로운 명령어를 반드시 확인해주세요!', iconURL: 'https://avatars.githubusercontent.com/u/139442196?s=200&v=4'}) }catch (error){ logger.error(error) return getProblemErrorMsg();