From 0a56096f090a2d4a36c3dc39e0f2571462aef1e7 Mon Sep 17 00:00:00 2001 From: Ale Date: Fri, 15 Mar 2024 23:20:11 +0100 Subject: [PATCH] fixed a bug in sendAsMemberHandler.ts and switched to bun's sqlite library --- bun.lockb | Bin 57707 -> 19127 bytes package.json | 5 ++-- src/commands/avatarMemberChange.ts | 2 +- src/commands/colorMemberChange.ts | 2 +- src/commands/createMember.ts | 2 +- src/commands/deleteMember.ts | 2 +- src/commands/listMember.ts | 2 +- src/commands/migrateMember.ts | 2 +- src/index.ts | 2 +- src/repositories/MemberRepo.ts | 29 +++++++++++--------- src/repositories/UserRepo.ts | 42 ++++++++++++++++++++++++++--- src/utils/checkAutoProxy.ts | 17 ++++++------ src/utils/commandHandler.ts | 2 +- src/utils/dbInit.ts | 2 +- src/utils/nonCommandHandler.ts | 4 ++- src/utils/sendAsMemberHandler.ts | 17 +++++++----- tsconfig.json | 3 +++ 17 files changed, 91 insertions(+), 44 deletions(-) diff --git a/bun.lockb b/bun.lockb index 34c1ebd37c6d1d560e579109816d1858277b9a4d..8f3c2ee195845db8337fa09e3e7d8df85c9ac17e 100755 GIT binary patch delta 3734 zcmeHKdr(x@8Nc_k3wswXPtip{1mz{}0t>hxxPn2WEVgb;TpyLlOIYNgq6M@HW7HZ( zr{Xuht&duxO{0}(H5!Z7)`*XS(W>d#=roxkMjKlvjhU$ZeV1J)nd!7M{kw-b{O<3Z z?|$cdoco=#56*e~daJnE6kosK>Ys-9t+wl?FFP=+tS7?r@HXSI-Cu9t<@M~ZKbvN_ z5Su5c&D`RM2pvcsB!mBb1)-_7yt1?&bSm|EL`)urC%roAT;#-auOtY5;N3ufU`D;xtAaW0&fFZ z^YZEvXEBzZryHE_#W=4}R#{WD6qer8QJcop=nwS@hCN*P2&#j@bG-#21b7GtXPR!i z#?QMj5;z>=ZbuOURedd#@iOH=yxKGXWOF{4nKyH6!FBH!QyR8izS-ipX|iunSlUq9 zuA8HC*so8Y|M!dc=nLIf{wqH(yRsqhLDa!ZI~w*?TyxSF@@%ag+Rdc+WJ+%d)I8cM z#fsE3+A7z>>Lh5FC?MD(wTqM&ZIzNGY6etE)Dvx$KS6}2Ktx9^-WEC90~rDnsU^xH zSAk`Nd63=PqCE;WgOs6}@-sY*$GA)ZAr^TGa={uTvin-(U0}JYhCaPTegKvVrcn)u z&{9vVRrS7EA#{EmDk*n#WkR6-ep?x`KEd){#EJDnGygFCtKYk426| z2C`Jv=VOs7W$J;*&oRicf*paGS{Bw2reyPCBmFAR z5EkJHEn^T=7iElb+N2WrhZ`wpJY6Y8`rBLt!nxv6jCZ|Vl2(6fPb$l^Z{5r$&270Sk)q% zm_R4Nj!ac3ywWBb$yo{irYViZC+!)vUdd&@>3^8y+dA)Jfi8EgVcnb?w^rPX_qi-I zfA8r(|MoQ7xqjV{@TM-mv-b|HDS0orXY}sIz^j{PAGE!LJc+_{zvoD^`>W*CY0i`c z+An;(ZOfRxh>Ay__J91w=lAbzc;}PFT}$tnU)W}C8Kv`ke)3Cu$ia*^4mb`)ZfLzQ zZ@(_^t@Vu)&aBiJ?zTRmXVVP%DUW|L=k>1clYyK2Zq%Pl7*_V%Pfs_@F!`NVOr_`c z+}H1p)XEpDif3i+jo#4thl@`}(c_|1&OJ~6xW;b1)SDXjE$fnLNmU*B>*J_fuZdn> z=`3M8D`7W^aua{l%NiD!medprM=*wB$;W|rB5hu>mfxUneyG#_8K;{Wtv+bqrHyf#aESGT%E-l^pRMDuL#XPl-IBxDu%T8HWbPFBr{tA zTg-HBTlS>qF9sVAaRGxhd?Qhto3pv@YRkopWp=pKEJ&f4-BDaJ)nOLpA`8>i@`W=) zEm2%>ag+*tvdCoL8I;3U7Tlcpq*N;*FEA3F?dFm{0-X;G+`9OV#@8aXf<^5>>&Oe6R$hDT#n*nnbPf>{Uc)XyT(1Y@?L3%K>DDO77Z2}Q1_38 z&?t|6_Wh}!4KA8$N*9JvVta~I?nNc-3#DE!y4-G-ZhLL%Fod~(IJ|$SV)clQC0p?h zjA3)|(;>BEp_J=QBRb8}A#dvK$RA|+eNaAWU;)CqDe;K$h_LxaG zA+Je7xk8nlhSBby3UW=>?+5I=PC+2eWFBWq71H_sfp#L3j&x@82Ov;?XOa{x(eN&7 zY&1R?E^2Gj(=LnkzR&wz;t_c)iG*b>Pq&Utrn`F$w7ttuE?Qn~}hO2T2;)U9C~|pOP<(#s>RnbT>_ H-TVInSiKF# literal 57707 zcmeFa2{@Hq`!>F5i=?DT$*c?+GG@pW5|W`rDKfLo^OUhDQ79Qg$W$man5Dr`QbHnW zps0*R8l>{S7W;mm`+eT(;rD*W@Be+r(R$vqYu{_F^IX@u)^M+T@9o_@TpPSR+&5T| zoHtlIdvjWNInx4!9bGIPY)FpQ!Zt4MPUfD%-lDXW1Oj2rt6sXjw0AzfwY`~^vQ=)f z+P3iEwGBIJo`m)6xRSOo^)z>%sq1I%=t%PLBse)(k=$Jg1SgU+$={J=fvl^!hX-aG zC5tLs7*UVt^!6KbesE6z;vK0f1$~(X=0c-B+ z?qXq1AaKDo^8Wx-Mt(jAi~MULTTgHT>A1r`s6WmwuAZo$<`x$2*4~f@@nV2{4-a<| z%GU$(%r#5|54dIqQPd9-#2h6nYYQ)1uuiBDQa98`{;PsTez{wFx!iwu&BL0a01o)2BN5cAHX92UxG#cwUP7JG0tAs zz%{%Ku{4MO?5qi*OtbL_2aEdOOtze0k)ErtlR4_riIubU#=wF^$ZN2uJ`=e<5iDx& zD~O|him#gWs~9RH|7zhH)&Bun$bJNi{LBE0%8!9Xeqr+hn-6&`v+ZHyCkxj|KVZ$Q zy#*FR5#s4Cxe+7?PUa5Q!Z7u*`78qUQF|VCj@G_Vz8!$t^&yXomm|pv@jU%pt*u-v z39RrM>3i6b9MC|!a?JMI3@nO=0az4wWw6NKzt4Xsb9V=8P;~S{s|wbY3p5~X@8MzX z?&59kNU-$qKur-E*k;=a;wBJQfR4E@$pyKzoM*Nj7syBR^c-BH{;gU&+pd?h70D7D zONMJyP7fCK2dz_g=ppC2SzT9{V4fsvcPEk)T2=&m4`DxZCr5(0yREA^M90y^8BI?@ z1^9u+^8(o>f`y?BImAaGtOnZ$7Okg)r+O2= z(K)G*uAQUpZgO^*9-V0_=W8KDj;uy+2g-JLza=K0_&u#!ExtQa6uWY(Jz?YS<+-tl zyTX_vwOjpjy6XiOv8#@wmTALQ#=D-$-%zXBL8_(v@i6vWC57dgg%^rq&IL<`i640T zc*((xxG2lE+BB1Qj_e{2ZQC}K_JuQeHH}d1-pqS_W2QuhPI}IybXD7Hi}M~=k8pKw zFy%AldZSq&qUU`%kh6j|Xv_L0^G@mJ!9(K->qkljHfgT-Du35hHQ`pBXqo2IHQox} zLS1vpJ?^h$@!2`3*rOx3t@7&;c3)xRY(?S5=tBg_UY5HJ*;nfxm2}2vSbr~&W0MX3 z*rKqf(_x=y0!52m&t>MKLnXQjeAb^r@3~Vsynd@3`^7DEcw+2Kpyg?P_J>s*S4HA0 zuW6UEF474*9&gYSexjnWNU_q&K%R4Q33myTa>jdRDu!s4pyH(0Jkrmzsvl&n(SM@% zb}*MW+iHJcrnbvYapnuW{$c?~%;csPrkwFinwE6a(I^;P*2aCKJ7w9M*u22z!;YgJh3vbvXtD8& z{gjhY$+qAi!|M9PRV^|d+3TN2d1(r0$=UQiK3x)~8u#66P_kvn2b<4!lK~+_rIM}F z>V66LI#19a-?DTCtJKP5YNBRfd9-{}^D~}d9-eB|>fI?Hdi8BM($|Fu35Hu+uw8Q; z6*N#gv?X6S^|6*}WOT+JHfJV1@2fjb7QS_HCpq6xvMS#g1=|*@fFt&6gYVfW(TLM1Rz9;2V!!GZ zKWXZ;#C5@<%_7Q{ z)wB5<|DSkRImS-{z6i9B`iN@In&!ATyKZs)O;jzzY?xcvwEhcL2Ty z@Ui)aS*+f#EXKb=ZXfaH8at$k@m~Q6KmW1(U$u+nWA&I}&`|tQzyBxm-wgO$$^A!s zIFrvQVeMZBzC7?T(tP7L1$;Gf`$z-R#q@qdtixFuo6&kNG{X<)U`5 z_OAk81;@wwf$ID&Vf;_P|8MSp>tVywz>VKr`+&6{34C=jAI(85|98HlGOXS(@c*0r zPZS>JG5%a*hi^X^_-Opm{6{{`xBu6GkM2Kn<)OAw!un4MZ*rjfH@5y}OaJ*_j4uv+ z?EZ;-n5!Qc-v;vz8Gp8!5;ADcV#<@W<0dwxJ`f4+Pk zc(Y0w+DH37)+c!Rj|r=5349^oW7q#kBv-)d#{eI@|DgFh-}}!^T>Gf+nC?IMfz=xU zKHC4W`v;akSH1we`KW^H|9s=`0DKAHqxN7a%{gIyrU4&+{+a6@fblzkkDcF84Cc#U z4sR}_`HRJVzT>wK_-bT6>ik^y0nGml93Qnk-}sLMUzQwy#D(o(P6=yYYWaT`zvIAH zhW3#j7Q?wXfVF=g`1ttEcl;ROO>T7m!{UbN{*w<_y*(^ZU_W-^g@Ugi!-}Y;PFAaRyhUUEXkZ+iuO7Nk8I?n(3 zwjT?8{P_>loooNQ$b3{EwT+F#T=~o^|9$?=*Z=*%$L=5h)F!?h>t_b=QT))lnQPlf z2jl+$z6$W?+HcGUjIRtI;$ZQ|@~}F;vsm3AG9UAOu6|(rYT&DY|A>!(<^Qg2REE|2 z0sQ~w{H45#Kv2T9Ki~Z;82D=B_+xv>KlzULzZv)_{#f6!IR29c)_*$qFb?^T;*Rp> z`~Jx`;G_K$aS`U*emL;4{?9db(9FNauOIlDCW4{jN=X8CG8zKIcZ~Cv-j6XK$o~@eh;vSp4v9 z{O&czZwJ0Mw2#GazWwK9oqc}6+QM|O>t9){eLdi#^C#lXwQZz{@gsnb_7CjrIadvg zUk!Y0|HSK}*S|{`|10p({6p8MZ7lzHTvUeD6N1m(Hv|9gV{c*YX)Yp5Af!aSS!-EW z@9}p%jNbx$Vc?_ZM|hO`m+s%||NR={bFt5kAG)6F*dZ;9zYqA*&_2q8t&o5{$D-@s zC5+z+e0kub^@pCJ=Q@uu{u21Uh6K5N)PFP&=8`aeF!0g+d#-+C+8Dnc_-Os3vH$xR zVs(FJG5!)x0zn!0DE3(1&+7j@539SKbN2j*+Q;zsx<9+d_-BAG2koQSqcqn!fblyy zXXA%mBOm6Hu=?w{X4fwo|GBn}^fA6E@I}FYbdC5}KTw_DC5#^pe6;@{ztJ3+>lkAE z2H<1!ADzLG&Ri14{|@|((|ZBU&Kf4W4h@2 zcL}R!27LVZ{f>h#!}tZjN9z||qxC!2eH`Pz0zTS5=DO}MA22=_?_b|v_@Bhz2>6)) zNPDgtSo<-+NB&a*7v;^h9~l2S@Kwls)c#x(#;4%>cm90+R|UQ@w2#^)0_Hn@sle9& zKGyDh`BT7G1O7s28}$j(ftSBcSpSvy|2zMKfseiaiQ1m;__YInANY@W2$)~Lbskqw zRA6@fq4|Sp{1X?IW9>KsADy2O7x_Qm=f4u*!!b7m-o`@T&n2KaFqee2{}uR~fsg!0 z_a9{En$Vadpf*w42*?lA544}7ge zFlIB?N?=j?Z!BtmGXUwrTAE47BLBC{UjCa!`Re3+WS0R90Vv-HfOL!jNEhbzOu}1K z&xD+hEV?!Yp!#M2l+0%S{dbG%nFElu0H8S8kgsjY)($L6$f9~Avb6_`60)crM*#BE z1%MLXqBBS+0Pzo!?IExz;Vmi;10cP_0F-`aQF#Oa*+>9N$Rd6e*&YLn($DN7$d3o0 z{+r4Pj$Rgcrvdtyi^I%cJThw0OOzzJuTKiW4NUxM!4_UM(tH{^LB0sK^uYYGz zdp7{c-UOh8x2T=kncRQ3Xj~e|`N$&vZSpm;sQfNqA)p0-60)dXE4qM$EYg37E+GBR zB3}DUt$(*D{}DMKS)|uVwq0OR`4jT>Q}XpQuqfdzs`ng#>f#^K=VQkfD*DO-hcM5**F|RL4ky~C_Z5T6u-j&lzwJW`Jer3COm)kuh}rb zzdz`Ipb7MUI8l&w@zTUh!?nf-!wuR`YA$f8-^CHVZtnwcVQOMy%s{$P>Hxca!ta7z2*SuVGg4me4=zZD%KPJmLLU#sE9h)oZ@C>85q>u0Paye&{m@ zVY+DV!4i>pSz5SYKvY$US*M;HLkDRV!DX)H+t`-FfiJf+_x~LZ+)H zdl%dmH#T?6VsN$#&DWB=Nh^8hB|4j6y6E13C8An@wn(~l>e&Xi)jc06%++|-m{Bw3 z23@;sb=dvlix(FxLw6bKtoo9l*{xk+KO)HUo+F)WiCQ_=LLQRVm9^|VAcX1S&)LN9 z_M4W}O;nv|H;R#KSX$M0z*6ejO_Q`sOR9$#sq2;{6^~tQ8S;M6y0Wm$uc$D_`O7-- zg3@I^H!i(N9JUUyhxf1lrHk%oSR%flRzKR|UJ!TlVKcLkT7^#BNwp>KkGrnpvgE3C z%HGm6{mS56*FbFR)6~t*BG&HDV5t_KE{#ZJ{56Oc#!7SZTfL_*yXFQ(mv;SLIo) zb6itunJXpV7dPP;fiMeCiZUW;6XJaVvnAUFkSp}AJJ&sOy-ixwm$z|cduU7DHvAeZs8DrUG_mzdL zU)w4zZAOl&yz+@jPrK-+5PU9=aBKL@$OuW)6{m|ngTNAzH~I{p4&`b7(dK|fn!*G6 z{kcA46M+-`C%k%YCe`>~G@!MQy}=*kTeV6yq}cL>SCqN&kq9rMD&_6SxG9P&yKSGrr8A@N#+Pk6CRTEDb8oqT^2ENa zo|M;yAGqOk(Rmz8M7~P@=ZqGV@=}swqP4rKqJn-)-Wui#9IU92B8`PRVZI@aHuOZ5NdXi9rrJZ`HS!o-H+eyxz;L*5(#to%QjI zO$=^NOwvV*ee68x<0=Yc_)0^9S<&iBOznoq61w|Fi8ojs3>!cteAlz7^pb&$&Uu94u% za<3z&xoFdFf)J*=8WROejC&UG{hEBiu?;J4Gt*QJ2Hm_>C|CcEKk?Gy2*ZzR!!I`O z4NlHa9o28y8^n~_G`44J@E30CesRhuxuyq8FCAQq(?#!5VTmX+BEUh?8o0=1tM^=f(DTQVfE;;5%>e%$?o8VsG$+2T- zPr&?LgNcGA{&?^5;NjCQ-$Uw(3-vGFuvdZcen z{W|fhHC#5D+7^1*?YX-yzn%&z9FJ(g>9XQ=*K>z%yTP~HTzrEZ2h(JcAgzg#TxOGL z)HUk6F9fFp^`{mp_)IVIS+~}UZ}3GZgF->I!P>(0HN@(R+0niw>_>3AYccmcubpX+p|Tg=X(>do6zPlI|e$lRAd|<4O$aHzpa* zJ|!OHVbu2=``&r!%k8VRtbWfn91q?6M5($=l%$%B^B1i>ED>*9h}}YK$+wN>+{Lhq zye2Gn?yYlRIhV|^k$>yq(Zj>>I@6EuQ0IvIkN+q+5S?GqGp_WsF1w@ATJ+l5p-5hj zA0UK{8z&|TmS`Ewq`>twf3pMa30u|fQBA-6%Av`#9+BC$aRX-yiu|QlKTwW0tX#|7 zuF-SOh2gN({_Aa#G{gB1D%7r&Y&Gb^>2l$9^Iz(j8no$Id=d)Yq3m18hX#P93qY>6eJ82{t@^~YtFu-~8E#&V?P~&@{3EXnMKjUH zv??wd>Kr><_BQo7_s;wD#468c5~j-?7CqWw9`+W5u=t|2hb7`I*H2cuIg>oMehe;e z`}llC+s7$w5xcvQ@!!4^>iJ*Xa=ddjbPv})Ha7i2ky7DAsVCz@9Sc84o4&kBV|FWc z4cZeh-F28KSmGG-cgy?tshE$YvvD$u%C9{dOAr)Z6n-k#C~rxTTW+;zsU6XJv*(d7 z74@8Q-KjUf9iLkMWccRVxVQadH*+J97N*OK*Dc%dV*7wVwn91&(dA4mlh>=v)z9{g zgx5u_>{%z_k#|pXcQ)U#^hb}bs4deudzV)GncaKVT}*;!A0D^5VsyCr5>A&7uba?@_}3#Eh`$M@V58^8SZ$ZFx&N_kgO zKd;U4EADVta7`Ll$LaFpb>okeuVHV|eMP&vczD6av$v~}%B7d_6ME>G z0*mi@yzZxW!)cramada~y5ZUA_KMI_vvq?R&Rev-xM@U|b5(vdxz$B=T(+@DZT&{} zxQ7*WJ)+0#YuXdliNq?^_S6iVt{`4_+55?Yy@_}BX=bl)O68ME^&5P?Ao=aa&1Y}W zL>!MJafXcO9et#tDt4ao-cja_^{WCDOzeuLg~gVASQX)XX~YAkD}>iQtY$Q}-SF56 zllN5%_#9)WsS@h*1(x5S*tzRP>;uAA1;r01m06OVI?o9{vNL;|xyB`O?ar+Ai5WUE zLxtzQ(fZ#|NDhkbV+sy4Saw%SOkLiq~>Qk#L-Fs-D{EdZEeEHNtQ+sEN$%7^!gvA&890F+*ot{MvT^BiOwn8GW!giO3 zB$ptM@5?ot{8??}Wp_|sIlf4x=r*CO`%at9xh)IqH?MjbM`!nJaZ@tyH@00o)0YBq zx*L!nIT5#)e;qA*k#{>yB$2`N>Qr^clJ`O!3NI-_n(GERt&%byja;I;bt1#;Qc;^I z<&K+_q@s6KD<-(b_|u*jo_@$#0y>z#qL?UHVw%sjZxOLSSnq^K=XuI@FMK++RN~?K zQpuL-57iU7uj9f`nqDfmZ#d&OZPVp%-r@(0gC;!z#_jT>vWHQlv#+a@cUUy1P z;D&q^T^C=Xu zf=BEa*M$=TE6jb-nE}&9pXXqS__^}r5&05Ip-a^tG-6B6v%Icq2$Q(?rKQD{x`$10 zcm5{Lv{PEIo?g@lSy?UAy7`-WX-6_`nNVG`^NKrcr8oUR2-B6oM8OgrG7~0TDyjWC zZ1;t}cOKxQ{Ctpdyrb^}KMkczm6P+n^*&1bMJ)^}CqC&@3y7`D+I@@iI^H&P5`#D0Z#W&!>*VsfyBM-M>JC>#Ua=csW z-YRZozP|8|rbXSA(eh%JirC$JPgGRduIUzSaKG@Kt)V#LBjdiPt43%~z~ZnGue&?9 z#`I-F`x5=uEoT#5N=%5Elb;O58)ySRtlqv+=xD+z`o@iSM0xrPEKW-;=-Oy?M_>uV zYhvHyEjA8$G7gq_f2Hxd3QXbbeW#xFj3~#wOYPXSu93ZL_e5D-q1;Um`ESGi%9CBE z1M;@kbB=Lep&H~K>sYPd92#7;X6lyYW78va`%mEfh3^jhD-nxH^tbyh#k)e@)_)oe zkzr&|6Vf|v8&+<5?y#(D(NNRQuNyzt=(aXyCMc;s6kK;P>FTl8>&aefb=Rt-Jr3&+5OPs4zd9OC zrhe(LLaaB1hVuFi6@sT31fCBtRO07@9A3AnKXRp>{(FYRv|4LUH+6;6mzR96WxTsM z{9Hd}!0Axaf;AVMzofEXlG~`-?!SK_Z>b}JQGgKVQ}$Yn?d;p&=Qw{i;dLh}xOHjT zkK{jmlcsuA*I|2bC_igV&=rYgi)~MBGg(3VdE?d>xA@QIjil@*^nB@Kh<;&~m`Ukv z7Hp+=Yt`Z%SvXyJylz)Tj(VIHHRJT6)iHAWA~b2Y#|)nIi+Xz3WmH$it?SCtQ<)>% zg!d#>#n*Gu3a%IY_T2sO*I*m2l8o)O42PD_el|0EPF29`e%T^)-mvU8Eq*~1ZqE2Ufz|m?lG5g^BVm9 z4V{ItL~MAue&p8DGF^Rz_P)=4_f#nCwuktc z0uG&gHrQ3&gb(#!y_qS<` zK5>^eTTo}a%+amt+PxF(+gV*`Q&q}Oq0d|~T{XO}Sj93`v$%*A>lT>3o=#jf)t4*ZHD%B#m>#!jB`uBDA{)?afUDt}p1W-gwdB4nvK~U5kqA+m4eq zE7rC>e-!(TMYtf;qzlUOzd@ZqCU;`wqtlx7H^t z-uJd2x^#ULv7}@DX6+p6%VR;?dJ4-Qys-LeNzEM@V}PE4usCeRM8Oh0jR?`FT2|67 zmJls9qEcM^K4n|gi4B^DDa-EY*yj#!sA5(fuogSxIDm*-{e$>eG?|+jO zrQEJB7pa<6fAVVS@UH7YQcq0F6H~nQCR@H5Y%J&=IO)=NYpv%|pwlDlYE7ub0cF`;y1! ziOo-W^88AoHZnyf;rI1zc->t_yYIX4O*VF$o-i|RHs7w;ta&?wZBJC#NrthlgK@s$ z^ciw7NhkO3D5R3Uzx;==XMEV>Z#UkCZz;KTYve=VO`N~lcwIw#&ts9^34xRPQlmwJ zubMR)yjaseUd!2j;H0@mOp4^bL^suv$dDTY4|$dOLX>tGuYSuX+O2(oMXoeRbCVl7 zGhp*!J6^XrykO$>lRC=UrxGzi5^V)*e1p6#_EfmBMz9;_RNpRHPcJ6SswC5rM5<+@BHVZrpJq2_RVGsGJ^Ov( znuBXyZNj8lPSD97GxQrDZQfcOLA|In|KXBjcfP3RYwX-XEEV1!gWh|={ME%o!4ik0 zV(zGhlL(sTH;=I{kK;cxIw0zpdQ*q%RPw;>k^`R{3TtyxJ-0gL-aA$vYL*|A9?kr* zpJreez5M{?z5|C};&k=!y5Gy2^X-V*D=GR|h`!dQ4!3Qpy+5V2Mm6ax>^(kyfbYQo zknz)z0{*21>Cn4_AFav$1H0&%m>Hj)Pm*<`lKq(9w&XQt_{j6Ewr= z?!fCZwA9*+5*`mn2wonVc5IkhYI(XUyIpE?sx|||;+xHPH}fioIjyW-!z7hJv)k?L zQCd&Kqvf@x##QegeVi6?yM@!;iP!CYd~m`$ZpF(Jg!;2fSsG-NGxns~`F~*Tm$j0; zvR+D%Y3IclOR28!JS$@44-@pgEQUDiY?tp5V_wMON%L)4J5JXCugfW5IT`T%)tdv6 zmnQRA(|M0Jdrf>O-FH)7YKsyM}qc^CHhbr%$zpbl(xJjEa3wdB3t zlNAyZINe=%-AC&E+@P*YfF@I%~FyET1WhS)M%x5<9j zl`|>LRsD(zGNIQc?TiJrEER&fTxDGZ4&V4X;9_v`L&;~Vmpvw%)*N-h=^Ej6-L#n?>pS05_@gsX$F?MBCBXU^S*=4JGOeq>ZP?@sF1i6 zmhmki^K79}Mps1D-48Uu_mkX7`3b=WWBcuIXdFF&)7^vDU1>UTEy|H#IK5aWX8Q&c zE0#@>D+?z#U8ifw{x*Ch{Poq54avUsd5n7)NuI`Ihi{K2PF2G(7*G3`o-wWnGHj{N=YP_nhPIh2V2xXPB?ybkUg#OT@2i*0Gn*TGc&{j*v3Y(v)<*Zxx?fasSX# z-NDP*aa)!}n{vN`|3}NtsWTThpFMxiAY_p%e}|{r_rkoq$yHS+AA=C)?>ICsYCuvZQjbB8Q>*`IBS$ZzA8>+3XJ zv(Ww>mwUPSO~D2D`!TwAV2Nn4+PJ9T`yLv`b7Rkkna%DEe@n<(HeRn7t(-sN7$CtX zYqn#XnmJXn;@Rpnns)wY%)Kn46-jjr!Fk8XQod!kPsh-3rIFG8uw*u=0KdV)g$PpEeq-Sam2sgmj;dPjoMpaRpYtp_5TrnpN_KU?(u%gNxqEbW9|)AJQy z!(C+_JYR#;wZ-dFu|KL7jc0wA-@Q!DxKV6dM&kLD)maC z2#Pab@;sC6uZt%)eC8BX*Dg?HY##8vcMqp)hu75)y1+6}RFj=-O0Bhe8>h8>>P~KE z+o>*{3Vq!#=bgFFuDT|%;fPP>%~#I{bK)(uzHYb>wXAL0HQGQm+<9qD_L63@hm_QFd+qqL=>@_BLg+m64tcz$$) z^Lq?&4_|ICig5oT<+SCo_Pwfy_Me15P@K&_TAH4BjB=MwLZg{TBT@g}fLrD} zF>9ejA=QA4^PlkNR2RJN)}#Ey)p|;SPZ!@7xF5(xdFYfHLnCLUFU2|MBeqFV{gz{~ z_E(E0H7(Ux8OsW&=&Ekp%e5&5b-jJ6mM+zA_zAQye_ipq1jCp92d5lP-pgxjX4c_} z8XPb=XC~{{b%jxI`s=snDi4ZEUn-U6KBxC^%GI!AD5hdc)A~wBe>6kk(dPq)4Ds*7 zxZ!m-JUX_TdFa?%Gd4aQ3&O?ewc3{gn&?hN4X+rIO*!zKO7f^>d2;fVJi6uwDS{2z z??hLgX!YKyRbrSGG1<>7hkV5Rb;s+5j_KKyt?;;UPQc&aGUgVQ!i(+qmm2oG4N89A zdzO9qsZa$|qt`za4IP8V8{0>gKe*8PK!AU7oxOrZpTq+ve*C&XpE+QOSRFs|fV#YELdr^)9=bjmTE-VLc6gB=X&`GP zwvR8PB=FZ%138OtUl36d zV!9kK9M$Qwm-W$8V?%8-sR`544sAB)8?1~uJp!A%jPKQ)j?Ub$ms*!8j8W(!9ZuI9 zudA?zCBj90%%Qk`3U%d&Zi$2rA67l2HA0 z6KH&BK{K?{D$~>7#x%sJJr{G)-PauB|XE^ zE7_~jSq~dGbg#n_QRbsluvV_GNbBCd)Lp?OrWP+i@9AK= z2k^T6OC#I4zAI($y;89_{cdyTo)wRln5HZVicFp0P+aw{iD_W0g>Fr_)&4D>Ww-Wh zwb=XOp$)|&r**a&a?{c2>(H|brW=6QeXb17qQw#Y! z4vif?hUNg~ZxCMh(Z1%=Ub^wvYZ|+xR=lGPl~mV{QJ{{i-f39)Z^ zQsO5zU*&F8_jHhdo6Mvz#T%EqXS4Oi?yJQUmDEqUyWXf#y?lDvox7mfP!y*dg4ZRO zd8_d1K8UP)CoXE_qtE_?aq;^Eb|#)GvBa9LW6IA$nD&b;62I#fPc3{~SH&UtgKy~* zPqlY_WBdC11mAM>;&emtx+TVr>zr%7rBf-nNRA<12mCK_EhfHwLhq6OeEXAb$B^

