diff --git a/.gitignore b/.gitignore index 894a44c..a1071e7 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,6 @@ venv.bak/ # mypy .mypy_cache/ + +# muh token is stored as plain text ehehehehe +token.txt diff --git a/bot.py b/bot.py new file mode 100644 index 0000000..d535001 --- /dev/null +++ b/bot.py @@ -0,0 +1,73 @@ +import discord +from discord.ext import commands +from time import sleep + +bot = commands.Bot(command_prefix='>>') + +@bot.event +async def on_ready(): + print("Bot started.") + print("--------------------------") + +@bot.command() +async def ping(ctx): + """ command: ping + Use with caution, you might stir up a revolution. + """ + await ctx.send("What do you think I am, some sort of toy? I refuse to bend to the will of the bourgeoisie!") + +@bot.command() +async def anthem(ctx): + """ + command: anthem + some people just need a reference, ya know? + """ + + await ctx.send( + "Soyuz nyerushimyiy ryespublik svobodnyikh\n" + "Splotila navyeki Vyelikaya Rus’.\n" + "Da zdravstvuyet sozdannyiy volyey narodov\n" + "Yedinyiy, moguchiy Sovyetskiy Soyuz!\n" + ) + +@bot.command() +async def mute(ctx, target_user:str): + """ + command: soft_mute + The actual good stuff. + If someone's spamming or being annoying, just mute 'em. Requires 3 votes by default. + """ + + votey_message = await ctx.send( + "=== NEW MUTE VOTE ===\n" + "Mute {}?".format(str(target_user))) + + await votey_message.add_reaction('✅') + await votey_message.add_reaction('❌') + + sleep(10) + + finished_votey = await votey_message.channel.fetch_message(votey_message.id) + print(finished_votey.reactions) + all_in_favor = 0 + not_in_favor = 0 + for reaction in finished_votey.reactions: + if str(reaction.emoji) == '✅': + all_in_favor += reaction.count-1 + elif str(reaction.emoji) == '✅': + not_in_favor += reaction.count-1 + else: + pass + + await ctx.send( + "**=== VOTE RESULTS ===**\n" + "✅ - {0}\n" + "❌ - {1}\n".format(all_in_favor, not_in_favor)) + + if all_in_favor > 2 and all_in_favor - not_in_favor > 0: + await ctx.send("{} **has** been muted.".format(target_user)) + else: + await ctx.send("{} **has not** been muted.".format(target_user)) + print("all in favor: {}".format(all_in_favor)) + +bot.run(open("token.txt").read().strip())