From 11239cf15e3da2b566473d3db4922912aa8e6cbb Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Sat, 30 Sep 2023 11:50:42 +0000 Subject: [PATCH 1/7] Restyled by autopep8 --- bot.py | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/bot.py b/bot.py index 905984d..b7158a3 100644 --- a/bot.py +++ b/bot.py @@ -433,8 +433,7 @@ def ErrorEmbed(error): embed = Embed(title=f":no_entry_sign: Error!", description=error) embed.set_thumbnail( - url= - "https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Ficonsplace.com%2Fwp-content%2Fuploads%2F_icons%2Fff0000%2F256%2Fpng%2Ferror-icon-14-256.png&f=1&nofb=1" + url="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Ficonsplace.com%2Fwp-content%2Fuploads%2F_icons%2Fff0000%2F256%2Fpng%2Ferror-icon-14-256.png&f=1&nofb=1" ) embed.set_footer( @@ -929,8 +928,7 @@ async def warn(ctx, @bot.slash_command( guild_only=True, name="softwarn", - description= - "Sets a silent warning for a user, at 3 warns/strikes they get kicked", + description="Sets a silent warning for a user, at 3 warns/strikes they get kicked", ) @discord.default_permissions(administrator=True, ) async def softwarn(ctx, member: discord.Member, reason=None): @@ -1252,8 +1250,7 @@ async def restart(ctx): @bot.slash_command( guild_only=True, name="setdelay", - description= - "Updates the message delay in a channel with a set of custom time interval", + description="Updates the message delay in a channel with a set of custom time interval", ) @discord.default_permissions(manage_messages=True, ) async def setdelay(ctx, seconds: float, reason: str = ""): @@ -1338,8 +1335,7 @@ async def mute(ctx, member: discord.Member, *, reason=None): @bot.slash_command( guild_only=True, name="unmute", - description= - "Restores the hability to talk or join voice channels to a user", + description="Restores the hability to talk or join voice channels to a user", ) @discord.default_permissions(manage_messages=True, ) async def unmute(ctx, member: discord.Member, *, reason=None): @@ -1405,8 +1401,7 @@ async def lock(ctx, channel: discord.TextChannel = None, reason=None): @bot.slash_command( guild_only=True, name="unlock", - description= - "Removes the blocking in a channel from not being used as a chat.", + description="Removes the blocking in a channel from not being used as a chat.", ) async def unlock(ctx, channel: discord.TextChannel = None, reason=None): await SendMetric("unlock") @@ -1439,8 +1434,7 @@ async def unlock(ctx, channel: discord.TextChannel = None, reason=None): async def suggest(ctx, suggestion: str): await SendMetric("suggest") embed = Embed( - title= - f"The user {filterMember(ctx.author)} has posted a suggestion! :hammer_pick:", + title=f"The user {filterMember(ctx.author)} has posted a suggestion! :hammer_pick:", description=f"{suggestion}", ) embed.set_footer( @@ -1465,8 +1459,7 @@ async def invite(ctx): await SendMetric("invite") embed = Embed( title=await GetTranslatedText(ctx.guild.id, "hammer_invite"), - description= - f"[**🔗{await GetTranslatedText(ctx.guild.id, 'hammer_link')}**](https://discordapp.com/api/oauth2/authorize?client_id=591633652493058068&permissions=8&scope=bot)", + description=f"[**🔗{await GetTranslatedText(ctx.guild.id, 'hammer_link')}**](https://discordapp.com/api/oauth2/authorize?client_id=591633652493058068&permissions=8&scope=bot)", ) embed.set_footer( text=await GetTranslatedText(ctx.guild.id, @@ -1647,9 +1640,9 @@ async def metrics(ctx): for cmd, times in commandDict.items() ]), ) - if(len(uurl) > 2048): + if (len(uurl) > 2048): embed.set_image(url=uurl) - else: + else: embed.add_field("Graph URL :link:", f"[Click Here to visualize](${uurl})") embed.set_footer( text=await GetTranslatedText(ctx.guild.id, From ef3c882d0dfc94e3ecd767fa7e2968edfca48e46 Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Sat, 30 Sep 2023 11:50:49 +0000 Subject: [PATCH 2/7] Restyled by black --- bot.py | 760 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 387 insertions(+), 373 deletions(-) diff --git a/bot.py b/bot.py index b7158a3..5e8889f 100644 --- a/bot.py +++ b/bot.py @@ -45,37 +45,44 @@ def jsonToDict(filename): langFiles = [f for f in listdir("./langs") if isfile(join("./langs", f))] languages = dict() for languageFile in langFiles: - languages[languageFile.split(".")[0]] = jsonToDict("./langs/" + - languageFile) + languages[languageFile.split(".")[0]] = jsonToDict("./langs/" + languageFile) # database import & connection conn = sqlite3.connect("maindatabase1.db") cur = conn.cursor() -cur.execute("""CREATE TABLE IF NOT EXISTS `warns` ( +cur.execute( + """CREATE TABLE IF NOT EXISTS `warns` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `userid` INT(100), `guildid` INT, `reason` TEXT, `timestamp` INT); - """) -cur.execute("""CREATE TABLE IF NOT EXISTS `customWords` ( + """ +) +cur.execute( + """CREATE TABLE IF NOT EXISTS `customWords` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `guildid` INT, `uploaderId`INT, `word` TEXT, `type` INT); - """) -cur.execute("""CREATE TABLE IF NOT EXISTS `settings` ( + """ +) +cur.execute( + """CREATE TABLE IF NOT EXISTS `settings` ( `guildid` INT(100) UNIQUE, `automod` INT, `language` TEXT); - """) -cur.execute("""CREATE TABLE IF NOT EXISTS `metrics` ( + """ +) +cur.execute( + """CREATE TABLE IF NOT EXISTS `metrics` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `commandName` TEXT, `timestamp` INT); - """) + """ +) hammericon = "https://images-ext-2.discordapp.net/external/OKc8xu6AILGNFY3nSTt7wGbg-Mi1iQZonoLTFg85o-E/%3Fsize%3D1024/https/cdn.discordapp.com/avatars/591633652493058068/e6011129c5169b29ed05a6dc873175cb.png?width=670&height=670" @@ -94,15 +101,16 @@ def jsonToDict(filename): @bot.slash_command( - name="help", description="Displays all the available commands for Hammer") + name="help", description="Displays all the available commands for Hammer" +) async def help(ctx): # Define each page descr = await GetTranslatedText(ctx.guild.id, "help_description") - embed = Embed(title="Hammer Bot Help", - description=descr, - colour=discord.Colour.lighter_grey()) + embed = Embed( + title="Hammer Bot Help", description=descr, colour=discord.Colour.lighter_grey() + ) user = await GetTranslatedText(ctx.guild.id, "user") reason = await GetTranslatedText(ctx.guild.id, "reason") @@ -122,25 +130,25 @@ async def help(ctx): embed.add_field( name=await GetTranslatedText(ctx.guild.id, "help_automod_title"), - value=await GetTranslatedText(ctx.guild.id, - "help_automod_description", - COMMAND_PREFIX=COMMAND_PREFIX), + value=await GetTranslatedText( + ctx.guild.id, "help_automod_description", COMMAND_PREFIX=COMMAND_PREFIX + ), inline=True, ) embed.add_field( name=await GetTranslatedText(ctx.guild.id, "help_chatmod_title"), - value=await GetTranslatedText(ctx.guild.id, - "help_chatmod_description", - COMMAND_PREFIX=COMMAND_PREFIX), + value=await GetTranslatedText( + ctx.guild.id, "help_chatmod_description", COMMAND_PREFIX=COMMAND_PREFIX + ), inline=True, ) embed.add_field( name=await GetTranslatedText(ctx.guild.id, "help_various_title"), - value=await GetTranslatedText(ctx.guild.id, - "help_various_description", - COMMAND_PREFIX=COMMAND_PREFIX), + value=await GetTranslatedText( + ctx.guild.id, "help_various_description", COMMAND_PREFIX=COMMAND_PREFIX + ), inline=True, ) @@ -152,16 +160,16 @@ async def help(ctx): embed.add_field( name=await GetTranslatedText(ctx.guild.id, "help_commands_title"), - value=await GetTranslatedText(ctx.guild.id, - "help_commands_description", - COMMAND_PREFIX=COMMAND_PREFIX), + value=await GetTranslatedText( + ctx.guild.id, "help_commands_description", COMMAND_PREFIX=COMMAND_PREFIX + ), inline=True, ) embed.set_footer( - text=await GetTranslatedText(ctx.guild.id, - "footer_executed_by", - USERNAME=filterMember(ctx.author)), + text=await GetTranslatedText( + ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) + ), icon_url=hammericon, ) @@ -229,8 +237,7 @@ async def Removewarn(userid: int, guildId: int, relativeWarnId: int): async def Clearwarns(userid: int, guildId: int): # delete all rows - cur.execute("DELETE FROM warns WHERE userid=? AND guildid=?", - (userid, guildId)) + cur.execute("DELETE FROM warns WHERE userid=? AND guildid=?", (userid, guildId)) conn.commit() return @@ -245,20 +252,21 @@ async def getAllWarns(userid: int, guildid: int): emojis = ":" + numToEmoji(c) + ":" else: emojis = str(c) - ddt = int(str(dt)[:str(dt).find(".")]) - allwarns.append(await GetTranslatedText(guildid, - "warns_line_loop", - EMOJIS=emojis, - SUBREASON=SubReason, - DDT=ddt)) + ddt = int(str(dt)[: str(dt).find(".")]) + allwarns.append( + await GetTranslatedText( + guildid, "warns_line_loop", EMOJIS=emojis, SUBREASON=SubReason, DDT=ddt + ) + ) c = c + 1 return allwarns async def GetAutomodCustomWords(guildid: int, mode: str): wtype = 1 if mode == "allow" else 0 - cur.execute("SELECT word FROM customWords WHERE guildid = ? AND type = ?", - (guildid, wtype)) + cur.execute( + "SELECT word FROM customWords WHERE guildid = ? AND type = ?", (guildid, wtype) + ) words = cur.fetchall() a = [] if len(words) > 0: @@ -313,8 +321,7 @@ async def AddDeniedWord(guildid: int, userid: int, word: str): async def GetSettings(guildid: int, index: int): - cur.execute("SELECT * FROM settings WHERE guildid = ? LIMIT 1", - (guildid, )) + cur.execute("SELECT * FROM settings WHERE guildid = ? LIMIT 1", (guildid,)) rows = cur.fetchall() if len(rows) > 0: return rows[0][index] @@ -326,8 +333,9 @@ async def GetTranslatedText(guildid: int, index: str, **replace): global languages dbLanguageRecord = await GetSettings(guildid, 2) - currentLanguage = ("en" if dbLanguageRecord == 0 - or dbLanguageRecord == None else dbLanguageRecord) + currentLanguage = ( + "en" if dbLanguageRecord == 0 or dbLanguageRecord == None else dbLanguageRecord + ) text = languages[currentLanguage].get(index, "Word not translated yet.") for oldString, newString in replace.items(): @@ -346,14 +354,11 @@ async def SendMetric(commandName: str): async def SaveSetting(guildid: int, module: str, value: str): - cur.execute("SELECT * FROM settings WHERE guildid = ? LIMIT 1", - (guildid, )) + cur.execute("SELECT * FROM settings WHERE guildid = ? LIMIT 1", (guildid,)) rows = cur.fetchall() # print(rows) - if len( - rows - ) > 0: # cur.execute('INSERT INTO foo (a,b) values (?,?)', (strA, strB)) + if len(rows) > 0: # cur.execute('INSERT INTO foo (a,b) values (?,?)', (strA, strB)) query = f"""UPDATE settings SET {module}=? WHERE guildid=?""" @@ -385,20 +390,18 @@ def GenerateChart(datasets): qc.device_pixel_ratio = 2.0 qc.config = { "type": "line", - "data": { - "datasets": datasets - }, + "data": {"datasets": datasets}, "options": { "scales": { - "xAxes": [{ - "type": "time", - "time": { - "parser": "YYYY-MM-DD HH:mm:ss", - "displayFormats": { - "day": "DD/MM/YYYY" + "xAxes": [ + { + "type": "time", + "time": { + "parser": "YYYY-MM-DD HH:mm:ss", + "displayFormats": {"day": "DD/MM/YYYY"}, }, - }, - }] + } + ] } }, } @@ -415,10 +418,11 @@ async def SendMessageTo(ctx, member, message): await member.send(message) except: await ctx.respond( - embed=ErrorEmbed(await - GetTranslatedText(ctx.guild.id, - "error_deliver_msg", - USERNAME=filterMember(member))), + embed=ErrorEmbed( + await GetTranslatedText( + ctx.guild.id, "error_deliver_msg", USERNAME=filterMember(member) + ) + ), ephemeral=True, ) @@ -557,10 +561,8 @@ async def on_message(message): if settings != 1: return # user has disabled Automod or does not have it installed words = message.content.split() - allowed_words_guild_list = await GetAutomodCustomWords( - message.guild.id, "allow") - denied_words_guild_list = await GetAutomodCustomWords( - message.guild.id, "deny") + allowed_words_guild_list = await GetAutomodCustomWords(message.guild.id, "allow") + denied_words_guild_list = await GetAutomodCustomWords(message.guild.id, "deny") print("scanned: ", message.content) for word in words: # print("scanning word:",word) @@ -589,22 +591,19 @@ async def on_message(message): description=descr, ) embed.set_footer( - text=await GetTranslatedText(message.guild.id, - "automod_warn_footer"), + text=await GetTranslatedText(message.guild.id, "automod_warn_footer"), icon_url=hammericon, ) embed.set_thumbnail(url=member.display_avatar) warn = await AddWarning( member.id, message.guild.id, - await GetTranslatedText(message.guild.id, - "automod_warn_reason"), + await GetTranslatedText(message.guild.id, "automod_warn_reason"), ) await SendMetric("automod") s = "s" if warn > 1 else "" embed.add_field( - name=await GetTranslatedText(message.guild.id, - "automod_count_title"), + name=await GetTranslatedText(message.guild.id, "automod_count_title"), value=await GetTranslatedText( message.guild.id, "automod_count_description", @@ -615,13 +614,14 @@ async def on_message(message): inline=True, ) bannedmessage = ( - message.content[:message.content.find(originalWord)] + "~~" + - word + "~~" + - message.content[message.content.find(originalWord) + - len(word):]) + message.content[: message.content.find(originalWord)] + + "~~" + + word + + "~~" + + message.content[message.content.find(originalWord) + len(word) :] + ) embed.add_field( - name=await GetTranslatedText(message.guild.id, - "automod_removed_title"), + name=await GetTranslatedText(message.guild.id, "automod_removed_title"), value=await GetTranslatedText( message.guild.id, "automod_removed_description", @@ -630,10 +630,12 @@ async def on_message(message): inline=True, ) embed.add_field( - name=await GetTranslatedText(message.guild.id, - "automod_nothappy_title"), - value=await GetTranslatedText(message.guild.id, - "automod_nothappy_description"), + name=await GetTranslatedText( + message.guild.id, "automod_nothappy_title" + ), + value=await GetTranslatedText( + message.guild.id, "automod_nothappy_description" + ), inline=False, ) await message.channel.send(embed=embed) @@ -644,19 +646,24 @@ async def on_message(message): except: embed = ErrorEmbed( - await message.channel.send(embed=ErrorEmbed( - await GetTranslatedText( - message.guild.id, - "error_deliver_msg", - USERNAME=filterMember(member), - )), ), ) + await message.channel.send( + embed=ErrorEmbed( + await GetTranslatedText( + message.guild.id, + "error_deliver_msg", + USERNAME=filterMember(member), + ) + ), + ), + ) message.channel.send(embed=embed) @bot.event async def on_ready(): - await bot.change_presence(activity=discord.Activity( - type=discord.ActivityType.watching, name="you")) + await bot.change_presence( + activity=discord.Activity(type=discord.ActivityType.watching, name="you") + ) print("HAMMER BOT Ready!", datetime.datetime.now()) botname = await bot.application_info() print("logged in as:", botname.name) @@ -673,9 +680,7 @@ async def on_ready(): debug = False # ALWAYS FALSE! -@bot.slash_command(guild_only=True, - name="hello", - guild_ids=[int(SECURITY_GUILD)]) +@bot.slash_command(guild_only=True, name="hello", guild_ids=[int(SECURITY_GUILD)]) async def hello(ctx): await ctx.defer() await SendMetric("hello") @@ -687,10 +692,9 @@ async def hello(ctx): async def on_command_error(ctx, error): if isinstance(error, commands.MissingRequiredArgument): await ctx.respond( - await GetTranslatedText(ctx.guild.id, - "error_404", - ERROR=error, - COMMAND_PREFIX=COMMAND_PREFIX), + await GetTranslatedText( + ctx.guild.id, "error_404", ERROR=error, COMMAND_PREFIX=COMMAND_PREFIX + ), ephemeral=True, ) if isinstance(error, commands.MissingPermissions): @@ -735,18 +739,18 @@ async def whois(ctx, member: discord.Member): WARNS=await GetWarnings(member.id, ctx.guild.id), ) embed = Embed( - title=await GetTranslatedText(ctx.guild.id, - "whois_title", - MEMBER=filterMember(member)), + title=await GetTranslatedText( + ctx.guild.id, "whois_title", MEMBER=filterMember(member) + ), description=descr, ) embed.set_thumbnail(url=member.display_avatar) embed.set_footer( - text=await GetTranslatedText(ctx.guild.id, - "footer_executed_by", - USERNAME=filterMember(ctx.author)), + text=await GetTranslatedText( + ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) + ), icon_url=hammericon, ) await ctx.respond(embed=embed) @@ -759,37 +763,36 @@ async def whois(ctx, member: discord.Member): name="ban", description="Keeps out a user permanently, forbidding its entry", ) -@discord.default_permissions(ban_members=True, ) +@discord.default_permissions( + ban_members=True, +) async def ban(ctx, member: discord.Member, *, reason=None): await SendMetric("ban") if member == ctx.author: - await ctx.respond(await GetTranslatedText(ctx.guild.id, - "error_self_ban"), - ephemeral=True) + await ctx.respond( + await GetTranslatedText(ctx.guild.id, "error_self_ban"), ephemeral=True + ) return if reason == None: - reason = await GetTranslatedText(ctx.guild.id, - "punishment_default_reason") - message = await GetTranslatedText(ctx.guild.id, - "ban_msg", - GUILD=ctx.guild.name, - REASON=reason) - - descr = await GetTranslatedText(ctx.guild.id, - "ban_description", - MEMBER=filterMember(member), - REASON=reason) + reason = await GetTranslatedText(ctx.guild.id, "punishment_default_reason") + message = await GetTranslatedText( + ctx.guild.id, "ban_msg", GUILD=ctx.guild.name, REASON=reason + ) + + descr = await GetTranslatedText( + ctx.guild.id, "ban_description", MEMBER=filterMember(member), REASON=reason + ) embed = Embed( - title=await GetTranslatedText(ctx.guild.id, - "ban_title", - MEMBER=filterMember(member)), + title=await GetTranslatedText( + ctx.guild.id, "ban_title", MEMBER=filterMember(member) + ), description=descr, ) embed.set_image(url="https://i.imgflip.com/19zat3.jpg") embed.set_footer( - text=await GetTranslatedText(ctx.guild.id, - "footer_executed_by", - USERNAME=filterMember(ctx.author)), + text=await GetTranslatedText( + ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) + ), icon_url=hammericon, ) if not debug: @@ -797,10 +800,11 @@ async def ban(ctx, member: discord.Member, *, reason=None): await member.ban(reason=reason) except: await ctx.respond( - embed=ErrorEmbed(await GetTranslatedText( - ctx.guild.id, - "error_ban_perm", - MEMBER=filterMember(member))), + embed=ErrorEmbed( + await GetTranslatedText( + ctx.guild.id, "error_ban_perm", MEMBER=filterMember(member) + ) + ), ephemeral=True, ) return @@ -810,50 +814,50 @@ async def ban(ctx, member: discord.Member, *, reason=None): await SendMessageTo(ctx, member, message) -@bot.slash_command(guild_only=True, - name="kick", - description="Kicks out a member from the server") -@discord.default_permissions(kick_members=True, ) +@bot.slash_command( + guild_only=True, name="kick", description="Kicks out a member from the server" +) +@discord.default_permissions( + kick_members=True, +) async def kick(ctx, member: discord.Member, *, reason=None): await SendMetric("kick") if member == ctx.author: - await ctx.respond(await GetTranslatedText(ctx.guild.id, - "error_self_kick"), - ephemeral=True) + await ctx.respond( + await GetTranslatedText(ctx.guild.id, "error_self_kick"), ephemeral=True + ) return if reason == None: - reason = await GetTranslatedText(ctx.guild.id, - "punishment_default_reason") - message = await GetTranslatedText(ctx.guild.id, - "kick_msg", - GUILD=ctx.guild.name, - REASON=reason) + reason = await GetTranslatedText(ctx.guild.id, "punishment_default_reason") + message = await GetTranslatedText( + ctx.guild.id, "kick_msg", GUILD=ctx.guild.name, REASON=reason + ) if not debug: try: await member.kick(reason=reason) except: ctx.respond( - embed=ErrorEmbed(await GetTranslatedText( - ctx.guild.id, - "error_kick_perm", - MEMBER=filterMember(member))), + embed=ErrorEmbed( + await GetTranslatedText( + ctx.guild.id, "error_kick_perm", MEMBER=filterMember(member) + ) + ), ephemeral=True, ) return - descr = await GetTranslatedText(ctx.guild.id, - "kick_description", - MEMBER=filterMember(member), - REASON=reason) + descr = await GetTranslatedText( + ctx.guild.id, "kick_description", MEMBER=filterMember(member), REASON=reason + ) embed = Embed( - title=await GetTranslatedText(ctx.guild.id, - "kick_title", - MEMBER=filterMember(member)), + title=await GetTranslatedText( + ctx.guild.id, "kick_title", MEMBER=filterMember(member) + ), description=descr, ) embed.set_footer( - text=await GetTranslatedText(ctx.guild.id, - "footer_executed_by", - USERNAME=filterMember(ctx.author)), + text=await GetTranslatedText( + ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) + ), icon_url=hammericon, ) embed.set_thumbnail(url=member.display_avatar) @@ -872,37 +876,34 @@ async def kick(ctx, member: discord.Member, *, reason=None): description="Select on/off", autocomplete=discord.utils.basic_autocomplete(["on", "off"]), ) -@discord.default_permissions(administrator=True, ) -async def warn(ctx, - member: discord.Member, - reason=None, - softwarn: bool = False): +@discord.default_permissions( + administrator=True, +) +async def warn(ctx, member: discord.Member, reason=None, softwarn: bool = False): await SendMetric("warn") if member == ctx.author: - await ctx.respond(await GetTranslatedText(ctx.guild.id, - "error_self_warn"), - ephemeral=True) + await ctx.respond( + await GetTranslatedText(ctx.guild.id, "error_self_warn"), ephemeral=True + ) return if reason == None: - reason = await GetTranslatedText(ctx.guild.id, - "punishment_default_reason") + reason = await GetTranslatedText(ctx.guild.id, "punishment_default_reason") message = await GetTranslatedText(ctx.guild.id, "warn_msg", REASON=reason) - descr = await GetTranslatedText(ctx.guild.id, - "warn_description", - MEMBER=filterMember(member), - REASON=reason) + descr = await GetTranslatedText( + ctx.guild.id, "warn_description", MEMBER=filterMember(member), REASON=reason + ) embed = Embed( - title=await GetTranslatedText(ctx.guild.id, - "warn_title", - MEMBER=filterMember(member)), + title=await GetTranslatedText( + ctx.guild.id, "warn_title", MEMBER=filterMember(member) + ), description=descr, ) embed.set_footer( - text=await GetTranslatedText(ctx.guild.id, - "footer_executed_by", - USERNAME=filterMember(ctx.author)), + text=await GetTranslatedText( + ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) + ), icon_url=hammericon, ) embed.set_thumbnail(url=member.display_avatar) @@ -930,7 +931,9 @@ async def warn(ctx, name="softwarn", description="Sets a silent warning for a user, at 3 warns/strikes they get kicked", ) -@discord.default_permissions(administrator=True, ) +@discord.default_permissions( + administrator=True, +) async def softwarn(ctx, member: discord.Member, reason=None): await SendMetric("softwarn") await warn(ctx, member, reason, True) @@ -941,7 +944,9 @@ async def softwarn(ctx, member: discord.Member, reason=None): name="seewarns", description="Displays the warn history of a user in the guild", ) -@discord.default_permissions(administrator=True, ) +@discord.default_permissions( + administrator=True, +) async def seewarns(ctx, member: discord.Member): await SendMetric("seewarns") allwarns = await getAllWarns(member.id, ctx.guild.id) @@ -955,105 +960,105 @@ async def seewarns(ctx, member: discord.Member): for warn in await GetWarnings(member.id, ctx.guild.id, fullData=True): _, _, _, _, timestamp = warn c = c + 1 - data.append({ - "t": - str( - datetime.datetime.fromtimestamp( - int(str(timestamp)[:str(timestamp).find(".")]))), - "y": - c, - }) - - uurl = GenerateChart([{ - "fill": - False, - "label": [ - await GetTranslatedText( - ctx.guild.id, - "seewarns_chart_title", - MEMBER=filterMember(member), - ) - ], - "lineTension": - 0, - "backgroundColor": - "#7289DA", - "borderColor": - "#7289DA", - "data": - data, - }]) + data.append( + { + "t": str( + datetime.datetime.fromtimestamp( + int(str(timestamp)[: str(timestamp).find(".")]) + ) + ), + "y": c, + } + ) + + uurl = GenerateChart( + [ + { + "fill": False, + "label": [ + await GetTranslatedText( + ctx.guild.id, + "seewarns_chart_title", + MEMBER=filterMember(member), + ) + ], + "lineTension": 0, + "backgroundColor": "#7289DA", + "borderColor": "#7289DA", + "data": data, + } + ] + ) embed = Embed( - title=await GetTranslatedText(ctx.guild.id, - "seewarns_title", - MEMBER=filterMember(member)), + title=await GetTranslatedText( + ctx.guild.id, "seewarns_title", MEMBER=filterMember(member) + ), description=message, ) embed.set_image(url=uurl) embed.set_footer( - text=await GetTranslatedText(ctx.guild.id, - "footer_executed_by", - USERNAME=filterMember(ctx.author)), + text=await GetTranslatedText( + ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) + ), icon_url=hammericon, ) return await ctx.respond(embed=embed) -@bot.slash_command(guild_only=True, - name="unwarn", - description="Removes a strike from a user") -@discord.default_permissions(kick_members=True, ) +@bot.slash_command( + guild_only=True, name="unwarn", description="Removes a strike from a user" +) +@discord.default_permissions( + kick_members=True, +) async def unwarn(ctx, member: discord.Member, id: int = None, *, reason=None): await SendMetric("unwarn") if await GetWarnings(member.id, ctx.guild.id) == 0: - return await ctx.respond(await - GetTranslatedText(ctx.guild.id, - "unwarn_no_warns")) + return await ctx.respond( + await GetTranslatedText(ctx.guild.id, "unwarn_no_warns") + ) if id == None: - descriptionMsg = await GetTranslatedText(ctx.guild.id, - "unwarn_description_msg") + descriptionMsg = await GetTranslatedText(ctx.guild.id, "unwarn_description_msg") embed = Embed( - title=await GetTranslatedText(ctx.guild.id, - "unwarn_wrong_selection"), + title=await GetTranslatedText(ctx.guild.id, "unwarn_wrong_selection"), description=descriptionMsg, ) allwarns = await getAllWarns(member.id, ctx.guild.id) embed.add_field( - name=await GetTranslatedText(ctx.guild.id, - "seewarns_title", - MEMBER=filterMember(member)), + name=await GetTranslatedText( + ctx.guild.id, "seewarns_title", MEMBER=filterMember(member) + ), value="\n".join(allwarns), ) return await ctx.respond(embed=embed) if reason == None: - reason = await GetTranslatedText(ctx.guild.id, - "unpunishment_default_reason") - message = await GetTranslatedText(ctx.guild.id, - "unwarn_msg", - REASON=reason) - - descr = await GetTranslatedText(ctx.guild.id, - "unwarn_description", - MEMBER=filterMember(member), - REASON=reason) + reason = await GetTranslatedText(ctx.guild.id, "unpunishment_default_reason") + message = await GetTranslatedText(ctx.guild.id, "unwarn_msg", REASON=reason) + + descr = await GetTranslatedText( + ctx.guild.id, "unwarn_description", MEMBER=filterMember(member), REASON=reason + ) embed = Embed( - title=await GetTranslatedText(ctx.guild.id, - "unwarn_title", - MEMBER=filterMember(member)), + title=await GetTranslatedText( + ctx.guild.id, "unwarn_title", MEMBER=filterMember(member) + ), description=descr, ) embed.set_footer( - text=await GetTranslatedText(ctx.guild.id, - "footer_executed_by", - USERNAME=filterMember(ctx.author)), + text=await GetTranslatedText( + ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) + ), icon_url=hammericon, ) embed.set_thumbnail(url=member.display_avatar) warn = await Removewarn(member.id, ctx.guild.id, id) - s = (await GetTranslatedText(ctx.guild.id, "plural_warn") if warn != 1 else - await GetTranslatedText(ctx.guild.id, "singular_warn")) + s = ( + await GetTranslatedText(ctx.guild.id, "plural_warn") + if warn != 1 + else await GetTranslatedText(ctx.guild.id, "singular_warn") + ) congrats = "Yey! :tada:" if warn == 0 else "" embed.add_field( name=await GetTranslatedText(ctx.guild.id, "automod_count_title"), @@ -1071,18 +1076,17 @@ async def unwarn(ctx, member: discord.Member, id: int = None, *, reason=None): await SendMessageTo(ctx, member, message) -@bot.slash_command(guild_only=True, - name="clearwarns", - description="Removes all strikes from a user") -@discord.default_permissions(kick_members=True, ) +@bot.slash_command( + guild_only=True, name="clearwarns", description="Removes all strikes from a user" +) +@discord.default_permissions( + kick_members=True, +) async def clearwarns(ctx, member: discord.Member, *, reason=None): await SendMetric("clearwarns") if reason == None: - reason = await GetTranslatedText(ctx.guild.id, - "unpunishment_default_reason") - message = await GetTranslatedText(ctx.guild.id, - "clearwarns_msg", - REASON=reason) + reason = await GetTranslatedText(ctx.guild.id, "unpunishment_default_reason") + message = await GetTranslatedText(ctx.guild.id, "clearwarns_msg", REASON=reason) descr = await GetTranslatedText( ctx.guild.id, @@ -1091,15 +1095,15 @@ async def clearwarns(ctx, member: discord.Member, *, reason=None): REASON=reason, ) embed = Embed( - title=await GetTranslatedText(ctx.guild.id, - "clearwarns_title", - MEMBER=filterMember(member)), + title=await GetTranslatedText( + ctx.guild.id, "clearwarns_title", MEMBER=filterMember(member) + ), description=descr, ) embed.set_footer( - text=await GetTranslatedText(ctx.guild.id, - "footer_executed_by", - USERNAME=filterMember(ctx.author)), + text=await GetTranslatedText( + ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) + ), icon_url=hammericon, ) embed.set_thumbnail(url=member.display_avatar) @@ -1125,7 +1129,9 @@ async def clearwarns(ctx, member: discord.Member, *, reason=None): name="automod", description="Customizes in this guild Hammer's automod", ) -@discord.default_permissions(administrator=True, ) +@discord.default_permissions( + administrator=True, +) @option( "action", description="Select add/remove word from swear list", @@ -1139,8 +1145,9 @@ async def automod(ctx, action: str, word: str): response = await AddDeniedWord(ctx.guild.id, ctx.author.id, word) else: return await ctx.respond( - embed=ErrorEmbed(await GetTranslatedText(ctx.guild.id, - "error_automod_syntax")), + embed=ErrorEmbed( + await GetTranslatedText(ctx.guild.id, "error_automod_syntax") + ), ephemeral=True, ) if response: @@ -1157,9 +1164,9 @@ async def automod(ctx, action: str, word: str): ) else: return await ctx.respond( - embed=ErrorEmbed(await GetTranslatedText(ctx.guild.id, - "error_automod", - WORD=word)), + embed=ErrorEmbed( + await GetTranslatedText(ctx.guild.id, "error_automod", WORD=word) + ), ephemeral=True, ) @@ -1252,27 +1259,33 @@ async def restart(ctx): name="setdelay", description="Updates the message delay in a channel with a set of custom time interval", ) -@discord.default_permissions(manage_messages=True, ) +@discord.default_permissions( + manage_messages=True, +) async def setdelay(ctx, seconds: float, reason: str = ""): await SendMetric("setdelay") - m = (await GetTranslatedText(ctx.guild.id, "modified") if seconds > 0.0 - else await GetTranslatedText(ctx.guild.id, "removed")) - reason = (((await GetTranslatedText(ctx.guild.id, "for")) + - reason) if reason != "" and reason != None else "") + m = ( + await GetTranslatedText(ctx.guild.id, "modified") + if seconds > 0.0 + else await GetTranslatedText(ctx.guild.id, "removed") + ) + reason = ( + ((await GetTranslatedText(ctx.guild.id, "for")) + reason) + if reason != "" and reason != None + else "" + ) embed = Embed( - title=await GetTranslatedText(ctx.guild.id, - "setdelay_title", - M=m, - CHANNEL=ctx.channel), - description=await GetTranslatedText(ctx.guild.id, - "setdelay_description", - SECONDS=seconds, - REASON=reason), + title=await GetTranslatedText( + ctx.guild.id, "setdelay_title", M=m, CHANNEL=ctx.channel + ), + description=await GetTranslatedText( + ctx.guild.id, "setdelay_description", SECONDS=seconds, REASON=reason + ), ) embed.set_footer( - text=await GetTranslatedText(ctx.guild.id, - "footer_executed_by", - USERNAME=filterMember(ctx.author)), + text=await GetTranslatedText( + ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) + ), icon_url=hammericon, ) @@ -1286,7 +1299,9 @@ async def setdelay(ctx, seconds: float, reason: str = ""): name="mute", description="Removes the hability to talk or join voice channels to a user", ) -@discord.default_permissions(manage_messages=True, ) +@discord.default_permissions( + manage_messages=True, +) async def mute(ctx, member: discord.Member, *, reason=None): await SendMetric("mute") guild = ctx.guild @@ -1305,17 +1320,15 @@ async def mute(ctx, member: discord.Member, *, reason=None): ) if reason == None: - reason = await GetTranslatedText(ctx.guild.id, - "punishment_default_reason") + reason = await GetTranslatedText(ctx.guild.id, "punishment_default_reason") embed = discord.Embed( - title=await GetTranslatedText(ctx.guild.id, - "mute_title", - MEMBER=filterMember(member)), - description=await GetTranslatedText(ctx.guild.id, - "mute_description", - MENTION=member.mention, - REASON=reason), + title=await GetTranslatedText( + ctx.guild.id, "mute_title", MEMBER=filterMember(member) + ), + description=await GetTranslatedText( + ctx.guild.id, "mute_description", MENTION=member.mention, REASON=reason + ), colour=discord.Colour.red(), ) await ctx.respond(embed=embed) @@ -1324,10 +1337,9 @@ async def mute(ctx, member: discord.Member, *, reason=None): SendMessageTo( ctx, member, - await GetTranslatedText(ctx.guild.id, - "mute_msg", - GUILD=ctx.guild.name, - REASON=reason), + await GetTranslatedText( + ctx.guild.id, "mute_msg", GUILD=ctx.guild.name, REASON=reason + ), ) @@ -1337,7 +1349,9 @@ async def mute(ctx, member: discord.Member, *, reason=None): name="unmute", description="Restores the hability to talk or join voice channels to a user", ) -@discord.default_permissions(manage_messages=True, ) +@discord.default_permissions( + manage_messages=True, +) async def unmute(ctx, member: discord.Member, *, reason=None): await SendMetric("unmute") mutedRole = discord.utils.get(ctx.guild.roles, name="Muted") @@ -1349,19 +1363,17 @@ async def unmute(ctx, member: discord.Member, *, reason=None): SendMessageTo( ctx, member, - await GetTranslatedText(ctx.guild.id, - "unmute_msg", - GUILD=ctx.guild.name, - REASON=reason), + await GetTranslatedText( + ctx.guild.id, "unmute_msg", GUILD=ctx.guild.name, REASON=reason + ), ) embed = discord.Embed( - title=await GetTranslatedText(ctx.guild.id, - "unmute_title", - MEMBER=filterMember(member)), - description=await GetTranslatedText(ctx.guild.id, - "unmute_description", - MENTION=member.mention, - REASON=reason), + title=await GetTranslatedText( + ctx.guild.id, "unmute_title", MEMBER=filterMember(member) + ), + description=await GetTranslatedText( + ctx.guild.id, "unmute_description", MENTION=member.mention, REASON=reason + ), colour=discord.Colour.light_gray(), ) await ctx.respond(embed=embed) @@ -1381,17 +1393,15 @@ async def lock(ctx, channel: discord.TextChannel = None, reason=None): overwrite.send_messages = False await channel.set_permissions(ctx.guild.default_role, overwrite=overwrite) embed = Embed( - title=await GetTranslatedText(ctx.guild.id, - "lock_title", - CHANNEL=ctx.channel), - description=await GetTranslatedText(ctx.guild.id, - "lock_description", - REASON=reason), + title=await GetTranslatedText(ctx.guild.id, "lock_title", CHANNEL=ctx.channel), + description=await GetTranslatedText( + ctx.guild.id, "lock_description", REASON=reason + ), ) embed.set_footer( - text=await GetTranslatedText(ctx.guild.id, - "footer_executed_by", - USERNAME=filterMember(ctx.author)), + text=await GetTranslatedText( + ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) + ), icon_url=hammericon, ) await ctx.respond(embed=embed) @@ -1411,17 +1421,17 @@ async def unlock(ctx, channel: discord.TextChannel = None, reason=None): overwrite.send_messages = True await channel.set_permissions(ctx.guild.default_role, overwrite=overwrite) embed = Embed( - title=await GetTranslatedText(ctx.guild.id, - "unlock_title", - CHANNEL=ctx.channel), - description=await GetTranslatedText(ctx.guild.id, - "unlock_description", - REASON=reason), + title=await GetTranslatedText( + ctx.guild.id, "unlock_title", CHANNEL=ctx.channel + ), + description=await GetTranslatedText( + ctx.guild.id, "unlock_description", REASON=reason + ), ) embed.set_footer( - text=await GetTranslatedText(ctx.guild.id, - "footer_executed_by", - USERNAME=filterMember(ctx.author)), + text=await GetTranslatedText( + ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) + ), icon_url=hammericon, ) await ctx.respond(embed=embed) @@ -1438,9 +1448,9 @@ async def suggest(ctx, suggestion: str): description=f"{suggestion}", ) embed.set_footer( - text=await GetTranslatedText(ctx.guild.id, - "footer_executed_by", - USERNAME=filterMember(ctx.author)), + text=await GetTranslatedText( + ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) + ), icon_url=hammericon, ) suggestionChannel = bot.get_channel(int(DEV_SUGGESTIONS_CHANNEL)) @@ -1462,9 +1472,9 @@ async def invite(ctx): description=f"[**🔗{await GetTranslatedText(ctx.guild.id, 'hammer_link')}**](https://discordapp.com/api/oauth2/authorize?client_id=591633652493058068&permissions=8&scope=bot)", ) embed.set_footer( - text=await GetTranslatedText(ctx.guild.id, - "footer_executed_by", - USERNAME=filterMember(ctx.author)), + text=await GetTranslatedText( + ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) + ), icon_url=hammericon, ) await ctx.respond(embed=embed) @@ -1474,9 +1484,9 @@ async def invite(ctx): @discord.default_permissions(administrator=True) -@bot.slash_command(name="settings", - description="Modifies some Hammer config values", - guild_only=True) +@bot.slash_command( + name="settings", description="Modifies some Hammer config values", guild_only=True +) @option( "module", description="Pick a module to switch!", @@ -1497,10 +1507,9 @@ async def settings(ctx, module: str = None, value: str = None): await SaveSetting(ctx.guild.id, module, value) action = "enabled" if value else "disabled" await ctx.respond( - await GetTranslatedText(ctx.guild.id, - "settings_module", - MODULE=module, - ACTION=action), + await GetTranslatedText( + ctx.guild.id, "settings_module", MODULE=module, ACTION=action + ), ephemeral=True, ) @@ -1522,8 +1531,7 @@ async def settings(ctx, module: str = None, value: str = None): await GetTranslatedText( ctx.guild.id, "error_settings_syntax", - COMMAND="/settings language " + - "/".join(languagesOptions), + COMMAND="/settings language " + "/".join(languagesOptions), ), ephemeral=True, ) @@ -1551,19 +1559,20 @@ async def settings(ctx, module: str = None, value: str = None): return embed = Embed( title=await GetTranslatedText(ctx.guild.id, "settings_title"), - description=await GetTranslatedText(ctx.guild.id, - "settings_description"), + description=await GetTranslatedText(ctx.guild.id, "settings_description"), ) print("getting settings from discord.Guild.id", ctx.guild.id) automodStatus = await GetSettings(ctx.guild.id, 1) automodStatustr = "**✅ ON**" if automodStatus else "**❌ OFF**" recommendedactivityAutomod = ( - await GetTranslatedText(ctx.guild.id, - "settings_disable_automod", - COMMAND_PREFIX=COMMAND_PREFIX) if automodStatus - else await GetTranslatedText(ctx.guild.id, - "settings_enable_automod", - COMMAND_PREFIX=COMMAND_PREFIX)) + await GetTranslatedText( + ctx.guild.id, "settings_disable_automod", COMMAND_PREFIX=COMMAND_PREFIX + ) + if automodStatus + else await GetTranslatedText( + ctx.guild.id, "settings_enable_automod", COMMAND_PREFIX=COMMAND_PREFIX + ) + ) embed.add_field( name=await GetTranslatedText(ctx.guild.id, "help_automod_title"), value=await GetTranslatedText( @@ -1592,9 +1601,9 @@ async def settings(ctx, module: str = None, value: str = None): inline=False, ) embed.set_footer( - text=await GetTranslatedText(ctx.guild.id, - "footer_executed_by", - USERNAME=filterMember(ctx.author)), + text=await GetTranslatedText( + ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) + ), icon_url=hammericon, ) await ctx.respond(embed=embed) @@ -1611,43 +1620,48 @@ async def metrics(ctx): _, commandType, timestamp = metric commandDict[commandType] = commandDict.get(commandType, 0) + 1 provList = finalList.get(commandType, []) - provList.append({ - "t": - str(datetime.datetime.fromtimestamp(int(timestamp))), - "y": - commandDict[commandType], - }) + provList.append( + { + "t": str(datetime.datetime.fromtimestamp(int(timestamp))), + "y": commandDict[commandType], + } + ) finalList[commandType] = provList # prepare datasets final = [] for ( - command, - data, + command, + data, ) in finalList.items(): - final.append({ - "fill": False, - "label": [command], - "lineTension": 0, - "data": data, - }) + final.append( + { + "fill": False, + "label": [command], + "lineTension": 0, + "data": data, + } + ) uurl = GenerateChart(final) embed = Embed( title="Lifetime Metrics (since 25-08-23)", - description="The following command have been used:" + " ".join([ - cmd + ": " + str(times) + " times" - for cmd, times in commandDict.items() - ]), + description="The following command have been used:" + + " ".join( + [ + cmd + ": " + str(times) + " times" + for cmd, times in commandDict.items() + ] + ), ) - if (len(uurl) > 2048): + if len(uurl) > 2048: embed.set_image(url=uurl) else: embed.add_field("Graph URL :link:", f"[Click Here to visualize](${uurl})") embed.set_footer( - text=await GetTranslatedText(ctx.guild.id, - "footer_executed_by", - USERNAME=filterMember(ctx.author)), + text=await GetTranslatedText( + ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) + ), icon_url=hammericon, ) return await ctx.respond(embed=embed) From 1d975a08209701837af65d1ccbfe0bcee2a5925c Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Sat, 30 Sep 2023 11:50:51 +0000 Subject: [PATCH 3/7] Restyled by isort --- bot.py | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/bot.py b/bot.py index 5e8889f..018686c 100644 --- a/bot.py +++ b/bot.py @@ -6,27 +6,20 @@ import urllib from email import message from os import listdir -from os.path import isfile -from os.path import join +from os.path import isfile, join from pydoc import describe from time import time import discord -from discord import Embed -from discord import guild_only +from discord import Embed, guild_only from discord.commands import option from discord.ext import commands from discord.ext.commands.core import command from quickchart import QuickChart -from get_enviroment import ANNOUNCEMENTS_CHANNEL -from get_enviroment import COMMAND_PREFIX -from get_enviroment import DEV_SUGGESTIONS_CHANNEL -from get_enviroment import OWNER -from get_enviroment import SECURITY_CHANNEL -from get_enviroment import SECURITY_GUILD -from get_enviroment import SWEAR_WORDS_LIST -from get_enviroment import TOKEN +from get_enviroment import (ANNOUNCEMENTS_CHANNEL, COMMAND_PREFIX, + DEV_SUGGESTIONS_CHANNEL, OWNER, SECURITY_CHANNEL, + SECURITY_GUILD, SWEAR_WORDS_LIST, TOKEN) # Language Loading From 708bfa94390121f79b95c72c778050d07e33aabc Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Sat, 30 Sep 2023 11:50:53 +0000 Subject: [PATCH 4/7] Restyled by pyment --- bot.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/bot.py b/bot.py index 018686c..5a3ec5a 100644 --- a/bot.py +++ b/bot.py @@ -27,7 +27,7 @@ def jsonToDict(filename): """ - :param filename: + :param filename: """ with open(filename) as f_in: @@ -374,7 +374,7 @@ async def SaveSetting(guildid: int, module: str, value: str): def GenerateChart(datasets): """ - :param datasets: + :param datasets: """ qc = QuickChart() @@ -424,7 +424,7 @@ async def SendMessageTo(ctx, member, message): def ErrorEmbed(error): """ - :param error: + :param error: """ embed = Embed(title=f":no_entry_sign: Error!", description=error) @@ -443,7 +443,7 @@ def ErrorEmbed(error): def unicodeLetterConver(word): """ - :param word: + :param word: """ f = "" @@ -493,7 +493,7 @@ def unicodeLetterConver(word): def numToEmoji(num): """ - :param num: + :param num: """ v = "" @@ -526,6 +526,7 @@ def filterMember(member: discord.Member): :param member: discord.Member: :param member: discord.Member: :param member: discord.Member: + :param member: discord.Member: """ username, discriminator = str(member).split("#") From 931c88abc6414a6330ce07a89486db73785fde80 Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Sat, 30 Sep 2023 11:50:54 +0000 Subject: [PATCH 5/7] Restyled by reorder-python-imports --- bot.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/bot.py b/bot.py index 5a3ec5a..6cf1937 100644 --- a/bot.py +++ b/bot.py @@ -6,20 +6,27 @@ import urllib from email import message from os import listdir -from os.path import isfile, join +from os.path import isfile +from os.path import join from pydoc import describe from time import time import discord -from discord import Embed, guild_only +from discord import Embed +from discord import guild_only from discord.commands import option from discord.ext import commands from discord.ext.commands.core import command from quickchart import QuickChart -from get_enviroment import (ANNOUNCEMENTS_CHANNEL, COMMAND_PREFIX, - DEV_SUGGESTIONS_CHANNEL, OWNER, SECURITY_CHANNEL, - SECURITY_GUILD, SWEAR_WORDS_LIST, TOKEN) +from get_enviroment import ANNOUNCEMENTS_CHANNEL +from get_enviroment import COMMAND_PREFIX +from get_enviroment import DEV_SUGGESTIONS_CHANNEL +from get_enviroment import OWNER +from get_enviroment import SECURITY_CHANNEL +from get_enviroment import SECURITY_GUILD +from get_enviroment import SWEAR_WORDS_LIST +from get_enviroment import TOKEN # Language Loading From fcc0a4595a57563f7ef3efb61c0b51eaa2fb3e0d Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Sat, 30 Sep 2023 11:50:55 +0000 Subject: [PATCH 6/7] Restyled by whitespace --- bot.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bot.py b/bot.py index 6cf1937..11e0678 100644 --- a/bot.py +++ b/bot.py @@ -34,7 +34,7 @@ def jsonToDict(filename): """ - :param filename: + :param filename: """ with open(filename) as f_in: @@ -381,7 +381,7 @@ async def SaveSetting(guildid: int, module: str, value: str): def GenerateChart(datasets): """ - :param datasets: + :param datasets: """ qc = QuickChart() @@ -431,7 +431,7 @@ async def SendMessageTo(ctx, member, message): def ErrorEmbed(error): """ - :param error: + :param error: """ embed = Embed(title=f":no_entry_sign: Error!", description=error) @@ -450,7 +450,7 @@ def ErrorEmbed(error): def unicodeLetterConver(word): """ - :param word: + :param word: """ f = "" @@ -500,7 +500,7 @@ def unicodeLetterConver(word): def numToEmoji(num): """ - :param num: + :param num: """ v = "" @@ -533,7 +533,7 @@ def filterMember(member: discord.Member): :param member: discord.Member: :param member: discord.Member: :param member: discord.Member: - :param member: discord.Member: + :param member: discord.Member: """ username, discriminator = str(member).split("#") From ce71e02994412c84a80e7632ede614c6c8ec2045 Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Sat, 30 Sep 2023 11:50:59 +0000 Subject: [PATCH 7/7] Restyled by yapf --- bot.py | 785 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 390 insertions(+), 395 deletions(-) diff --git a/bot.py b/bot.py index 11e0678..0c2a30d 100644 --- a/bot.py +++ b/bot.py @@ -45,44 +45,37 @@ def jsonToDict(filename): langFiles = [f for f in listdir("./langs") if isfile(join("./langs", f))] languages = dict() for languageFile in langFiles: - languages[languageFile.split(".")[0]] = jsonToDict("./langs/" + languageFile) + languages[languageFile.split(".")[0]] = jsonToDict("./langs/" + + languageFile) # database import & connection conn = sqlite3.connect("maindatabase1.db") cur = conn.cursor() -cur.execute( - """CREATE TABLE IF NOT EXISTS `warns` ( +cur.execute("""CREATE TABLE IF NOT EXISTS `warns` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `userid` INT(100), `guildid` INT, `reason` TEXT, `timestamp` INT); - """ -) -cur.execute( - """CREATE TABLE IF NOT EXISTS `customWords` ( + """) +cur.execute("""CREATE TABLE IF NOT EXISTS `customWords` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `guildid` INT, `uploaderId`INT, `word` TEXT, `type` INT); - """ -) -cur.execute( - """CREATE TABLE IF NOT EXISTS `settings` ( + """) +cur.execute("""CREATE TABLE IF NOT EXISTS `settings` ( `guildid` INT(100) UNIQUE, `automod` INT, `language` TEXT); - """ -) -cur.execute( - """CREATE TABLE IF NOT EXISTS `metrics` ( + """) +cur.execute("""CREATE TABLE IF NOT EXISTS `metrics` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `commandName` TEXT, `timestamp` INT); - """ -) + """) hammericon = "https://images-ext-2.discordapp.net/external/OKc8xu6AILGNFY3nSTt7wGbg-Mi1iQZonoLTFg85o-E/%3Fsize%3D1024/https/cdn.discordapp.com/avatars/591633652493058068/e6011129c5169b29ed05a6dc873175cb.png?width=670&height=670" @@ -101,16 +94,15 @@ def jsonToDict(filename): @bot.slash_command( - name="help", description="Displays all the available commands for Hammer" -) + name="help", description="Displays all the available commands for Hammer") async def help(ctx): # Define each page descr = await GetTranslatedText(ctx.guild.id, "help_description") - embed = Embed( - title="Hammer Bot Help", description=descr, colour=discord.Colour.lighter_grey() - ) + embed = Embed(title="Hammer Bot Help", + description=descr, + colour=discord.Colour.lighter_grey()) user = await GetTranslatedText(ctx.guild.id, "user") reason = await GetTranslatedText(ctx.guild.id, "reason") @@ -130,25 +122,25 @@ async def help(ctx): embed.add_field( name=await GetTranslatedText(ctx.guild.id, "help_automod_title"), - value=await GetTranslatedText( - ctx.guild.id, "help_automod_description", COMMAND_PREFIX=COMMAND_PREFIX - ), + value=await GetTranslatedText(ctx.guild.id, + "help_automod_description", + COMMAND_PREFIX=COMMAND_PREFIX), inline=True, ) embed.add_field( name=await GetTranslatedText(ctx.guild.id, "help_chatmod_title"), - value=await GetTranslatedText( - ctx.guild.id, "help_chatmod_description", COMMAND_PREFIX=COMMAND_PREFIX - ), + value=await GetTranslatedText(ctx.guild.id, + "help_chatmod_description", + COMMAND_PREFIX=COMMAND_PREFIX), inline=True, ) embed.add_field( name=await GetTranslatedText(ctx.guild.id, "help_various_title"), - value=await GetTranslatedText( - ctx.guild.id, "help_various_description", COMMAND_PREFIX=COMMAND_PREFIX - ), + value=await GetTranslatedText(ctx.guild.id, + "help_various_description", + COMMAND_PREFIX=COMMAND_PREFIX), inline=True, ) @@ -160,16 +152,16 @@ async def help(ctx): embed.add_field( name=await GetTranslatedText(ctx.guild.id, "help_commands_title"), - value=await GetTranslatedText( - ctx.guild.id, "help_commands_description", COMMAND_PREFIX=COMMAND_PREFIX - ), + value=await GetTranslatedText(ctx.guild.id, + "help_commands_description", + COMMAND_PREFIX=COMMAND_PREFIX), inline=True, ) embed.set_footer( - text=await GetTranslatedText( - ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) - ), + text=await GetTranslatedText(ctx.guild.id, + "footer_executed_by", + USERNAME=filterMember(ctx.author)), icon_url=hammericon, ) @@ -237,7 +229,8 @@ async def Removewarn(userid: int, guildId: int, relativeWarnId: int): async def Clearwarns(userid: int, guildId: int): # delete all rows - cur.execute("DELETE FROM warns WHERE userid=? AND guildid=?", (userid, guildId)) + cur.execute("DELETE FROM warns WHERE userid=? AND guildid=?", + (userid, guildId)) conn.commit() return @@ -252,21 +245,20 @@ async def getAllWarns(userid: int, guildid: int): emojis = ":" + numToEmoji(c) + ":" else: emojis = str(c) - ddt = int(str(dt)[: str(dt).find(".")]) - allwarns.append( - await GetTranslatedText( - guildid, "warns_line_loop", EMOJIS=emojis, SUBREASON=SubReason, DDT=ddt - ) - ) + ddt = int(str(dt)[:str(dt).find(".")]) + allwarns.append(await GetTranslatedText(guildid, + "warns_line_loop", + EMOJIS=emojis, + SUBREASON=SubReason, + DDT=ddt)) c = c + 1 return allwarns async def GetAutomodCustomWords(guildid: int, mode: str): wtype = 1 if mode == "allow" else 0 - cur.execute( - "SELECT word FROM customWords WHERE guildid = ? AND type = ?", (guildid, wtype) - ) + cur.execute("SELECT word FROM customWords WHERE guildid = ? AND type = ?", + (guildid, wtype)) words = cur.fetchall() a = [] if len(words) > 0: @@ -321,7 +313,8 @@ async def AddDeniedWord(guildid: int, userid: int, word: str): async def GetSettings(guildid: int, index: int): - cur.execute("SELECT * FROM settings WHERE guildid = ? LIMIT 1", (guildid,)) + cur.execute("SELECT * FROM settings WHERE guildid = ? LIMIT 1", + (guildid, )) rows = cur.fetchall() if len(rows) > 0: return rows[0][index] @@ -333,9 +326,8 @@ async def GetTranslatedText(guildid: int, index: str, **replace): global languages dbLanguageRecord = await GetSettings(guildid, 2) - currentLanguage = ( - "en" if dbLanguageRecord == 0 or dbLanguageRecord == None else dbLanguageRecord - ) + currentLanguage = ("en" if dbLanguageRecord == 0 + or dbLanguageRecord == None else dbLanguageRecord) text = languages[currentLanguage].get(index, "Word not translated yet.") for oldString, newString in replace.items(): @@ -354,11 +346,14 @@ async def SendMetric(commandName: str): async def SaveSetting(guildid: int, module: str, value: str): - cur.execute("SELECT * FROM settings WHERE guildid = ? LIMIT 1", (guildid,)) + cur.execute("SELECT * FROM settings WHERE guildid = ? LIMIT 1", + (guildid, )) rows = cur.fetchall() # print(rows) - if len(rows) > 0: # cur.execute('INSERT INTO foo (a,b) values (?,?)', (strA, strB)) + if len( + rows + ) > 0: # cur.execute('INSERT INTO foo (a,b) values (?,?)', (strA, strB)) query = f"""UPDATE settings SET {module}=? WHERE guildid=?""" @@ -390,18 +385,20 @@ def GenerateChart(datasets): qc.device_pixel_ratio = 2.0 qc.config = { "type": "line", - "data": {"datasets": datasets}, + "data": { + "datasets": datasets + }, "options": { "scales": { - "xAxes": [ - { - "type": "time", - "time": { - "parser": "YYYY-MM-DD HH:mm:ss", - "displayFormats": {"day": "DD/MM/YYYY"}, + "xAxes": [{ + "type": "time", + "time": { + "parser": "YYYY-MM-DD HH:mm:ss", + "displayFormats": { + "day": "DD/MM/YYYY" }, - } - ] + }, + }] } }, } @@ -418,11 +415,10 @@ async def SendMessageTo(ctx, member, message): await member.send(message) except: await ctx.respond( - embed=ErrorEmbed( - await GetTranslatedText( - ctx.guild.id, "error_deliver_msg", USERNAME=filterMember(member) - ) - ), + embed=ErrorEmbed(await + GetTranslatedText(ctx.guild.id, + "error_deliver_msg", + USERNAME=filterMember(member))), ephemeral=True, ) @@ -437,7 +433,8 @@ def ErrorEmbed(error): embed = Embed(title=f":no_entry_sign: Error!", description=error) embed.set_thumbnail( - url="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Ficonsplace.com%2Fwp-content%2Fuploads%2F_icons%2Fff0000%2F256%2Fpng%2Ferror-icon-14-256.png&f=1&nofb=1" + url= + "https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Ficonsplace.com%2Fwp-content%2Fuploads%2F_icons%2Fff0000%2F256%2Fpng%2Ferror-icon-14-256.png&f=1&nofb=1" ) embed.set_footer( @@ -562,8 +559,10 @@ async def on_message(message): if settings != 1: return # user has disabled Automod or does not have it installed words = message.content.split() - allowed_words_guild_list = await GetAutomodCustomWords(message.guild.id, "allow") - denied_words_guild_list = await GetAutomodCustomWords(message.guild.id, "deny") + allowed_words_guild_list = await GetAutomodCustomWords( + message.guild.id, "allow") + denied_words_guild_list = await GetAutomodCustomWords( + message.guild.id, "deny") print("scanned: ", message.content) for word in words: # print("scanning word:",word) @@ -592,19 +591,22 @@ async def on_message(message): description=descr, ) embed.set_footer( - text=await GetTranslatedText(message.guild.id, "automod_warn_footer"), + text=await GetTranslatedText(message.guild.id, + "automod_warn_footer"), icon_url=hammericon, ) embed.set_thumbnail(url=member.display_avatar) warn = await AddWarning( member.id, message.guild.id, - await GetTranslatedText(message.guild.id, "automod_warn_reason"), + await GetTranslatedText(message.guild.id, + "automod_warn_reason"), ) await SendMetric("automod") s = "s" if warn > 1 else "" embed.add_field( - name=await GetTranslatedText(message.guild.id, "automod_count_title"), + name=await GetTranslatedText(message.guild.id, + "automod_count_title"), value=await GetTranslatedText( message.guild.id, "automod_count_description", @@ -615,14 +617,13 @@ async def on_message(message): inline=True, ) bannedmessage = ( - message.content[: message.content.find(originalWord)] - + "~~" - + word - + "~~" - + message.content[message.content.find(originalWord) + len(word) :] - ) + message.content[:message.content.find(originalWord)] + "~~" + + word + "~~" + + message.content[message.content.find(originalWord) + + len(word):]) embed.add_field( - name=await GetTranslatedText(message.guild.id, "automod_removed_title"), + name=await GetTranslatedText(message.guild.id, + "automod_removed_title"), value=await GetTranslatedText( message.guild.id, "automod_removed_description", @@ -631,12 +632,10 @@ async def on_message(message): inline=True, ) embed.add_field( - name=await GetTranslatedText( - message.guild.id, "automod_nothappy_title" - ), - value=await GetTranslatedText( - message.guild.id, "automod_nothappy_description" - ), + name=await GetTranslatedText(message.guild.id, + "automod_nothappy_title"), + value=await GetTranslatedText(message.guild.id, + "automod_nothappy_description"), inline=False, ) await message.channel.send(embed=embed) @@ -647,24 +646,19 @@ async def on_message(message): except: embed = ErrorEmbed( - await message.channel.send( - embed=ErrorEmbed( - await GetTranslatedText( - message.guild.id, - "error_deliver_msg", - USERNAME=filterMember(member), - ) - ), - ), - ) + await message.channel.send(embed=ErrorEmbed( + await GetTranslatedText( + message.guild.id, + "error_deliver_msg", + USERNAME=filterMember(member), + )), ), ) message.channel.send(embed=embed) @bot.event async def on_ready(): - await bot.change_presence( - activity=discord.Activity(type=discord.ActivityType.watching, name="you") - ) + await bot.change_presence(activity=discord.Activity( + type=discord.ActivityType.watching, name="you")) print("HAMMER BOT Ready!", datetime.datetime.now()) botname = await bot.application_info() print("logged in as:", botname.name) @@ -681,7 +675,9 @@ async def on_ready(): debug = False # ALWAYS FALSE! -@bot.slash_command(guild_only=True, name="hello", guild_ids=[int(SECURITY_GUILD)]) +@bot.slash_command(guild_only=True, + name="hello", + guild_ids=[int(SECURITY_GUILD)]) async def hello(ctx): await ctx.defer() await SendMetric("hello") @@ -693,9 +689,10 @@ async def hello(ctx): async def on_command_error(ctx, error): if isinstance(error, commands.MissingRequiredArgument): await ctx.respond( - await GetTranslatedText( - ctx.guild.id, "error_404", ERROR=error, COMMAND_PREFIX=COMMAND_PREFIX - ), + await GetTranslatedText(ctx.guild.id, + "error_404", + ERROR=error, + COMMAND_PREFIX=COMMAND_PREFIX), ephemeral=True, ) if isinstance(error, commands.MissingPermissions): @@ -740,18 +737,18 @@ async def whois(ctx, member: discord.Member): WARNS=await GetWarnings(member.id, ctx.guild.id), ) embed = Embed( - title=await GetTranslatedText( - ctx.guild.id, "whois_title", MEMBER=filterMember(member) - ), + title=await GetTranslatedText(ctx.guild.id, + "whois_title", + MEMBER=filterMember(member)), description=descr, ) embed.set_thumbnail(url=member.display_avatar) embed.set_footer( - text=await GetTranslatedText( - ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) - ), + text=await GetTranslatedText(ctx.guild.id, + "footer_executed_by", + USERNAME=filterMember(ctx.author)), icon_url=hammericon, ) await ctx.respond(embed=embed) @@ -764,36 +761,37 @@ async def whois(ctx, member: discord.Member): name="ban", description="Keeps out a user permanently, forbidding its entry", ) -@discord.default_permissions( - ban_members=True, -) +@discord.default_permissions(ban_members=True, ) async def ban(ctx, member: discord.Member, *, reason=None): await SendMetric("ban") if member == ctx.author: - await ctx.respond( - await GetTranslatedText(ctx.guild.id, "error_self_ban"), ephemeral=True - ) + await ctx.respond(await GetTranslatedText(ctx.guild.id, + "error_self_ban"), + ephemeral=True) return if reason == None: - reason = await GetTranslatedText(ctx.guild.id, "punishment_default_reason") - message = await GetTranslatedText( - ctx.guild.id, "ban_msg", GUILD=ctx.guild.name, REASON=reason - ) - - descr = await GetTranslatedText( - ctx.guild.id, "ban_description", MEMBER=filterMember(member), REASON=reason - ) + reason = await GetTranslatedText(ctx.guild.id, + "punishment_default_reason") + message = await GetTranslatedText(ctx.guild.id, + "ban_msg", + GUILD=ctx.guild.name, + REASON=reason) + + descr = await GetTranslatedText(ctx.guild.id, + "ban_description", + MEMBER=filterMember(member), + REASON=reason) embed = Embed( - title=await GetTranslatedText( - ctx.guild.id, "ban_title", MEMBER=filterMember(member) - ), + title=await GetTranslatedText(ctx.guild.id, + "ban_title", + MEMBER=filterMember(member)), description=descr, ) embed.set_image(url="https://i.imgflip.com/19zat3.jpg") embed.set_footer( - text=await GetTranslatedText( - ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) - ), + text=await GetTranslatedText(ctx.guild.id, + "footer_executed_by", + USERNAME=filterMember(ctx.author)), icon_url=hammericon, ) if not debug: @@ -801,11 +799,10 @@ async def ban(ctx, member: discord.Member, *, reason=None): await member.ban(reason=reason) except: await ctx.respond( - embed=ErrorEmbed( - await GetTranslatedText( - ctx.guild.id, "error_ban_perm", MEMBER=filterMember(member) - ) - ), + embed=ErrorEmbed(await GetTranslatedText( + ctx.guild.id, + "error_ban_perm", + MEMBER=filterMember(member))), ephemeral=True, ) return @@ -815,50 +812,50 @@ async def ban(ctx, member: discord.Member, *, reason=None): await SendMessageTo(ctx, member, message) -@bot.slash_command( - guild_only=True, name="kick", description="Kicks out a member from the server" -) -@discord.default_permissions( - kick_members=True, -) +@bot.slash_command(guild_only=True, + name="kick", + description="Kicks out a member from the server") +@discord.default_permissions(kick_members=True, ) async def kick(ctx, member: discord.Member, *, reason=None): await SendMetric("kick") if member == ctx.author: - await ctx.respond( - await GetTranslatedText(ctx.guild.id, "error_self_kick"), ephemeral=True - ) + await ctx.respond(await GetTranslatedText(ctx.guild.id, + "error_self_kick"), + ephemeral=True) return if reason == None: - reason = await GetTranslatedText(ctx.guild.id, "punishment_default_reason") - message = await GetTranslatedText( - ctx.guild.id, "kick_msg", GUILD=ctx.guild.name, REASON=reason - ) + reason = await GetTranslatedText(ctx.guild.id, + "punishment_default_reason") + message = await GetTranslatedText(ctx.guild.id, + "kick_msg", + GUILD=ctx.guild.name, + REASON=reason) if not debug: try: await member.kick(reason=reason) except: ctx.respond( - embed=ErrorEmbed( - await GetTranslatedText( - ctx.guild.id, "error_kick_perm", MEMBER=filterMember(member) - ) - ), + embed=ErrorEmbed(await GetTranslatedText( + ctx.guild.id, + "error_kick_perm", + MEMBER=filterMember(member))), ephemeral=True, ) return - descr = await GetTranslatedText( - ctx.guild.id, "kick_description", MEMBER=filterMember(member), REASON=reason - ) + descr = await GetTranslatedText(ctx.guild.id, + "kick_description", + MEMBER=filterMember(member), + REASON=reason) embed = Embed( - title=await GetTranslatedText( - ctx.guild.id, "kick_title", MEMBER=filterMember(member) - ), + title=await GetTranslatedText(ctx.guild.id, + "kick_title", + MEMBER=filterMember(member)), description=descr, ) embed.set_footer( - text=await GetTranslatedText( - ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) - ), + text=await GetTranslatedText(ctx.guild.id, + "footer_executed_by", + USERNAME=filterMember(ctx.author)), icon_url=hammericon, ) embed.set_thumbnail(url=member.display_avatar) @@ -877,34 +874,37 @@ async def kick(ctx, member: discord.Member, *, reason=None): description="Select on/off", autocomplete=discord.utils.basic_autocomplete(["on", "off"]), ) -@discord.default_permissions( - administrator=True, -) -async def warn(ctx, member: discord.Member, reason=None, softwarn: bool = False): +@discord.default_permissions(administrator=True, ) +async def warn(ctx, + member: discord.Member, + reason=None, + softwarn: bool = False): await SendMetric("warn") if member == ctx.author: - await ctx.respond( - await GetTranslatedText(ctx.guild.id, "error_self_warn"), ephemeral=True - ) + await ctx.respond(await GetTranslatedText(ctx.guild.id, + "error_self_warn"), + ephemeral=True) return if reason == None: - reason = await GetTranslatedText(ctx.guild.id, "punishment_default_reason") + reason = await GetTranslatedText(ctx.guild.id, + "punishment_default_reason") message = await GetTranslatedText(ctx.guild.id, "warn_msg", REASON=reason) - descr = await GetTranslatedText( - ctx.guild.id, "warn_description", MEMBER=filterMember(member), REASON=reason - ) + descr = await GetTranslatedText(ctx.guild.id, + "warn_description", + MEMBER=filterMember(member), + REASON=reason) embed = Embed( - title=await GetTranslatedText( - ctx.guild.id, "warn_title", MEMBER=filterMember(member) - ), + title=await GetTranslatedText(ctx.guild.id, + "warn_title", + MEMBER=filterMember(member)), description=descr, ) embed.set_footer( - text=await GetTranslatedText( - ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) - ), + text=await GetTranslatedText(ctx.guild.id, + "footer_executed_by", + USERNAME=filterMember(ctx.author)), icon_url=hammericon, ) embed.set_thumbnail(url=member.display_avatar) @@ -930,11 +930,10 @@ async def warn(ctx, member: discord.Member, reason=None, softwarn: bool = False) @bot.slash_command( guild_only=True, name="softwarn", - description="Sets a silent warning for a user, at 3 warns/strikes they get kicked", -) -@discord.default_permissions( - administrator=True, + description= + "Sets a silent warning for a user, at 3 warns/strikes they get kicked", ) +@discord.default_permissions(administrator=True, ) async def softwarn(ctx, member: discord.Member, reason=None): await SendMetric("softwarn") await warn(ctx, member, reason, True) @@ -945,9 +944,7 @@ async def softwarn(ctx, member: discord.Member, reason=None): name="seewarns", description="Displays the warn history of a user in the guild", ) -@discord.default_permissions( - administrator=True, -) +@discord.default_permissions(administrator=True, ) async def seewarns(ctx, member: discord.Member): await SendMetric("seewarns") allwarns = await getAllWarns(member.id, ctx.guild.id) @@ -961,105 +958,105 @@ async def seewarns(ctx, member: discord.Member): for warn in await GetWarnings(member.id, ctx.guild.id, fullData=True): _, _, _, _, timestamp = warn c = c + 1 - data.append( - { - "t": str( - datetime.datetime.fromtimestamp( - int(str(timestamp)[: str(timestamp).find(".")]) - ) - ), - "y": c, - } - ) - - uurl = GenerateChart( - [ - { - "fill": False, - "label": [ - await GetTranslatedText( - ctx.guild.id, - "seewarns_chart_title", - MEMBER=filterMember(member), - ) - ], - "lineTension": 0, - "backgroundColor": "#7289DA", - "borderColor": "#7289DA", - "data": data, - } - ] - ) + data.append({ + "t": + str( + datetime.datetime.fromtimestamp( + int(str(timestamp)[:str(timestamp).find(".")]))), + "y": + c, + }) + + uurl = GenerateChart([{ + "fill": + False, + "label": [ + await GetTranslatedText( + ctx.guild.id, + "seewarns_chart_title", + MEMBER=filterMember(member), + ) + ], + "lineTension": + 0, + "backgroundColor": + "#7289DA", + "borderColor": + "#7289DA", + "data": + data, + }]) embed = Embed( - title=await GetTranslatedText( - ctx.guild.id, "seewarns_title", MEMBER=filterMember(member) - ), + title=await GetTranslatedText(ctx.guild.id, + "seewarns_title", + MEMBER=filterMember(member)), description=message, ) embed.set_image(url=uurl) embed.set_footer( - text=await GetTranslatedText( - ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) - ), + text=await GetTranslatedText(ctx.guild.id, + "footer_executed_by", + USERNAME=filterMember(ctx.author)), icon_url=hammericon, ) return await ctx.respond(embed=embed) -@bot.slash_command( - guild_only=True, name="unwarn", description="Removes a strike from a user" -) -@discord.default_permissions( - kick_members=True, -) +@bot.slash_command(guild_only=True, + name="unwarn", + description="Removes a strike from a user") +@discord.default_permissions(kick_members=True, ) async def unwarn(ctx, member: discord.Member, id: int = None, *, reason=None): await SendMetric("unwarn") if await GetWarnings(member.id, ctx.guild.id) == 0: - return await ctx.respond( - await GetTranslatedText(ctx.guild.id, "unwarn_no_warns") - ) + return await ctx.respond(await + GetTranslatedText(ctx.guild.id, + "unwarn_no_warns")) if id == None: - descriptionMsg = await GetTranslatedText(ctx.guild.id, "unwarn_description_msg") + descriptionMsg = await GetTranslatedText(ctx.guild.id, + "unwarn_description_msg") embed = Embed( - title=await GetTranslatedText(ctx.guild.id, "unwarn_wrong_selection"), + title=await GetTranslatedText(ctx.guild.id, + "unwarn_wrong_selection"), description=descriptionMsg, ) allwarns = await getAllWarns(member.id, ctx.guild.id) embed.add_field( - name=await GetTranslatedText( - ctx.guild.id, "seewarns_title", MEMBER=filterMember(member) - ), + name=await GetTranslatedText(ctx.guild.id, + "seewarns_title", + MEMBER=filterMember(member)), value="\n".join(allwarns), ) return await ctx.respond(embed=embed) if reason == None: - reason = await GetTranslatedText(ctx.guild.id, "unpunishment_default_reason") - message = await GetTranslatedText(ctx.guild.id, "unwarn_msg", REASON=reason) - - descr = await GetTranslatedText( - ctx.guild.id, "unwarn_description", MEMBER=filterMember(member), REASON=reason - ) + reason = await GetTranslatedText(ctx.guild.id, + "unpunishment_default_reason") + message = await GetTranslatedText(ctx.guild.id, + "unwarn_msg", + REASON=reason) + + descr = await GetTranslatedText(ctx.guild.id, + "unwarn_description", + MEMBER=filterMember(member), + REASON=reason) embed = Embed( - title=await GetTranslatedText( - ctx.guild.id, "unwarn_title", MEMBER=filterMember(member) - ), + title=await GetTranslatedText(ctx.guild.id, + "unwarn_title", + MEMBER=filterMember(member)), description=descr, ) embed.set_footer( - text=await GetTranslatedText( - ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) - ), + text=await GetTranslatedText(ctx.guild.id, + "footer_executed_by", + USERNAME=filterMember(ctx.author)), icon_url=hammericon, ) embed.set_thumbnail(url=member.display_avatar) warn = await Removewarn(member.id, ctx.guild.id, id) - s = ( - await GetTranslatedText(ctx.guild.id, "plural_warn") - if warn != 1 - else await GetTranslatedText(ctx.guild.id, "singular_warn") - ) + s = (await GetTranslatedText(ctx.guild.id, "plural_warn") if warn != 1 else + await GetTranslatedText(ctx.guild.id, "singular_warn")) congrats = "Yey! :tada:" if warn == 0 else "" embed.add_field( name=await GetTranslatedText(ctx.guild.id, "automod_count_title"), @@ -1077,17 +1074,18 @@ async def unwarn(ctx, member: discord.Member, id: int = None, *, reason=None): await SendMessageTo(ctx, member, message) -@bot.slash_command( - guild_only=True, name="clearwarns", description="Removes all strikes from a user" -) -@discord.default_permissions( - kick_members=True, -) +@bot.slash_command(guild_only=True, + name="clearwarns", + description="Removes all strikes from a user") +@discord.default_permissions(kick_members=True, ) async def clearwarns(ctx, member: discord.Member, *, reason=None): await SendMetric("clearwarns") if reason == None: - reason = await GetTranslatedText(ctx.guild.id, "unpunishment_default_reason") - message = await GetTranslatedText(ctx.guild.id, "clearwarns_msg", REASON=reason) + reason = await GetTranslatedText(ctx.guild.id, + "unpunishment_default_reason") + message = await GetTranslatedText(ctx.guild.id, + "clearwarns_msg", + REASON=reason) descr = await GetTranslatedText( ctx.guild.id, @@ -1096,15 +1094,15 @@ async def clearwarns(ctx, member: discord.Member, *, reason=None): REASON=reason, ) embed = Embed( - title=await GetTranslatedText( - ctx.guild.id, "clearwarns_title", MEMBER=filterMember(member) - ), + title=await GetTranslatedText(ctx.guild.id, + "clearwarns_title", + MEMBER=filterMember(member)), description=descr, ) embed.set_footer( - text=await GetTranslatedText( - ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) - ), + text=await GetTranslatedText(ctx.guild.id, + "footer_executed_by", + USERNAME=filterMember(ctx.author)), icon_url=hammericon, ) embed.set_thumbnail(url=member.display_avatar) @@ -1130,9 +1128,7 @@ async def clearwarns(ctx, member: discord.Member, *, reason=None): name="automod", description="Customizes in this guild Hammer's automod", ) -@discord.default_permissions( - administrator=True, -) +@discord.default_permissions(administrator=True, ) @option( "action", description="Select add/remove word from swear list", @@ -1146,9 +1142,8 @@ async def automod(ctx, action: str, word: str): response = await AddDeniedWord(ctx.guild.id, ctx.author.id, word) else: return await ctx.respond( - embed=ErrorEmbed( - await GetTranslatedText(ctx.guild.id, "error_automod_syntax") - ), + embed=ErrorEmbed(await GetTranslatedText(ctx.guild.id, + "error_automod_syntax")), ephemeral=True, ) if response: @@ -1165,9 +1160,9 @@ async def automod(ctx, action: str, word: str): ) else: return await ctx.respond( - embed=ErrorEmbed( - await GetTranslatedText(ctx.guild.id, "error_automod", WORD=word) - ), + embed=ErrorEmbed(await GetTranslatedText(ctx.guild.id, + "error_automod", + WORD=word)), ephemeral=True, ) @@ -1258,35 +1253,30 @@ async def restart(ctx): @bot.slash_command( guild_only=True, name="setdelay", - description="Updates the message delay in a channel with a set of custom time interval", -) -@discord.default_permissions( - manage_messages=True, + description= + "Updates the message delay in a channel with a set of custom time interval", ) +@discord.default_permissions(manage_messages=True, ) async def setdelay(ctx, seconds: float, reason: str = ""): await SendMetric("setdelay") - m = ( - await GetTranslatedText(ctx.guild.id, "modified") - if seconds > 0.0 - else await GetTranslatedText(ctx.guild.id, "removed") - ) - reason = ( - ((await GetTranslatedText(ctx.guild.id, "for")) + reason) - if reason != "" and reason != None - else "" - ) + m = (await GetTranslatedText(ctx.guild.id, "modified") if seconds > 0.0 + else await GetTranslatedText(ctx.guild.id, "removed")) + reason = (((await GetTranslatedText(ctx.guild.id, "for")) + + reason) if reason != "" and reason != None else "") embed = Embed( - title=await GetTranslatedText( - ctx.guild.id, "setdelay_title", M=m, CHANNEL=ctx.channel - ), - description=await GetTranslatedText( - ctx.guild.id, "setdelay_description", SECONDS=seconds, REASON=reason - ), + title=await GetTranslatedText(ctx.guild.id, + "setdelay_title", + M=m, + CHANNEL=ctx.channel), + description=await GetTranslatedText(ctx.guild.id, + "setdelay_description", + SECONDS=seconds, + REASON=reason), ) embed.set_footer( - text=await GetTranslatedText( - ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) - ), + text=await GetTranslatedText(ctx.guild.id, + "footer_executed_by", + USERNAME=filterMember(ctx.author)), icon_url=hammericon, ) @@ -1300,9 +1290,7 @@ async def setdelay(ctx, seconds: float, reason: str = ""): name="mute", description="Removes the hability to talk or join voice channels to a user", ) -@discord.default_permissions( - manage_messages=True, -) +@discord.default_permissions(manage_messages=True, ) async def mute(ctx, member: discord.Member, *, reason=None): await SendMetric("mute") guild = ctx.guild @@ -1321,15 +1309,17 @@ async def mute(ctx, member: discord.Member, *, reason=None): ) if reason == None: - reason = await GetTranslatedText(ctx.guild.id, "punishment_default_reason") + reason = await GetTranslatedText(ctx.guild.id, + "punishment_default_reason") embed = discord.Embed( - title=await GetTranslatedText( - ctx.guild.id, "mute_title", MEMBER=filterMember(member) - ), - description=await GetTranslatedText( - ctx.guild.id, "mute_description", MENTION=member.mention, REASON=reason - ), + title=await GetTranslatedText(ctx.guild.id, + "mute_title", + MEMBER=filterMember(member)), + description=await GetTranslatedText(ctx.guild.id, + "mute_description", + MENTION=member.mention, + REASON=reason), colour=discord.Colour.red(), ) await ctx.respond(embed=embed) @@ -1338,9 +1328,10 @@ async def mute(ctx, member: discord.Member, *, reason=None): SendMessageTo( ctx, member, - await GetTranslatedText( - ctx.guild.id, "mute_msg", GUILD=ctx.guild.name, REASON=reason - ), + await GetTranslatedText(ctx.guild.id, + "mute_msg", + GUILD=ctx.guild.name, + REASON=reason), ) @@ -1348,11 +1339,10 @@ async def mute(ctx, member: discord.Member, *, reason=None): @bot.slash_command( guild_only=True, name="unmute", - description="Restores the hability to talk or join voice channels to a user", -) -@discord.default_permissions( - manage_messages=True, + description= + "Restores the hability to talk or join voice channels to a user", ) +@discord.default_permissions(manage_messages=True, ) async def unmute(ctx, member: discord.Member, *, reason=None): await SendMetric("unmute") mutedRole = discord.utils.get(ctx.guild.roles, name="Muted") @@ -1364,17 +1354,19 @@ async def unmute(ctx, member: discord.Member, *, reason=None): SendMessageTo( ctx, member, - await GetTranslatedText( - ctx.guild.id, "unmute_msg", GUILD=ctx.guild.name, REASON=reason - ), + await GetTranslatedText(ctx.guild.id, + "unmute_msg", + GUILD=ctx.guild.name, + REASON=reason), ) embed = discord.Embed( - title=await GetTranslatedText( - ctx.guild.id, "unmute_title", MEMBER=filterMember(member) - ), - description=await GetTranslatedText( - ctx.guild.id, "unmute_description", MENTION=member.mention, REASON=reason - ), + title=await GetTranslatedText(ctx.guild.id, + "unmute_title", + MEMBER=filterMember(member)), + description=await GetTranslatedText(ctx.guild.id, + "unmute_description", + MENTION=member.mention, + REASON=reason), colour=discord.Colour.light_gray(), ) await ctx.respond(embed=embed) @@ -1394,15 +1386,17 @@ async def lock(ctx, channel: discord.TextChannel = None, reason=None): overwrite.send_messages = False await channel.set_permissions(ctx.guild.default_role, overwrite=overwrite) embed = Embed( - title=await GetTranslatedText(ctx.guild.id, "lock_title", CHANNEL=ctx.channel), - description=await GetTranslatedText( - ctx.guild.id, "lock_description", REASON=reason - ), + title=await GetTranslatedText(ctx.guild.id, + "lock_title", + CHANNEL=ctx.channel), + description=await GetTranslatedText(ctx.guild.id, + "lock_description", + REASON=reason), ) embed.set_footer( - text=await GetTranslatedText( - ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) - ), + text=await GetTranslatedText(ctx.guild.id, + "footer_executed_by", + USERNAME=filterMember(ctx.author)), icon_url=hammericon, ) await ctx.respond(embed=embed) @@ -1412,7 +1406,8 @@ async def lock(ctx, channel: discord.TextChannel = None, reason=None): @bot.slash_command( guild_only=True, name="unlock", - description="Removes the blocking in a channel from not being used as a chat.", + description= + "Removes the blocking in a channel from not being used as a chat.", ) async def unlock(ctx, channel: discord.TextChannel = None, reason=None): await SendMetric("unlock") @@ -1422,17 +1417,17 @@ async def unlock(ctx, channel: discord.TextChannel = None, reason=None): overwrite.send_messages = True await channel.set_permissions(ctx.guild.default_role, overwrite=overwrite) embed = Embed( - title=await GetTranslatedText( - ctx.guild.id, "unlock_title", CHANNEL=ctx.channel - ), - description=await GetTranslatedText( - ctx.guild.id, "unlock_description", REASON=reason - ), + title=await GetTranslatedText(ctx.guild.id, + "unlock_title", + CHANNEL=ctx.channel), + description=await GetTranslatedText(ctx.guild.id, + "unlock_description", + REASON=reason), ) embed.set_footer( - text=await GetTranslatedText( - ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) - ), + text=await GetTranslatedText(ctx.guild.id, + "footer_executed_by", + USERNAME=filterMember(ctx.author)), icon_url=hammericon, ) await ctx.respond(embed=embed) @@ -1445,13 +1440,14 @@ async def unlock(ctx, channel: discord.TextChannel = None, reason=None): async def suggest(ctx, suggestion: str): await SendMetric("suggest") embed = Embed( - title=f"The user {filterMember(ctx.author)} has posted a suggestion! :hammer_pick:", + title= + f"The user {filterMember(ctx.author)} has posted a suggestion! :hammer_pick:", description=f"{suggestion}", ) embed.set_footer( - text=await GetTranslatedText( - ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) - ), + text=await GetTranslatedText(ctx.guild.id, + "footer_executed_by", + USERNAME=filterMember(ctx.author)), icon_url=hammericon, ) suggestionChannel = bot.get_channel(int(DEV_SUGGESTIONS_CHANNEL)) @@ -1470,12 +1466,13 @@ async def invite(ctx): await SendMetric("invite") embed = Embed( title=await GetTranslatedText(ctx.guild.id, "hammer_invite"), - description=f"[**🔗{await GetTranslatedText(ctx.guild.id, 'hammer_link')}**](https://discordapp.com/api/oauth2/authorize?client_id=591633652493058068&permissions=8&scope=bot)", + description= + f"[**🔗{await GetTranslatedText(ctx.guild.id, 'hammer_link')}**](https://discordapp.com/api/oauth2/authorize?client_id=591633652493058068&permissions=8&scope=bot)", ) embed.set_footer( - text=await GetTranslatedText( - ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) - ), + text=await GetTranslatedText(ctx.guild.id, + "footer_executed_by", + USERNAME=filterMember(ctx.author)), icon_url=hammericon, ) await ctx.respond(embed=embed) @@ -1485,9 +1482,9 @@ async def invite(ctx): @discord.default_permissions(administrator=True) -@bot.slash_command( - name="settings", description="Modifies some Hammer config values", guild_only=True -) +@bot.slash_command(name="settings", + description="Modifies some Hammer config values", + guild_only=True) @option( "module", description="Pick a module to switch!", @@ -1496,7 +1493,8 @@ async def invite(ctx): @option( "value", description="Select on/off", - autocomplete=discord.utils.basic_autocomplete(["on", "off", "en", "cat", "es"]), + autocomplete=discord.utils.basic_autocomplete( + ["on", "off", "en", "cat", "es"]), ) async def settings(ctx, module: str = None, value: str = None): await SendMetric("settings") @@ -1508,9 +1506,10 @@ async def settings(ctx, module: str = None, value: str = None): await SaveSetting(ctx.guild.id, module, value) action = "enabled" if value else "disabled" await ctx.respond( - await GetTranslatedText( - ctx.guild.id, "settings_module", MODULE=module, ACTION=action - ), + await GetTranslatedText(ctx.guild.id, + "settings_module", + MODULE=module, + ACTION=action), ephemeral=True, ) @@ -1532,7 +1531,8 @@ async def settings(ctx, module: str = None, value: str = None): await GetTranslatedText( ctx.guild.id, "error_settings_syntax", - COMMAND="/settings language " + "/".join(languagesOptions), + COMMAND="/settings language " + + "/".join(languagesOptions), ), ephemeral=True, ) @@ -1560,20 +1560,19 @@ async def settings(ctx, module: str = None, value: str = None): return embed = Embed( title=await GetTranslatedText(ctx.guild.id, "settings_title"), - description=await GetTranslatedText(ctx.guild.id, "settings_description"), + description=await GetTranslatedText(ctx.guild.id, + "settings_description"), ) print("getting settings from discord.Guild.id", ctx.guild.id) automodStatus = await GetSettings(ctx.guild.id, 1) automodStatustr = "**✅ ON**" if automodStatus else "**❌ OFF**" recommendedactivityAutomod = ( - await GetTranslatedText( - ctx.guild.id, "settings_disable_automod", COMMAND_PREFIX=COMMAND_PREFIX - ) - if automodStatus - else await GetTranslatedText( - ctx.guild.id, "settings_enable_automod", COMMAND_PREFIX=COMMAND_PREFIX - ) - ) + await GetTranslatedText(ctx.guild.id, + "settings_disable_automod", + COMMAND_PREFIX=COMMAND_PREFIX) if automodStatus + else await GetTranslatedText(ctx.guild.id, + "settings_enable_automod", + COMMAND_PREFIX=COMMAND_PREFIX)) embed.add_field( name=await GetTranslatedText(ctx.guild.id, "help_automod_title"), value=await GetTranslatedText( @@ -1602,9 +1601,9 @@ async def settings(ctx, module: str = None, value: str = None): inline=False, ) embed.set_footer( - text=await GetTranslatedText( - ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) - ), + text=await GetTranslatedText(ctx.guild.id, + "footer_executed_by", + USERNAME=filterMember(ctx.author)), icon_url=hammericon, ) await ctx.respond(embed=embed) @@ -1621,48 +1620,44 @@ async def metrics(ctx): _, commandType, timestamp = metric commandDict[commandType] = commandDict.get(commandType, 0) + 1 provList = finalList.get(commandType, []) - provList.append( - { - "t": str(datetime.datetime.fromtimestamp(int(timestamp))), - "y": commandDict[commandType], - } - ) + provList.append({ + "t": + str(datetime.datetime.fromtimestamp(int(timestamp))), + "y": + commandDict[commandType], + }) finalList[commandType] = provList # prepare datasets final = [] for ( - command, - data, + command, + data, ) in finalList.items(): - final.append( - { - "fill": False, - "label": [command], - "lineTension": 0, - "data": data, - } - ) + final.append({ + "fill": False, + "label": [command], + "lineTension": 0, + "data": data, + }) uurl = GenerateChart(final) embed = Embed( title="Lifetime Metrics (since 25-08-23)", - description="The following command have been used:" - + " ".join( - [ - cmd + ": " + str(times) + " times" - for cmd, times in commandDict.items() - ] - ), + description="The following command have been used:" + " ".join([ + cmd + ": " + str(times) + " times" + for cmd, times in commandDict.items() + ]), ) if len(uurl) > 2048: embed.set_image(url=uurl) else: - embed.add_field("Graph URL :link:", f"[Click Here to visualize](${uurl})") + embed.add_field("Graph URL :link:", + f"[Click Here to visualize](${uurl})") embed.set_footer( - text=await GetTranslatedText( - ctx.guild.id, "footer_executed_by", USERNAME=filterMember(ctx.author) - ), + text=await GetTranslatedText(ctx.guild.id, + "footer_executed_by", + USERNAME=filterMember(ctx.author)), icon_url=hammericon, ) return await ctx.respond(embed=embed)