Renaming modmail to guild.py

pull/8/head
sgoudham 4 years ago
parent 5ca6717b0e
commit 458ce48f4a

@ -10,7 +10,8 @@ from discord import File
from discord.ext.commands import has_permissions, Cog, group, bot_has_permissions from discord.ext.commands import has_permissions, Cog, group, bot_has_permissions
import db import db
from settings import enso_embedmod_colours, blank_space from db import connection
from settings import enso_embedmod_colours, blank_space, storage_modlog_for_guild, remove_modlog_channel
# Method to ask the user if they want to be anonymous or not # Method to ask the user if they want to be anonymous or not
@ -143,7 +144,7 @@ def SendMsgToModMail(self, msg, author):
# Set up the Cog # Set up the Cog
class Modmail(Cog): class Guild(Cog):
"""Modmail System!""" """Modmail System!"""
def __init__(self, bot): def __init__(self, bot):
@ -155,11 +156,136 @@ class Modmail(Cog):
"""Printing out that Cog is ready on startup""" """Printing out that Cog is ready on startup"""
print(f"{self.__class__.__name__} Cog has been loaded\n-----") print(f"{self.__class__.__name__} Cog has been loaded\n-----")
@group(invoke_without_command=True, usage="`[argument...]`")
@has_permissions(manage_guild=True)
@bot_has_permissions(administrator=True)
async def modlogs(self, ctx):
"""Setup/Update/Delete Modlogs System"""
pass
@modlogs.command()
@has_permissions(manage_guild=True)
@bot_has_permissions(administrator=True)
async def setup(self, ctx, channelID: int):
"""Setup a Channel for the Kick/Ban/Mute Actions to be Logged In"""
# Retrieve a list of channel id's in the guild
channels = [channel.id for channel in ctx.guild.channels]
# Setup pool
pool = await connection(db.loop)
# Setup pool connection and cursor
async with pool.acquire() as conn:
async with conn.cursor() as cur:
# Get the row of the guild
select_query = """SELECT * FROM guilds WHERE guildID = (%s)"""
val = ctx.guild.id,
# Execute the SQL Query
await cur.execute(select_query, val)
result = await cur.fetchone()
# Throw error if the modlog channel already exists and then stop the function
if result[2] is not None:
await ctx.send("Looks like this guild already has a **Modlogs Channel** set up!" +
f"\nPlease check **{ctx.prefix}help** for information on how to update/delete existing information")
return
# Abort the process if the channel does not exist within the guild
if channelID not in channels:
await ctx.send("**Invalid ChannelID Detected... Aborting Process**")
else:
# Set up the modlogs channel within the guild
mod_log_setup = True
await storage_modlog_for_guild(ctx, channelID, mod_log_setup)
@modlogs.command()
@has_permissions(manage_guild=True)
@bot_has_permissions(administrator=True)
async def update(self, ctx, channelID: int):
"""Change the Channel that your Modlogs are Sent to"""
# Retrieve a list of channel id's in the guild
channels = [channel.id for channel in ctx.guild.channels]
# Setup pool
pool = await connection(db.loop)
# Setup up pool connection and cursor
async with pool.acquire() as conn:
async with conn.cursor() as cur:
# Get the guilds row from the guilds table
select_query = """SELECT * FROM guilds WHERE guildID = (%s)"""
vals = ctx.guild.id,
# Execute the SQL Query
await cur.execute(select_query, vals)
result = await cur.fetchone()
# Throw error if the modlog channel already exists and then stop the function
if result[2] is None:
await ctx.send("Looks like this guild has not setup a **Modlogs Channel**" +
f"\nPlease check **{ctx.prefix}help** for information on how to update/delete existing information")
return
# Abort the process if the channel does not exist within the guild
if channelID not in channels:
await ctx.send("**Invalid ChannelID Detected... Aborting Process**")
else:
# Update the modlog channel within the database and cache
mod_log_setup = False
await storage_modlog_for_guild(ctx, channelID, mod_log_setup)
@modlogs.command()
@has_permissions(manage_guild=True)
@bot_has_permissions(administrator=True)
async def delete(self, ctx):
"""Delete the Existing Modlogs System"""
# Setup pool
pool = await connection(db.loop)
# Setup up pool connection and cursor
async with pool.acquire() as conn:
async with conn.cursor() as cur:
# Get the guilds row from the guilds table
select_query = """SELECT * FROM guilds WHERE guildID = (%s)"""
vals = ctx.guild.id,
# Execute the SQL Query
await cur.execute(select_query, vals)
result = await cur.fetchone()
# Throw error if the modlog channel already exists and then stop the function
if result[2] is None:
await ctx.send("Looks like this guild has not setup a **Modlogs Channel**" +
f"\nPlease check **{ctx.prefix}help** for information on how to update/delete existing information")
return
# Setup up pool connection and cursor
async with pool.acquire() as conn:
async with conn.cursor() as cur:
# Update the existing prefix within the database
update_query = """UPDATE guilds SET modlogs = NULL WHERE guildID = (%s)"""
update_vals = ctx.guild.id,
# Execute the query
await cur.execute(update_query, update_vals)
await conn.commit()
# Delete channel from cache
remove_modlog_channel(str(ctx.guild.id))
# Sending confirmation message that the modmail system has been deleted
await ctx.send("**Modlogs System** successfully deleted!" +
f"\nPlease do **{ctx.prefix}help** to find out how to set Modmail again!")
@group(invoke_without_command=True, usage="`[argument...]`") @group(invoke_without_command=True, usage="`[argument...]`")
@has_permissions(administrator=True) @has_permissions(administrator=True)
@bot_has_permissions(embed_links=True, read_messages=True, manage_messages=True, @bot_has_permissions(administrator=True)
manage_channels=True, read_message_history=True,
send_messages=True, attach_files=True)
async def modmail(self, ctx): async def modmail(self, ctx):
"""Setup/Update/Delete Modmail System""" """Setup/Update/Delete Modmail System"""
pass pass
@ -179,7 +305,7 @@ class Modmail(Cog):
channels = [channel.id for channel in ctx.guild.channels] channels = [channel.id for channel in ctx.guild.channels]
# Setup pool # Setup pool
pool = await db.connection(db.loop) pool = await connection(db.loop)
# Setup up pool connection and cursor # Setup up pool connection and cursor
async with pool.acquire() as conn: async with pool.acquire() as conn:
@ -270,9 +396,7 @@ class Modmail(Cog):
@modmail.command() @modmail.command()
@has_permissions(administrator=True) @has_permissions(administrator=True)
@bot_has_permissions(embed_links=True, read_messages=True, manage_messages=True, @bot_has_permissions(administrator=True)
manage_channels=True, read_message_history=True,
send_messages=True, attach_files=True)
async def update(self, ctx, channelID: int): async def update(self, ctx, channelID: int):
""" """
Update the Channel that the Modmail is logged to Update the Channel that the Modmail is logged to
@ -283,7 +407,7 @@ class Modmail(Cog):
channels = [channel.id for channel in ctx.guild.channels] channels = [channel.id for channel in ctx.guild.channels]
# Setup pool # Setup pool
pool = await db.connection(db.loop) pool = await connection(db.loop)
# Setup up pool connection and cursor # Setup up pool connection and cursor
async with pool.acquire() as conn: async with pool.acquire() as conn:
@ -334,14 +458,12 @@ class Modmail(Cog):
@modmail.command() @modmail.command()
@has_permissions(administrator=True) @has_permissions(administrator=True)
@bot_has_permissions(embed_links=True, read_messages=True, manage_messages=True, @bot_has_permissions(administrator=True)
manage_channels=True, read_message_history=True,
send_messages=True, attach_files=True)
async def delete(self, ctx): async def delete(self, ctx):
"""Delete the Entire Modmail System from the Guild""" """Delete the Entire Modmail System from the Guild"""
# Setup pool # Setup pool
pool = await db.connection(db.loop) pool = await connection(db.loop)
# Setup up pool connection and cursor # Setup up pool connection and cursor
async with pool.acquire() as conn: async with pool.acquire() as conn:
@ -398,7 +520,7 @@ class Modmail(Cog):
guildid = payload.guild_id guildid = payload.guild_id
# Setup pool # Setup pool
pool = await db.connection(db.loop) pool = await connection(db.loop)
# Setup up pool connection and cursor # Setup up pool connection and cursor
async with pool.acquire() as conn: async with pool.acquire() as conn:
@ -615,4 +737,4 @@ class Modmail(Cog):
def setup(bot): def setup(bot):
bot.add_cog(Modmail(bot)) bot.add_cog(Guild(bot))
Loading…
Cancel
Save