From 1451e3ad93144c0124b708d763136d28e1933ced Mon Sep 17 00:00:00 2001 From: TropiiDev <tropii@fstropii.com> Date: Tue, 28 Jan 2025 19:37:08 -0500 Subject: [PATCH] implement the history theme for quiz --- commands/__pycache__/help.cpython-313.pyc | Bin 0 -> 2418 bytes commands/__pycache__/levels.cpython-313.pyc | Bin 0 -> 12558 bytes commands/__pycache__/ping.cpython-313.pyc | Bin 0 -> 1918 bytes commands/__pycache__/quiz.cpython-313.pyc | Bin 0 -> 5003 bytes commands/__pycache__/sync.cpython-313.pyc | Bin 0 -> 1723 bytes commands/__pycache__/tickets.cpython-313.pyc | Bin 0 -> 14787 bytes commands/help.py | 1 + commands/quiz.py | 49 +++++++ .../leaderboard_helper.cpython-313.pyc | Bin 0 -> 1173 bytes lib/__pycache__/quiz_helper.cpython-313.pyc | Bin 0 -> 7032 bytes lib/leaderboard_helper.py | 25 ++++ lib/quiz_helper.py | 128 ++++++++++++++++++ 12 files changed, 203 insertions(+) create mode 100644 commands/__pycache__/help.cpython-313.pyc create mode 100644 commands/__pycache__/levels.cpython-313.pyc create mode 100644 commands/__pycache__/ping.cpython-313.pyc create mode 100644 commands/__pycache__/quiz.cpython-313.pyc create mode 100644 commands/__pycache__/sync.cpython-313.pyc create mode 100644 commands/__pycache__/tickets.cpython-313.pyc create mode 100644 commands/quiz.py create mode 100644 lib/__pycache__/leaderboard_helper.cpython-313.pyc create mode 100644 lib/__pycache__/quiz_helper.cpython-313.pyc create mode 100644 lib/leaderboard_helper.py create mode 100644 lib/quiz_helper.py diff --git a/commands/__pycache__/help.cpython-313.pyc b/commands/__pycache__/help.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f55d09c2dbbc63c60ca2c8fc47ff7c90e91ed670 GIT binary patch literal 2418 zcmaJ@-EY%Y6u;Mw6E|OFeA5B)%2YLjl?TQ~5Sv5`8c-Hk+)7LYS#Errcy;V>uhY^z zZ6IxB(o|_%Cmxx!7vA<a@E0_zrXWv~CT%agm4z4Hc8=|&rEFZq$LF4V?meIP=k#*9 zG=Xtq@yD8-AmlHc^oJ5Ny%}KEh)#4mO*p=#X>x^fsv$2=OIKtrYvdpqC3<3n=t@N{ ztNlZ^-lye==Zc;jAv{^5h163Nl?pV-n$4zB^%@P+wFJ!7K40BBfRKSlKZA6QR0yX! z;gU|dtV?iaqN0?u+c!jfdH7Y?=~$%8Bc#uBwK7!R`>HO+rGwW+Nl#TW<%6$kyeH}E z2>CoQI4P$O@q8^^$OMT?%xOMF&#Th5jmTp{db@zEksG_5!D5X(qNPVPkmo$VAO#7* zoOzysWr3SCEts4-TbUJ%i%QjVY`1cOEi%VzGG4j9?AJXI*rMujt8#wcXS`whbx@2_ zTd9LL6V2s7H4NLeeZvTH=-@<unnXJ(AYYItd-i{;_JAc-iZmYR^*wlcqd<-k4ZOcO zSl8+4nAb>+d?3%$f>df}(1do)1!ox)S7~zF^$V0^tpw_8JO?yTJ=fsOw3cJ1`qLrQ zLyf24*57JwrSY43_=SLmC3kbfG)Q1n?Y&o-$z9Ey^IE>v4;T~Znhh3YEGDYlZu++8 z1{tu=xLL)?OJ%|E!{ElitvEOkMWejEfUyjEgX+>OEu%9#Mj21rF?6{oyV9&w#+Y`D zewS(Ff7VmFie31>>qC0_wd)x@8?V!Hc<*0!po}TrF=iz_SEQHWrq`kHi*!vcDOrNW zRY^$+3!E>tvtfa!q9$vP%+#4+n#tjD9L=w@t#ZhL;@iH%_yI5!DA2$j50Y20gGGBz zXMU@xy{nzK8n!F2W0unwE!*EADx2;Ci1fO*q%C_bu5l2gKeiXyPDRhzAu33Ge`tBp zbXqJ(&Dhli=8N{t|1v!V&FJF+F=J|esGgp3JO~iv;X8C8Ub(;=7H-)VLXh~hWw+ax zkiw=JCj7|l1=m}0m{ntGXkCl(InU%49$RPC1#PMBX?0VC`K#MC$f>X4y=Fo38swCV z_ULunt$}`+2u!mB?z+`w&6^K*A%MVjV~sgx6;eUUif|!NE}|qzv;ai-o0yIv)3S_t zn>kjXaweLdD_D>f%(aXL6T+;qf*f8~j_4OitRbKs0F0uW%lCzcgh+yS5gSQ-2PC|( zxxK5mzPa`A==z7Bt(#8QyxlQxcg>{^{Bn0zq$g^6HG4n%V0@F1<GQqxeMZR8%s^ZK z@rkRk_>+NnY<*m;WIL)q*uMTw2?f{w%pdCJM?3k^ZvJE^fAW{P_58{8e6gz*H`L+_ zu^ZgFJDHk%gFYUjlf#L}=_K$R??b6DjKGL^0l=6xjD}~m9OScxal2(Y@yf6Px#Ge{ zJaaw6;Ca~05di{u%BuycV+$w*BzF%kV5Wjpj7S_|Gss-t0-z{)`wT<)CUlWu`aZYk zT0Rqo@rZEzK!otf5l%vaUlVZy$XDbai7E#+lO&n{y7FbEtBiD%kqzbWGY}u?$s~DX z6FF4a-Bk|#svLT-xPIz#N4c^orIfP|Yu&M8XRO#GFhTWc+CzC{6z#nP{b=_dJmEir z2pwlhIR<=?55`RlIUKX3|3T=#Uxy_eQ4t_Jh3#1NYEj5on(dznMIcP@_d$#(BCvz8 z(VnDptH<vj|G|22>U(=5t#uRHMnZcb@H2Dw=s0~y#}Yp!$KiiRScIr9nfOvnuseQO zLOucNkzusJPazo;AyCgnP4N*w0}B|tI0j@>rj-6p@_!Hwe$NxT=-HJstLN^YdrpAu Ly-n#`;UWJ5rO_nd literal 0 HcmV?d00001 diff --git a/commands/__pycache__/levels.cpython-313.pyc b/commands/__pycache__/levels.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4995e2ca6f5d14054aebb9522b11715ab56be7a3 GIT binary patch literal 12558 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 Nv3`M}>HVbM{{w$Atf&A0 literal 0 HcmV?d00001 diff --git a/commands/__pycache__/ping.cpython-313.pyc b/commands/__pycache__/ping.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..45fe31582049de721051e4e00bc357946a29122e GIT binary patch literal 1918 zcma)7&u<$=6rR~1&c=>6X$v6<ZP*4B>Qqe&B`OIKQYe=uU{Ws;Mp<dQ^=_O6d)Jv+ zTO=n42--u{14Q&#Brdse;2-FJVB;c3TlIk8KyCr|5{U!v?b=SNN{Es7?f2fieKYU9 zZ^rF(I!R#UzyD|LjzGxosC0+i0qq)q9ikJRE)f>LDWjkZOTwbaL=A1?5?Pd(6k%ye zUQDorMhtO+%yhzNWQ0r*T^=KP!bs%Q?lMR388OC8(fh^->o3xbvX7>0hK8w<Z`r2p z2aZ<*b-=1r%z|GoTb|89SGu@x6pxTz3O|B%hZqF6%><n?Q5Rqd$&hmc$3KX1Ztz)K zHw|4J>!rjLqd)iDv%Zif(Is7;6(H4AZsb{yHv~-a6R8`OrFDg=#r{k(lq#-Q-0z2P z3eb_>K#cWi4}sVr`Jqy8sz`Qec9(|YO+Uy8p~Rii8pE_WexzyPJ6Gq7749%@6#SCw z8SgqZr{q^0W-M<8>pmD<UhtW1EUX0%D_g-jIL4(la5vMH%}_B-*K-5Y4AYURt0I4R zABfM%-l^d`N*f?4P?Vj4yZ#cM_5_HRi3Yo0?ak|Srh_$7Bv-^Wnh~;FsbyGI`@n<E zI?!CX!dx%NP?m-W9Q`$h{0SA`Gnr%Ao1IN{)yNOUK5Xj`C4H;>t8)5~OJLbf57I4p z+4qWPu~wc{cEXhH@B(uyf$Mu=3YK!1RY2vb4q%c|9zO&4uRK<0?s(_G8%M57##oJ{ zF05kIXsnQ&(#1#bTy#E<bVRy%0b+IQrUKP2i(Ty+P;VV7UZXo=Rvv(A7l}f$a#UG4 zyQM~z?TM}NIqarcfqKkMO+{syno7QB!7(dr&S~zS5GxeQJd<FjVChg{4hLuMgah31 zY_sfeZWWzSW`5PPBi4m|rTFuV5H*Y;|2tHS+Qu;FupbwmMsWh?-v`m@R$U!`sJyhN zj<(c^hC0zwFE-SR_1CXI%zaeP8?F3}M*c=Czuw5N*FW_edB2&f)UR*UH+cP0&{V4} zrP@@ghx{Z&++I)@M(Befx-cv~IFSI%Qee(z29eO%d?0kvG|RqSEg>E-&5f#6>dXw9 z=9<fRfIRek(`0xtFl=NfUiFKiQgS&|%3%y|0fzhv`#MJ_?6c!j6{fBoF)GgedDG;9 z6}Sb{3IgWdtOgD@&0WH<6h}3Robe{$AA|Us{4G%Vg@Xi1sNWc07%h3MA&)iX(|>{a zOj{(0GY5#!;bco5{Y4(VSNrKoLw@T(5ab%YUu;dzHYR7=1U2-ZZ$}gHs@RmL&Ml@H z@%=*pG2elsy^{;Z&R7MG#ABt$%KyVhhTMij*k{=`+~vh6-Kamu&$!H;pju%Uz;_rP z{vrq@%3d;k_x$bi-`V#rf9p1rT1(QJl6J`P;@ciSNAJ@~>4(HQnn|)(!4wKU4-@hK z2g41=-AZ+uH0^vAM2%&y;2ahsT9Qp6>a`_Q=3}b7&0d2EEC#;>;y|R7J|gNP(*Kx@ iKPDRdej}-`(odumt<hU=-krZa|AZiJk5PIyiuf<xvXoo^ literal 0 HcmV?d00001 diff --git a/commands/__pycache__/quiz.cpython-313.pyc b/commands/__pycache__/quiz.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6a7170da96ba832066bdfefba53cbf03b484c12e GIT binary patch literal 5003 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 literal 0 HcmV?d00001 diff --git a/commands/__pycache__/sync.cpython-313.pyc b/commands/__pycache__/sync.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e0be655ac2c5b2634341591383e3fe3582ab7e29 GIT binary patch literal 1723 zcmZ`(&2QX96rb_OuJ^;6LP!W9E#9p_Sw#v56h0%QP!2$)rL2jBR7;j?dv`5)?PbO( z-JT#w&>T>ZAgCt<$H0YufJ6U-rYp3m5vTT&Tf+7di39K1>rL9gNb~&Wea)NSd(R_P zEfQG2|L{+1L<xC-hiu7XX7nB~J47csy-XN>h0F8<fe9L!BQ>In^F)^np_$7ZPrfT+ z$}>rq=LwVBw4OUaQKL>{#SXh&D{#1d;y}pc*55$7Lkz;GPMDxmCh7vjkPNw5KJAe5 z&8f4pm9Ypj%y_1N|I=q};T@2po_j+8{WJfi&m!pglW3WYm2`!b+l6{Dmh^sLAK)u& z;Zzvp5sc9}AUoufbN)oxCcCt;OJng`7}bSX;;!FfSQd^>nijuv=}lvuyNnxl=zD?j zu6y0}!=B5GEB&Ywg23Z;$Q)y>6}hZyMIA6qp*1*Uv)t>)ifMX*7nx?PVuH)r5sSw2 zKt3n?)3e_wBVdUQtuR@b^_Q?mH6Ry>2H9Vo=ykd><~7nLuZb;M7aBK9c!l<10Li*g zXt~F{AgWVVf(RV#HHIaOl`t@wYdQUKQrWS9b}EnqNb8}Z-s=9LEF5zQB%A6K1&AR2 z%@^<%u35gXg)J@WxEl8@-qEtRBbI^Hb>ouba+`U*$P0tViZXfHj}SS1+B#_h|Kw_( zF6CI+%sTayan=v-!<2L&`gOV^HsmsZwoaRf@)PR>zOx=}qL9V~*!c|BJU-ZUs&y%8 zk64PB>oROsY?{ES3kkxpXh%23y_4XaniSA`8IeO|`CC8`-oqT3n%?egb+)@(-C;%B zt7wBtZK%}lDz*K}Q>gj2Kd4lPN_9`E9*LxI@xD?$=2h_DTwGJ>FLbRS{W=HS9g(h; zq&rd$`4R=nu#%0sitUG`fc7hzW;b*;eB{ff`RRt`k2O=K+42~Vuxo<QG#Tc}utu?X zDQw4z@A1eDT*h#I<NUbJvEp$v{0!v@6f>sDBP;T3(~2VIUE7FUZkoG<;U6N!11ran z;N}L9ugKp5m7fJLa+R-*FN~o)zbDTR<b@*;pC5@Ncm5E$#9%1T+>>W+zk2uOD|_-s z`?5NeXYa|g19|R95ab$KKZm4AM-rUVi}9+*<_ZPLTzw48r1{3v1ft2hiV!4gon+IN zegCIzWNaCxfD;Ts-f|q%4%^9#lZu?4L7BVJMvpCm?KEuuJP_=Q{i3?Pw6*lTbNiL= zyg^YLO4>lujyVqQ=7mN26MaegIkyNu^f>RN{~s8%lv#FfL`mV82G;4lcmaD6$)pak uvYNKS+iVFG_;juTITR_Sf0D{yM0=Dg)7q`qw^z4T9}!?j3zSxq2>$}iQddv_ literal 0 HcmV?d00001 diff --git a/commands/__pycache__/tickets.cpython-313.pyc b/commands/__pycache__/tickets.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a3826356c755d61dff3c9c6b68ea58f4b693f9b4 GIT binary patch literal 14787 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 Mk0S<}-cCCGUu#}0<p2Nx literal 0 HcmV?d00001 diff --git a/commands/help.py b/commands/help.py index 24f0ca6..66b60b8 100644 --- a/commands/help.py +++ b/commands/help.py @@ -15,6 +15,7 @@ class Help(commands.Cog): em = discord.Embed(title="Help Command", description="These are all the commands", color=interaction.user.color) em.add_field(name="Levels", value="Setup - Admins Only\nEdit - Admins Only\nRank - Show your rank\nGive - Admins Only\nRole - Admins Only") em.add_field(name="Tickets", value="Setup - Admins Only\nCreate - Create a ticket\nClose - Close your ticket\nDelete - Admins Only") + em.add_field(name="Quiz", value="Quiz - Test your knowledge\nLeaderboard - Check who has the highest score") em.add_field(name="Others", value="Ping - Show the latency of the bot") await interaction.response.send_message(embed=em) diff --git a/commands/quiz.py b/commands/quiz.py new file mode 100644 index 0000000..691119d --- /dev/null +++ b/commands/quiz.py @@ -0,0 +1,49 @@ +import discord +from discord import app_commands +from discord.ext import commands +from lib.quiz_helper import * + +class Select(discord.ui.Select): + def __init__(self): + options = [ + discord.SelectOption(label="History", emoji="1️⃣", description="Do you know your past?"), + discord.SelectOption(label="Geography", emoji="2️⃣", description="Do you know your geography?"), + discord.SelectOption(label="Pop Culture", emoji="3️⃣", description="What about pop culture?"), + discord.SelectOption(label="Math", emoji="4️⃣", description="Do you know your math?"), + discord.SelectOption(label="Riddles", emoji="5️⃣", description="Can you answer these riddles?") + ] + super().__init__(custom_id="quizSelect", placeholder="Please select only one set of questions", max_values=1, min_values=1, options=options) + + async def callback(self, interaction: discord.Interaction): + if self.values[0] == "History": + questions = load_history_questions() + for i in range(len(questions)): + em = discord.Embed(title=f"Question {i + 1}", description=questions[i]) + await interaction.response.send_message(embed=em, view=load_history_view(i, questions)) + +class SelectView(discord.ui.View): + def __init__(self): + super().__init__(timeout=None) + self.add_item(Select()) + +class Quiz(commands.Cog): + def __init__(self, bot): + self.bot = bot + + @commands.Cog.listener() + async def on_ready(self): + print("Quiz online") + + quiz = app_commands.Group(name="quiz", description="All the commands related to quiz") + + @quiz.command(name="leaderboard", description="See who has the highest amount of questions correct") + async def leaderboard(self, interaction: discord.Interaction): + await interaction.response.send_message(f"This command is not finished") + + @app_commands.command(name="quiz", description="Test your knowledge") + async def quiz(self, interaction: discord.Interaction): + em = discord.Embed(title="Quiz", description="Are you ready to test your knowledge? Select a theme from the dropdown below", color=interaction.user.color) + await interaction.response.send_message(embed=em, view=SelectView()) + +async def setup(bot): + await bot.add_cog(Quiz(bot)) \ No newline at end of file diff --git a/lib/__pycache__/leaderboard_helper.cpython-313.pyc b/lib/__pycache__/leaderboard_helper.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b490aa26b6b2878c9f5f1c27bb442d838d5f38f0 GIT binary patch literal 1173 zcmbVLPfrs;6rb7McDpRJ6-W?+rjq(+Js|$O7$F!?4n#0rn@GB*Decm3vfZt-TTIcA z_Cz?rK@#+0<IQj2(T`9piOs-)L@wNn{Q|z}wxyVO@g?)-y*D%O_vZa(ngauU2;>#{ zkd1Q){bWu@d~Kuo9*kY2A{8$n;?0;~4aJ1c*0XsWX*lLT^E=i!Qn?4%^ExvTG$Gc) z@9gqs;@AAK;Q1KyNI>N;AtI>)=)Npge5WkDNTs}OW$k2<nCUhIiz8MB52N`R)GkVZ z_9Vule~F6YXcBiyvv3@zM^W#YPCI(e#o<yaKheEd1Z9OD6tQP(+w@RWpXyh+Nep<< zbSCViA}&%sX=F~>9Tbi*KpITt?V{x-(>5V`+I_JuL=7uVSZYO}LfSS>8dx=~OwzV= z+GkjfPF&9}7BVSUXSTvou?P#0oC?fv7;Gd$7iJ%7apr4~$gs3IeN8v*f=;yOB{ye7 zz;FOLqdi`Ab&^lHIn6XyG*eGybh2WnNG6%nP1rwCDA7??n4Z_6+MMCIHYs(gCLw?e zz;Kp8mC=zL+Me2)+PhXAsf{Xi`Br)ESd=U8jspGLp{-C={Ca2q;?zN4x)B;W5dxb_ zm8G5d-h6F1T3xG6&V0LCyFFLC{^US-+K@v{NQutz&Yoq9_m^P&2k+4TESKo=9mguq zobKD;;#?HEzu01kuvU6}@PyrwNT4WhSgyj8eij&D0kO@X!zznJB7{9~I+WGB+$K|& z^9Hye!>}?4!?_FU-`#42!Y9ECJJH(6js3x!^`KIoZ^(n?MG}T%icG~qsr4@?XFF7W z#=gj`X#hRc52(7eM*V5e7hV^Qb;@N{sN6%XcN<1stD-NcmDsC0@F;I*il#nIuE08b zu+9vqUp&V65CspBbS#B`NMqlnvAx)*<&VqNxAn{S>eBtPzu}WN6O}}nYlzb3MrETc P{1yT@+#DA1Pz&J?xv=|l literal 0 HcmV?d00001 diff --git a/lib/__pycache__/quiz_helper.cpython-313.pyc b/lib/__pycache__/quiz_helper.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ed2362b28134754d168b3dfd5ea0c4e92193bb33 GIT binary patch literal 7032 zcmbtZZ){UnmVeKG5+`x~*^q=JkXxV>2b0+34}=0~AcR0j+S+lUN(T4EzOi5P{GPe* znc&yy2&vL2NL_VWEdsP7k<nBdD(we$zU+Qk?MkyVn*Fr)hHauZXvJ#w3*RVoww-T# z&b6OSs9Wu7uH^gf|9kGa=lssO$IqLa8wE%wR_~_%(Ju&p#EPBV<-+s7g~BZ%Dn!K@ zft9`@6QS;yaU69JA?oZFm^12v+!b|0?(P!y3emc5AzHsEM7;Kb)o-MwTDD6g&Qgha z_-qf%Zup+rK6_5}TbbRM5(AA-uwyPDT4H~qIz|v2P{D1U<NmjVK{(ReqAJ9M{X)Po z7icw4TuM`wB;_PA(v;{lp{Yr-sxbv}i4on9m_ZIMNjgmuO(l||$WXc_(^Wk%Ztnfz z*;GxAo5wGu<wTlj%eaG1VObqkqU8pn=dzS#wN=V=BCDK=gjU*p-0Z)U*7yV@PSK<! zWjJq6V@8_HXpBlYCp<PhGH#wM?UT@Qs=@LkO&KLANmhYeSxwR`5JS}jB}>#;rEq4P zMI<<Fcx)szZtmtsLE><)Wtr&)c`K*N335qd<L2NtN~lc<j*V)-4uiy085qRL896#` zhQ5CSj5L6%s394YA38iXIy!Eix|Eg-lF%|s@X1gkt>GQ$B!|3T%5%Ejft^$-V{^)` z!c~o%oqWE1f-uk@p}_fZ^H_;9u&kj_lBCNNHcpahiAlg{_#~N>l*)`<mGb-$AtdR@ zL^jK`>v9GrD8N%~m1HC}PqI|Y;!-FJaN<i`UVu;J2$u<<Urtg@(NcMSg6W)^lHg7_ zbHZce=0Rjml3t^VmW3sdi<Jp*zh|^e23W6W?A6jz7VfXK*}N>NlA3`Vj9$%2jE;XH zfZR7+%~9Qe8_;zTM4ecZXO1t%bdah=5GPq(oGkCg7T?MPYoS5b6B<h{PAnUg!2#2Y zioCRVH7A?#G*v(-2eNsq1BEW0mUTm8`FLdy=7BvBF7$TDZV1mDZS8e8&OhBRcy|_D zJDx+MkU%=@gk!lL{tFZ;dMI9Q!w%IEb;KO6LrEGEgqS1p;!J48v`_{M=od!H{Vf1Q zLk_zZb@8>FF=ws$(aJd06?5(X3wHtZa3gxug+P0T#>~1fS0}Ua2#G}}g0W~cV(u9t z^Pq#OA<HD1Hu5Xlwcw1LA?KCDQIH4o{b5oT-{5&Q35cM}Qt+*`tjO6cXssT+0JkHl z*ohs|3S0tIXY+9R5(`F|d{I(YBy#W!%`2K32%guOM3vx0Nz;R8q|B0r^P+hsOJ@5B zIWjs-PM;x%$&ukO6iojpnUhy!Ln1S2mebRTG`(i}j*^RcB!-+O7qqmhYpUr#M$Y9Z zW3r-1hy}|abEbccOlzPK5e@W#oXuoqXzUG#$mx=jfe?dwXO`gz<TR6$DQfz{VRAGC z1RNV78CVQt)%1psRD|7t+7OwMm_lYHcHQ)chXLq}w5+Crvy!e$2}Uh3Xo=(r-v1X4 z%dKY>*|40t!2)i}V@s!1FR41>sa01hSWTL$<m2T^TUOI`c}bz=23<$FA(&V_l&l@w zWWKx>>wvCq_~|NST;f~nZkz*&Z`oOF-g9GWtG;n<`J)fFI(ly_pDLdx?jQVRW<CC3 zqOfmtqvPm5h{cZMYfW1{2R3_x#h&2(=tfVt;OW|G?JIct9=GoN<i|IE{BwQ%*x!73 zN4x)ap?7ejHT0mp*g91346z2-vbH*1ho0}M)Bj6_951Ml^9NPPWvg0Ag-R;WhAJ=| z3W6RSgDgC3?&Qia3YFnuY{BLuA+rOn8ZJ``&I8)TW`gGsb=17sKSZK=HHC5%NmCkx zL6VvRL68sYX}ZF7=7I(-G1cq_8J5xvtQttT3ZNaF$ieMP3dne9gbam10J)6wLa-w9 z;o(u}2!@Z8`om$YnxRp0k!mW~{?j16X_a0BozrPHjj{`v8Jv|@(vqy4)7X;4^<(%b zR|_&VKxU{4fSeCbuF9#jK_&;tSy`tlm<Y;(5wJU8RzSn9gOrDlkqMc>qD)=^y`IY@ z6biPYtV_XZFv5oo?J#~(8^BJPp)qngZ%P0j;3<^UEBK~iyr6BtNDjofs(dH6Dc`gN z#z0N!!Kyx90vpB@O?#o~95sx*zLaAra}=~Q3|u=*kV$3z42DODp#fVf4N!yza2#w6 zhT-Illm#470H1=hnkumb+Kb?nq$l8OhCr*|QKY1t0UlhWD)4nXm!}w*QHDO!Sv5r! z-TV<~J_^Yccw4rcbPjwS16WpSDGAa9xE_fFWrI_iW-MXXtYjq8T)=cW1v{ne>9bNw zm4HwN{v5ietQoT=%+NCoxEUHUt3Hv|<OBueC>6@cQLePv2oo<4`(flL4`RKr@(BF& zX~=3Jhp+2)@YCSu`_|LHJiOlbKrHkf+3*cLm?-*2Z_I3U?%nJ>SnND_-@nm$7>w&y zQ%}LwQ^EvTu#(W##q|6FWLE$c76tU#nIkGPXG|CtqmFLjeGho-&P8`EAAQ(?9{u|+ zRv&dUPfR!|vIa18b(Vh{AnH`13FFBu?2@P$WvJA_kDK^oK*=fbmaqT~r8M6V6Mh8H zf?U8vgv)J;O|Nj7D3x^<5bAh}i8k8A1O;J<r>F=u+=-`!R=ZRktvUw<)dfHI0$wRk zF(JZVJ$AkHU8uY&M#{7tEDw-gMK`0?9KSHV100sRm^-p_`)XK=)!8%?VHONV6P)zT zp6?l3bN%Z4n6tcB{rAkTua33%in%K%h=R+6CX1&?mtCrU_X;t$y@KkAxoVwf0Sz8c z5ftK=60G2fI>svZL}0~8-%Ep_8uQru;D`!^!1Gz4^70!>n>{Bb1e|jWF9SSUw<0Z3 zCD0CL9-l~-CmxsK;Si5=Rb?my+$b|Ylt6Pe#y~E)wpop`F01G+C8*^>U;<YFJ?NxW z#{gxu4BN#gB}+cA<&AQoelv?6G>oAc?HaY}HD1>Pjg||fe))xsk)bSzYcw#bXTj|T z&~SpUP+HhyH(CwxctQd1B_7vN1i71m*$wV%uzk2hZw>t#uunS&BlQ1-?Asf{BTw_q z`l6@np{IMRi+tR?wQKLkEsr|-?;qRf7+!OI+_cr%1t0Gt-+}e(8@|w5{bS#bwfe0c z9cvB$-L&&($=fTRu6#bc*>tejba1P)=k^DG{lU+iTWz~G+eopEtoy%gd-a)9=-T(R zPH67f^!66Ly?5sCE!<sr=ned_WB1zBmUm~l`JFGl`@eDuoqPVLPH63V)Vcfiho618 z{_aNS;M(+-*Z;}f&AFc+-Rv3s_nyHA>0;0LL+=~a$(J8`4}4P(^Va02jY3!7UwJv6 zSxvGEMoLQHH6$tk0f$G&>?8O+KLJp2Mc4<51ptG7AW!o`<i*kD)&*C&Abdx`-v#x+ zHF@ITC?Yt*Iv%^V`t?_U%NFE{5DyE&JOE`asE9fagOSl4Rq$Fsqr+27tQ8Q6R20D; z2as7lBLK;X+SEn4(^i`U$1lU13RLnh+Zm{>KxLJ(T7VI)xQOQ=Y?Ow(x+dOo&bhsC zUqE36kgBTym!P7;`)>hNk|!8h0Uo=p%8BDZizFf6YmJIIN-pd|1+XG}s%zLK2v)gc z@an|9TZAD;%o(j4bAVebMu<J8`i-ELzLa9F1uzn&6m!(3#g@8g{g~ss{74D^_uZl> znKeupynq{qoVJYA+QTEv{S*Ag;MZ`}xeTGQxos~AxFTT)e$P)qc1kQMR!o=%P}SP! z9g)%rx8?Xyzb4#rgN*|lh&C=I@TElvz;QGVI4#FO$Z}tk6nHrzlXcw3Mm?+HL<*uA z*R$-DHCPM#65z{$$GtLeLeZeCpBku4Si!{*eZPGIzEr_C@plXN&)%85H*<I9OaE)X zUih<)O8-&!Zn5OzAuO2f6Z}C)z(Bx*lqLrT%!aqi@e&e%hom7xWXNhtQa!<B4*J+i zGfOmSxgff=YWBUW<sd2sL78+pV1tp80fNmb%^+qw#M1by6CzmL61@`eGZYcd5q1Dd zXdv=d9p{S9_G8N~S%qgU1api^kfl7`azWgSSq?eLLO9Y3kBekHL*XHuq9t$DsZh0K z2Lm|5eU{VfS=JOqTg_$BXo1CR-^O7)40yYECk*f1^20?KmB<d5*d)DfHE(OQ95lmS z-S^OPl^)3+`;KZ`FS}QUE%ft%Vf?xty=;RXwfY|VCLYZH{lc#oHhdGCtrNx8iLJIB zx4oZv*TrJnE4RFl+5-0vZT258_8;HuKUwTQ`LONOw~t%>pL}rhgFE4yKUv@LtDax< zY_tYz4Sd|PYqMo<v1RXO%V4o(un;=4(K5N|nJjoF!Nm3LyO+6}xi1y>3>G{+TTOdD z_pi_Y>dG&!Y`ikO(KNi(OYY6xohuwVRqP#Kn|;*Yb$j<`yVvuD@Z>*VErzEHq4R}T zFBC4*V*B#i=`G*xP2Yi{@4%+-P|<hj!QO|jUo6bNS6Eu!T*?-gvKy~oE%*)<d~DOp zieC13`|!fR?C+ERru?h&`zwV7r4Y<)_|#3WTJ)-4`GtnF;#Vy~vo8LZSN*eo6j=Jv z8UIwT_?r%Ks>Ai0&eQc!`RyKYs>}7;zA%)3*CtMNyMEVRhvhC2^KQ)H;z6$kE_&R1 zsd_Zv<A8$&p;a1>TaEE}MoZ=(L=v~WaS#qkDfhI-<2*DBuVboe;EN$NGA@2i=c~4x zU4&+9CpbM2<CPO}2nsQIDF@+RSh2b65+$gj#N%IxEDVEr)bfpzQ-pxcFq_4Wy^wwT zQ{hjJUGBc8qdvDL-hZtm3Ev1<d&YC_Kk!Kj7+*=YSMVGy_76Xbn43R&>fp)aV$(4E z$%l~De&WnS&r44ncw*rb2mdq~6T#6HB4~(SN>!iZvd^{-HhLqB;(rpNRd2`{s^tuz z0}s!6Y<Z+)G7fR`3_m1vp$c0ql_x1z+!7jaej*Hlw!Y|Rc7F#6DqiMKV6={C^@5kV zz5@bOMbCjPkN1=2o6Qe90`~_tIwt?abGF26JYS%mp@Yia#Oy81-o}heMHEZODHen5 z#S2F6auy?pb$rCZ1%KmkxTnPD0_LR+a9E&;OBciYgJ`t8Gyt&^_#0$NgZN50P|c&! zrMCcDean%Pt-6v&&zWVpAkezXH)Ke3X>}g!^PDIN`Y8q;g#b7u=qS2RouVlIL1_7d z(ELc)|IFnVcRuUiB@RCu?GSsv4h@K!c;~fy{dfB}yAKt+4}C3Q%h&ITPH{@SQ-81V QZsWbyyRCl`u+De;Uq-fc-T(jq literal 0 HcmV?d00001 diff --git a/lib/leaderboard_helper.py b/lib/leaderboard_helper.py new file mode 100644 index 0000000..931de77 --- /dev/null +++ b/lib/leaderboard_helper.py @@ -0,0 +1,25 @@ +import pymongo +import os + +client = pymongo.MongoClient(os.getenv('mongo_url')) +db = client.quiz +coll = db.leaderboard + +def increment_history_correct(user_id): + user = coll.find_one({"_id": user_id}) + + if user is None: + coll.insert_one({"_id": user_id, "amount_correct": 1}) + return True + + coll.update_one({"_id": user_id}, {"$inc": {"amount_correct": 1}}) + return True + +def get_correct_answers(user_id): + user = coll.find_one({"_id": user_id}) + + if user is None: + return 0 + + correct = int(user["amount_correct"]) + return correct \ No newline at end of file diff --git a/lib/quiz_helper.py b/lib/quiz_helper.py new file mode 100644 index 0000000..63464cd --- /dev/null +++ b/lib/quiz_helper.py @@ -0,0 +1,128 @@ +import discord +import random +from lib.leaderboard_helper import * + +def load_history_questions(): + questions = [ + "When did the second world war start (based on allied views)?", + "When did the second world war end?", + "Which of these was one of the superpowers in the cold war?", + "Who was the loader of North Korea in 1945?", + "Which country here gained independence between 1945 and 1950?", + "When was the first Punic War?", + "Who was the leader of the Soviet Union in 1957?", + "Who was the leader of the United States in 1966?", + "What combat method was used by the Vietnam in the Vietnam war?", + "What was the 1st Reich?", + "Which battle defeated Harald Hardrada of Norway in 1066?", + "Approximately how many people died in World War 2?", + "What ideology was Hungary in 1919?", + "Who developed the ideology of Communism?", + "What happened in Tiananmen Square?" + ] + + return questions + +def load_history_answers(question): + answers = [ + '0 1939', + '1 1945', + '2 USA,USSR', + '3 Terentii Shtykov,Kim Il-Sung', + '4 Vietnam,Indonesia,Philippines,Jordan,India,Pakistan,Myanmar,SriLanka (Ceylon),Israel,Laos,Cambodia,Syria', + '5 264 BC - 241 BC', + '6 Nikita Khrushchev', + '7 Lyndon B Johnson', + '8 Guerrilla Warfare', + '9 Holy Roman Empire', + '10 Battle of Stamford Bridge', + '11 70 - 85 million', + '12 Communist', + '13 Karl Marx', + '14 Nothing,Massacre' + ] + + answer = answers[question] + if ',' in answer: + only_answer = answer.split(f"{str(question)} ")[1] + possible_answers = only_answer.split(',') + return possible_answers + else: + return answer.split(f"{str(question)} ")[1] + +def load_history_choices(question): + choices = [ + '0 1940,1938,1914', + '1 1946,1944,1918,1920', + '2 China,The UK,Germany', + '3 Syngman Rhee,Chiang Kai-shek,Kim Jong Un', + '4 Bahrain,Canada,Australia', + '5 300 BC - 200 BC,264 BC - 146 BC,120 BC -116 BC', + '6 Leonid Brezhnev,Joseph Stalin,Mikhail Gorbachev', + '7 John F. Kennedy,Dwight D. Eisenhower,Richard Nixon', + '8 Air Strikes,Nuclear Warfare,Hand-to-Hand Combat', + '9 Byzantine Empire,Ottoman Empire,Russian Empire', + '10 Battle of Hastings,Battle of Waterloo,Battle of Gettysburg', + '11 100 - 120 million,15 to 30 million,30 to 45 million', + '12 Capitalist,Monarchist,Fascist', + '13 Vladimir Lenin,Joseph Stalin,Friedrich Engels', + '14 The Fall of the Great Wall of China,A Soccer/Football Match,The signing of the Magna Carta' + ] + + choice = choices[question] + only_choice = choice.split(f"{str(question)} ")[1] + question_choices = only_choice.split(',') + return question_choices + +class load_history_select(discord.ui.Select): + def __init__(self, question, questions): + super().__init__() + self.question = question + self.questions = questions + self.answer = load_history_answers(question) + self.correct = 0 + choices = load_history_choices(question) + + options = [] + responses = [] + + if isinstance(self.answer, list): + for ans in self.answer: + responses.append(ans) + else: + responses.append(self.answer) + + for choice in choices: + responses.append(choice) + + while responses: + response = random.choice(responses) + options.append(discord.SelectOption(label=response)) + responses.remove(response) + + self.options = options + + async def callback(self, interaction: discord.Interaction): + if isinstance(self.answer, list): + if any(value in self.answer for value in self.values): + self.correct += 1 + increment_history_correct(interaction.user.id) + else: + if self.values[0] == self.answer: + increment_history_correct(interaction.user.id) + + await interaction.response.send_message("Answer recorded..") + + # Send the next question if available + next_question_index = self.question + 1 + if next_question_index < len(self.questions): + next_question = self.questions[next_question_index] + em = discord.Embed(title=f"Question {next_question_index + 1}", description=next_question) + await interaction.followup.send(embed=em, view=load_history_view(next_question_index, self.questions)) + else: + await interaction.followup.send(f"You finished the quiz. You got {self.correct} answers correct!") + +class load_history_view(discord.ui.View): + def __init__(self, question_index, questions): + super().__init__(timeout=None) + self.add_item(load_history_select(question_index, questions)) \ No newline at end of file