From 15d272b46c04b41c27be08b51a7592a0d880dd07 Mon Sep 17 00:00:00 2001 From: turtlebasket Date: Fri, 28 Jun 2019 23:25:21 -0700 Subject: [PATCH] Fix mute/kick commands, add async locks, update README --- README.md | 15 ++-- bot.py | 200 ++++++++++++++++++++++++++++++++++++++++++-------- config.json | 11 +++ mute_demo.png | Bin 23887 -> 26633 bytes 4 files changed, 190 insertions(+), 36 deletions(-) create mode 100644 config.json diff --git a/README.md b/README.md index 4ad31b1..f9287dc 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,24 @@ Karl Marx 2 =========== -Karl Marx 2 takes a somewhat different spin on moderation for smaller servers (~10-35 users), handing the controls back to the users themselves. Instead of a single moderator issuing a command to mute, kick or banish a given user, the choice is left up to anyone and everyone present in the channel. Is the user at hand being annoying or spammy enough to be muted? Are they toxic enough to be kicked/banned? We'll take a vote! +Karl Marx 2 takes a somewhat different spin on moderation for smaller servers (~10-35 users), handing the controls back to the users themselves. Instead of a single moderator issuing a command to mute, kick or even *ban* a given user, the choice is left up to anyone and everyone present in the channel. Is the user at hand being annoying or spammy enough to be muted? Are they toxic enough to be kicked/banned? Let's take a vote! -
+
-I didn't have as much time as I would have liked to work on this, but I after Hack Week I intend to progressively flesh out its functionality beyond just moderation and further improve it. +I didn't have as much time as I would have liked to work on this, but even after Hack Week, I intend to progressively flesh out its functionality beyond just moderation and further improve it. Made with love. [Enjoy!](https://discordapp.com/oauth2/authorize?client_id=592852914553487370&permissions=8&scope=bot) :) -**IMPORTANT:** json storage is still under development. - Installation ------------ 1. Clone the repo wherever you want and make sure you have python3 installed with the discord.py package. (If you don't then just `pip3 install discord.py` and you should be good to go!) -2. `python3 bot.py` +2. Grab the token of your frontend bot application and paste into `/token.txt`. +3. `python3 bot.py` Commands -------- -- `>>mute` - Hold a 30-second vote to mute a user for 10 minutes. You can set different values in `config.json`. +- `>>manual` - Get ye some help +- `>>mute` - Hold a 30-second vote to mute a user for 10 minutes (minimum voters: 4, over 50% majority required). You can set different requirements in `config.json`. +- `>>kick` - Kick a user. The vote is up for 5 minutes, and requires that a minimum of 6 users and >50% approve. - `>>exile` - Euphamism for banning a user, I guess. By default, the vote lasts 3 hours, and requires that there be at least 10 votes and a 50% majority. Like the `>>mute` command, you can also tweak settings in `config.json`. - `>>anthem` - First verse of the Soviet National Anthem. Might need that at some point to show your communist pride. - `>>ping` - Fun leftovers from when I was first setting up the bot. :P diff --git a/bot.py b/bot.py index 8424cd1..54ae479 100644 --- a/bot.py +++ b/bot.py @@ -8,21 +8,59 @@ import json import discord from discord.ext import commands -MUTE_VOTE_TIME = 10 -MUTE_VOTER_MIN = 2 -MUTE_TIME = 600 # 10 mins -BAN_VOTE_TIME = 8 -BAN_VOTER_MIN = 4 +# I know, config parsing is ugly and bad, I'll get around to refactoring later TwT + +with open('config.json', 'r') as json_file: + config = json.load(json_file) + +MUTE_VOTE_TIME = config["MUTE_VOTE_TIME"] +MIN_MUTE_VOTERS = config["MIN_MUTE_VOTERS"] # should be 3 +MUTE_TIME = config["MUTE_TIME"] # 10 mins + +KICK_VOTE_TIME = config["KICK_VOTE_TIME"] +MIN_KICK_VOTERS = config["MIN_KICK_VOTERS"] + +BAN_VOTE_TIME = config["BAN_VOTE_TIME"] +MIN_BAN_VOTERS = config["MIN_BAN_VOTERS"] + bot = commands.Bot(command_prefix='>>') +# To store users who are currently being voted on +muted_users = [] +muting_users = [] +kicking_users = [] +banning_users = [] + @bot.event async def on_ready(): print("Bot started.") print("--------------------------") + +@bot.command() +async def manual(ctx): + embed = discord.Embed(title="How 2 Comrade") + embed.add_field( + name=">>mute", + value="Hold a 30-second vote to mute a user for 10 minutes (minimum voters: 4, over 50% majority required). You can set different requirements in `config.json`." + ) + + embed.add_field( + name=">>kick", + value="Kick user. The vote is up for 5 minutes, and requires that a minimum of 6 users and >50% approve." + ) + + embed.add_field( + name=">>exile", + value="Ban user. By default, the vote lasts 3 hours, and requires that there be at least 10 votes and a 50% majority. Like the `>>mute`/`>>kick` commands, you can also tweak settings in `config.json`." + ) + + await ctx.send(embed=embed) + @bot.command() async def ping(ctx): - """ command: ping + """ + 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!") @@ -38,8 +76,9 @@ async def anthem(ctx): "Da zdravstvuyet sozdannyiy volyey narodov\n" "Yedinyiy, moguchiy Sovyetskiy Soyuz!\n") -# not a command, just some functionality that's used across commands +# not commands, just some functionality that's used across commands async def take_vote(ctx, question:str, wait_time): + """ take_vote(ctx, question:str) - Collects votes ctx: pass from command function @@ -49,7 +88,13 @@ async def take_vote(ctx, question:str, wait_time): It's up to the context/use case to decide how these should be used. """ - votey_message = await ctx.send("**=== NEW VOTE ===**\n{}".format(question)) + votey_message = await ctx.send( + embed=discord.Embed( + type="rich", + title="NEW VOTE", + description="{}\n\n✅ - Yes\n\n❌ - No".format(question) + ) + ) await votey_message.add_reaction('✅') await votey_message.add_reaction('❌') @@ -59,63 +104,160 @@ async def take_vote(ctx, question:str, wait_time): finished_votey = await votey_message.channel.fetch_message(votey_message.id) all_in_favor = 0 not_in_favor = 0 - for reaction in finished_votey.reactions: if str(reaction.emoji) == '✅': all_in_favor += reaction.count-1 # don't include bot's reaction - elif str(reaction.emoji) == '✅': + if 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)) + await ctx.send(embed=discord.Embed(type='rich', title="VOTE RESULTS", description="✅ - {0}\n\n❌ - {1}\n".format(all_in_favor, not_in_favor))) return [all_in_favor, not_in_favor] @bot.command() async def mute(ctx, target_user:discord.User): + if target_user in muting_users: + await ctx.send("There is already a mute vote on `{}`!".format(target_user)) + return + elif target_user in muted_users: + await ctx.send("`{}` is already muted!".format(target_user)) + return + + muting_users.append(target_user) + results = await take_vote(ctx, "Mute `{}`?".format(target_user), MUTE_VOTE_TIME) all_in_favor = results[0] not_in_favor = results[1] - if all_in_favor > 0 and all_in_favor - not_in_favor > 0: - # Take action to mute user + muting_users.remove(target_user) + + if all_in_favor >= MIN_MUTE_VOTERS and all_in_favor - not_in_favor > 0: + # Add to muted_users + muted_users.append(target_user) # add temp. role for mute muted_role = await ctx.guild.create_role(name="Muted") + # edit role position to take precedence over other roles await muted_role.edit(position=ctx.guild.get_member(target_user.id).top_role.position+1) + # change channel permissions for new role for channel in ctx.guild.channels: - await channel.set_permissions(muted_role, read_messages=True, send_messages=False, add_reactions=False, connect=False) + if channel is discord.TextChannel and target_user in channel.members: + await channel.set_permissions(muted_role, read_messages=True, send_messages=False, add_reactions=False) + elif channel is discord.VoiceChannel: + await channel.set_permissions(muted_role, connect=False) + + # Give role to member await ctx.guild.get_member(target_user.id).add_roles(muted_role) - await ctx.send("**{0}, the majority has ruled that you should be muted.** See ya in {1} minutes!".format(target_user, int(MUTE_TIME/60))) + + endmessage = "**{0}, the majority has ruled that you should be muted.** See ya in {1} minutes!".format(target_user, int(MUTE_TIME/60)) + + await ctx.send( + embed=discord.Embed( + type='rich', + title="MUTE VOTE VERDICT", + description=endmessage + ) + ) + await asyncio.sleep(MUTE_TIME) + await muted_role.delete() + # Remove from muted_users + muted_users.remove(target_user) + + return + + elif all_in_favor <= not_in_favor: + endmessage = "A >50% vote was not reached." + + elif all_in_favor < MIN_MUTE_VOTERS: + endmessage = "Not enough users voted to mute `{0}` (min: {1})".format(target_user, MIN_MUTE_VOTERS) + else: - await ctx.send("**{} has not been muted.**".format(target_user)) + endmessage = "**`{}` has not been muted.**".format(target_user) + + await ctx.send( + embed=discord.Embed( + type='rich', + title="MUTE VOTE VERDICT", + description=endmessage + ) + ) @bot.command() -async def roletest(ctx): - await ctx.send("`{}`".format(ctx.guild.roles)) +async def kick(ctx, target_user:discord.User): + + if target_user in kicking_users: + await ctx.send("There is already a kick vote on `{}`!".format(target_user)) + return + + # add to kicking_users + kicking_users.append(target_user) + + results = await take_vote(ctx, "Kick `{}`?".format(target_user), KICK_VOTE_TIME) + all_in_favor = results[0] + not_in_favor = results[1] + + if all_in_favor > not_in_favor and all_in_favor >= MIN_KICK_VOTERS: # change to 10 later + await ctx.guild.ban(target_user) + endmessage = "`{}` was kicked.".format(target_user.name) + + elif all_in_favor <= not_in_favor: + endmessage = "The majority (>50%) did not decide on kicking `{}`.".format(target_user.name) + + elif all_in_favor < MIN_KICK_VOTERS: + endmessage = "Not enough users voted to kick `{0}` (min: {1}).".format(target_user.name, MIN_KICK_VOTERS) + + else: + endmessage = "`{}` was not kicked.".format(target_user.name) + + kicking_users.remove(target_user) + + await ctx.send( + embed=discord.Embed( + type="rich", + title="KICK VOTE VERDICT", + description=endmessage + ) + ) + @bot.command() async def exile(ctx, target_user:discord.User): + + if target_user in banning_users: + await ctx.send("There is already a ban vote on `{}`!".format(target_user)) + return + + # add to banning_users + banning_users.append(target_user) + results = await take_vote(ctx, "Ban `{}`?".format(target_user), BAN_VOTE_TIME) all_in_favor = results[0] not_in_favor = results[1] - if all_in_favor > not_in_favor and all_in_favor >= BAN_VOTER_MIN: # change to 10 later + if all_in_favor > not_in_favor and all_in_favor >= MIN_BAN_VOTERS: # change to 10 later await ctx.guild.ban(target_user) - await ctx.send(":crab: :crab: `{}` IS GONE :crab: :crab:".format(target_user.name)) - elif all_in_favor <= all_in_favor: - await ctx.send("The majority (>50%) did not decide on banning `{}`.".format(target_user.name)) - elif all_in_favor < 1: - await ctx.send("Not enough users voted to ban `{}`.".format(target_user.name)) + endmessage = ":crab: :crab: `{}` IS GONE :crab: :crab:".format(target_user.name) + elif all_in_favor <= not_in_favor: + endmessage = "The majority (>50%) did not decide on banning `{}`.".format(target_user.name) + elif all_in_favor < MIN_BAN_VOTERS: + endmessage = "Not enough users voted to ban `{0}` (min: {1}.".format(target_user.name, MIN_BAN_VOTERS) + else: + endmessage = "`{}` was not banned.".format(target_user.name) + + banning_users.remove(target_user) + + await ctx.send( + embed=discord.Embed( + type="rich", + title="BAN VOTE VERDICT", + description=endmessage + ) + ) bot.run(open("token.txt").read().strip()) diff --git a/config.json b/config.json new file mode 100644 index 0000000..f907099 --- /dev/null +++ b/config.json @@ -0,0 +1,11 @@ +{ + "MUTE_VOTE_TIME" : 30, + "MIN_MUTE_VOTERS" : 4, + "MUTE_TIME" : 600, + + "KICK_VOTE_TIME" : 300, + "MIN_KICK_VOTERS" : 6, + + "BAN_VOTE_TIME" : 600, + "MIN_BAN_VOTERS" : 8 +} diff --git a/mute_demo.png b/mute_demo.png index 8b66807ef1d9ee84a246f05e4618c93870a34e7e..abb6fdc2167dfd7879405736a6765412bdee675b 100644 GIT binary patch literal 26633 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 NloZsSmB<QAux`8Y3tonCRBZvKk&Kc_75VOTfV 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%0A#+`K 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