$J}zzdQ@EKD0})QQSYKn`gf;PeV+~ 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 D&B)R^ diff --git a/package.json b/package.json index e44d4eb..0aa3a17 100644 --- a/package.json +++ b/package.json @@ -9,13 +9,12 @@ "author": "", "license": "ISC", "devDependencies": { - "@types/sqlite3": "^3.1.8", + "bun-types": "^1.0.31", "typescript": "^5.1.3", "typescript-language-server": "^3.3.2" }, "dependencies": { "revolt.js": "^7.0.0-beta.9", - "shlex": "^2.1.2", - "sqlite3": "^5.1.6" + "shlex": "^2.1.2" } } diff --git a/src/commands/avatarMemberChange.ts b/src/commands/avatarMemberChange.ts index cd0c649..f17defb 100644 --- a/src/commands/avatarMemberChange.ts +++ b/src/commands/avatarMemberChange.ts @@ -1,4 +1,4 @@ -import { Database } from "sqlite3"; +import { Database } from "bun:sqlite"; import MemberModel from "../models/MemberModel" import { MemberRepo } from "../repositories/MemberRepo" diff --git a/src/commands/colorMemberChange.ts b/src/commands/colorMemberChange.ts index c99bd41..1f45b1d 100644 --- a/src/commands/colorMemberChange.ts +++ b/src/commands/colorMemberChange.ts @@ -1,6 +1,6 @@ import { MemberRepo } from "../repositories/MemberRepo" import MemberModel from "../models/MemberModel" -import { Database } from "sqlite3"; +import { Database } from "bun:sqlite"; async function colorMemberChange(userId: string, args: string[], database: Database){ const memberRepo = new MemberRepo(database); diff --git a/src/commands/createMember.ts b/src/commands/createMember.ts index 33111d5..e684bae 100644 --- a/src/commands/createMember.ts +++ b/src/commands/createMember.ts @@ -1,4 +1,4 @@ -import { Database } from "sqlite3"; +import { Database } from "bun:sqlite"; import { MemberRepo } from "../repositories/MemberRepo"; import MemberModel from "models/MemberModel" diff --git a/src/commands/deleteMember.ts b/src/commands/deleteMember.ts index 74b5c19..329a9d1 100644 --- a/src/commands/deleteMember.ts +++ b/src/commands/deleteMember.ts @@ -1,6 +1,6 @@ import { MemberRepo } from "../repositories/MemberRepo" import MemberModel from "../models/MemberModel" -import { Database } from "sqlite3"; +import { Database } from "bun:sqlite"; export async function deleteMember(userId: string, args: string[], database: Database) { const memberRepo = new MemberRepo(database); diff --git a/src/commands/listMember.ts b/src/commands/listMember.ts index 18cf368..d8e8b38 100644 --- a/src/commands/listMember.ts +++ b/src/commands/listMember.ts @@ -1,6 +1,6 @@ import { MemberRepo } from "../repositories/MemberRepo" import { tableConstructor } from '../utils/tableConstructor' -import { Database } from "sqlite3"; +import { Database } from "bun:sqlite"; import MemberModel from "../models/MemberModel"; async function listMember(userId: string, database: Database) { diff --git a/src/commands/migrateMember.ts b/src/commands/migrateMember.ts index a9982ce..b7e1b6c 100644 --- a/src/commands/migrateMember.ts +++ b/src/commands/migrateMember.ts @@ -1,5 +1,5 @@ import { File } from "revolt.js" -import { Database } from "sqlite3" +import { Database } from "bun:sqlite" import createMember from "./createMember" import { avatarMemberChange } from "./avatarMemberChange" diff --git a/src/index.ts b/src/index.ts index 8136997..caa7c21 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,7 +1,7 @@ import { Client, Message } from "revolt.js"; import { commandHandler } from "./utils/commandHandler" import { nonCommandHandler } from "./utils/nonCommandHandler" -import { Database } from "sqlite3"; +import { Database } from "bun:sqlite"; import config from "../config.json" import dbInit from "utils/dbInit"; diff --git a/src/repositories/MemberRepo.ts b/src/repositories/MemberRepo.ts index ff24e03..7070c7e 100644 --- a/src/repositories/MemberRepo.ts +++ b/src/repositories/MemberRepo.ts @@ -1,4 +1,4 @@ -import { Database } from 'sqlite3'; +import { Database } from 'bun:sqlite'; import MemberModel from '../models/MemberModel'; export class MemberRepo { @@ -9,30 +9,33 @@ export class MemberRepo { } async getAltersByUserId(userId : string) : Promise { - const query : string = 'SELECT * FROM members WHERE members.owner = "' + userId + '"' + const query = this.db.query("SELECT * FROM members WHERE members.owner=?") - let result: MemberModel[] = await new Promise((resolve, reject) => { - this.db.all(query, (err, row: MemberModel[]) => { - if (err) { return reject(err)} - else { return resolve(row) } - }) + let result: MemberModel[] = query.all(userId).map( (row: any) => { + const mapped_row: MemberModel = { + id: row.id, + "name": row.name, + "prefix": row.prefix, + "owner": row.owner, + "profile_pic_url": row.profile_pic_url + } + return mapped_row }) - return result } addAlterForUser(alter: MemberModel){ - this.db.run("INSERT INTO members (owner, prefix, name, profile_pic_url, color) VALUES(?, ?, ?, ?, ?)", - [alter.owner, alter.prefix, alter.name, alter.profile_pic_url]) + this.db.query("INSERT INTO members (owner, prefix, name, profile_pic_url) VALUES(?, ?, ?, ?)") + .run(alter.owner, alter.prefix, alter.name, alter.profile_pic_url) } editAlter(alter: MemberModel){ - this.db.run("UPDATE members SET owner=?, prefix=?, name=?, profile_pic_url=?, color=? WHERE members.id=?", - [alter.owner, alter.prefix, alter.name, alter.profile_pic_url, alter.color, alter.id]) + this.db.query("UPDATE members SET owner=?, prefix=?, name=?, profile_pic_url=?, color=? WHERE members.id=?") + .run(alter.owner, alter.prefix, alter.name, alter.profile_pic_url, alter.color, alter.id) } delete(alterId: number) { - this.db.run("DELETE FROM members WHERE members.id=?", [alterId]) + this.db.query("DELETE FROM members WHERE members.id=?").run(alterId) } } diff --git a/src/repositories/UserRepo.ts b/src/repositories/UserRepo.ts index 1e856cc..c25e5a3 100644 --- a/src/repositories/UserRepo.ts +++ b/src/repositories/UserRepo.ts @@ -1,4 +1,5 @@ -import { Database } from "sqlite3"; +import UserModel from "models/UserModel"; +import { Database } from "bun:sqlite"; class UserRepo { db: Database @@ -7,8 +8,41 @@ class UserRepo { this.db = database } - getById() {} - new() {} - delete() {} + getById(id) { + const row = this.db.run(` + SELECT * + FROM users + WHERE users.id = ? + `, [id]) + return row + } + new(model: UserModel) {} + delete(id) {} + + isProxyEnabled(id: number) { + const row: any = this.db.query(` + SELECT auto_proxy + FROM users + WHERE users.id=? + `).get(id) + + let is_enabled: boolean + + is_enabled = row.auto_proxy == "TRUE" ? true : false + return is_enabled + } + + getIdByRevoltId(revolt_id: string){ + const row: any = this.db.query(` + SELECT id + FROM users + WHERE users.revolt_id=? + `).get(revolt_id) + + const id: number = row.id + return id + } } + +export default UserRepo diff --git a/src/utils/checkAutoProxy.ts b/src/utils/checkAutoProxy.ts index 213a7b9..d3c2336 100644 --- a/src/utils/checkAutoProxy.ts +++ b/src/utils/checkAutoProxy.ts @@ -1,15 +1,16 @@ -import { MemberRepo } from "repositories/MemberRepo"; -import { Database } from "sqlite3"; +import UserRepo from "repositories/UserRepo"; +import { Database } from "bun:sqlite"; -async function checkAutoProxy +function checkAutoProxy ( - userId: number, + userId: string, database: Database -): Promise +) { - const repo = new MemberRepo(database) - - return true + const repo = new UserRepo(database) + const user_id = repo.getIdByRevoltId(userId) + const is_enabled = repo.isProxyEnabled(user_id) + return is_enabled } export default checkAutoProxy; diff --git a/src/utils/commandHandler.ts b/src/utils/commandHandler.ts index 5e00cc1..e03fd7b 100644 --- a/src/utils/commandHandler.ts +++ b/src/utils/commandHandler.ts @@ -1,5 +1,5 @@ import { Message } from "revolt.js" -import { Database } from "sqlite3" +import { Database } from "bun:sqlite" import { split } from "shlex" import { returnHelpText } from "../commands/help" diff --git a/src/utils/dbInit.ts b/src/utils/dbInit.ts index edd07fb..23a1c63 100644 --- a/src/utils/dbInit.ts +++ b/src/utils/dbInit.ts @@ -1,4 +1,4 @@ -import { Database } from "sqlite3"; +import { Database } from "bun:sqlite"; function dbInit(database: Database){ database.run("CREATE TABLE IF NOT EXISTS members (id INTEGER PRIMARY KEY AUTOINCREMENT, owner TEXT, prefix TEXT, name TEXT, profile_pic_url TEXT, color TEXT)"); diff --git a/src/utils/nonCommandHandler.ts b/src/utils/nonCommandHandler.ts index e606b1b..add7a47 100644 --- a/src/utils/nonCommandHandler.ts +++ b/src/utils/nonCommandHandler.ts @@ -1,7 +1,9 @@ import { Message } from "revolt.js" -import { Database } from "sqlite3"; +import { Database } from "bun:sqlite"; import sendAsMember from "./sendAsMemberHandler"; +import checkAutoProxy from "./checkAutoProxy"; export async function nonCommandHandler(message : Message, database: Database){ await sendAsMember(message, database); + checkAutoProxy(message.author.id, database) } diff --git a/src/utils/sendAsMemberHandler.ts b/src/utils/sendAsMemberHandler.ts index 75d87be..0b239c3 100644 --- a/src/utils/sendAsMemberHandler.ts +++ b/src/utils/sendAsMemberHandler.ts @@ -1,16 +1,21 @@ import { Message } from "revolt.js" -import { Database } from "sqlite3"; +import { Database } from "bun:sqlite"; import { MemberRepo } from "../repositories/MemberRepo" import MemberModel from "../models/MemberModel" export default async function sendAsMember(message: Message, database: Database) { - const alterRepo: MemberRepo = new MemberRepo(database); - let alters: MemberModel[]; - await alterRepo.getAltersByUserId(message.author.id).then(result => alters = result); + const memberRepo: MemberRepo = new MemberRepo(database); + let members: MemberModel[]; + await memberRepo.getAltersByUserId(message.author.id).then(result => members = result); + if (members === undefined) {return} - alters.forEach( async alter => { + members.forEach( async alter => { const pre_prefix = alter.prefix.split("text"); - if (message.content.startsWith(pre_prefix[0]) && message.content.endsWith(pre_prefix[1])) { + if ( + message.content.startsWith(pre_prefix[0]) + && message.content.endsWith(pre_prefix[1] + && message.content.length > 1) + ) { let actualContent: string = message.content; actualContent = actualContent.slice(pre_prefix[0].length, actualContent.length - pre_prefix[1].length) diff --git a/tsconfig.json b/tsconfig.json index 3f3bf8d..a650685 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,6 +4,9 @@ "esModuleInterop": true, "resolveJsonModule" : true, "target": "es6", + "types": [ + "bun-types" + ], "moduleResolution": "node", "sourceMap": true, "outDir": "dist",