mirror of
https://github.com/Paillat-dev/Botator.git
synced 2026-01-02 17:24:55 +00:00
add remove_channel
This commit is contained in:
@@ -21,7 +21,9 @@ class Chat (discord.Cog) :
|
|||||||
debug(f"The user {ctx.author.display_name} ran the say command command in the channel {ctx.channel} of the guild {ctx.guild}, named {ctx.guild.name}")
|
debug(f"The user {ctx.author.display_name} ran the say command command in the channel {ctx.channel} of the guild {ctx.guild}, named {ctx.guild.name}")
|
||||||
await ctx.respond("Message sent !", ephemeral=True)
|
await ctx.respond("Message sent !", ephemeral=True)
|
||||||
await ctx.send(message)
|
await ctx.send(message)
|
||||||
async def on_message_process(message: discord.Message, self):
|
|
||||||
|
|
||||||
|
async def on_message_process(message: discord.Message, self: Chat):
|
||||||
#my code
|
#my code
|
||||||
#debug the thread id
|
#debug the thread id
|
||||||
debug(f"Thread id: {threading.get_ident()}")
|
debug(f"Thread id: {threading.get_ident()}")
|
||||||
@@ -37,6 +39,11 @@ async def on_message_process(message: discord.Message, self):
|
|||||||
return
|
return
|
||||||
#check if the message has been sent in the channel set in the database
|
#check if the message has been sent in the channel set in the database
|
||||||
c.execute("SELECT channel_id FROM data WHERE guild_id = ?", (message.guild.id,))
|
c.execute("SELECT channel_id FROM data WHERE guild_id = ?", (message.guild.id,))
|
||||||
|
#select channels from the database
|
||||||
|
cp.execute("SELECT * FROM channels WHERE guild_id = ?", (message.guild.id,))
|
||||||
|
channels = cp.fetchone()[1:]
|
||||||
|
debug(f"Channels: {channels}")
|
||||||
|
debug(f"Message channel: {message.channel.id}")
|
||||||
try : original_message = await message.channel.fetch_message(message.reference.message_id)
|
try : original_message = await message.channel.fetch_message(message.reference.message_id)
|
||||||
except : original_message = None
|
except : original_message = None
|
||||||
if original_message != None and original_message.author.id != self.bot.user.id:
|
if original_message != None and original_message.author.id != self.bot.user.id:
|
||||||
@@ -47,6 +54,8 @@ async def on_message_process(message: discord.Message, self):
|
|||||||
debug("wrong channel, but reply")
|
debug("wrong channel, but reply")
|
||||||
elif message.content.find("<@"+str(self.bot.user.id)+">") != -1:
|
elif message.content.find("<@"+str(self.bot.user.id)+">") != -1:
|
||||||
debug("wrong channel, but mention")
|
debug("wrong channel, but mention")
|
||||||
|
elif str(message.channel.id) in channels:
|
||||||
|
debug("in a channel that is in the database")
|
||||||
else :
|
else :
|
||||||
debug("The message has been sent in the wrong channel")
|
debug("The message has been sent in the wrong channel")
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ class Setup (discord.Cog) :
|
|||||||
await ctx.respond("Disabled", ephemeral=True)
|
await ctx.respond("Disabled", ephemeral=True)
|
||||||
|
|
||||||
#create a command calles "add channel" that can only be used in premium servers
|
#create a command calles "add channel" that can only be used in premium servers
|
||||||
@discord.slash_command(name="add_channel", description="Add a channel to the list of channels")
|
@discord.slash_command(name="add_channel", description="Add a channel to the list of channels. Premium only.")
|
||||||
@discord.option(name="channel", description="The channel to add", type=discord.TextChannel, required=False)
|
@discord.option(name="channel", description="The channel to add", type=discord.TextChannel, required=False)
|
||||||
async def add_channel(self, ctx: discord.ApplicationContext, channel: discord.TextChannel = None):
|
async def add_channel(self, ctx: discord.ApplicationContext, channel: discord.TextChannel = None):
|
||||||
debug(f"The user {ctx.author} ran the add_channel command in the channel {ctx.channel} of the guild {ctx.guild}, named {ctx.guild.name}")
|
debug(f"The user {ctx.author} ran the add_channel command in the channel {ctx.channel} of the guild {ctx.guild}, named {ctx.guild.name}")
|
||||||
@@ -101,13 +101,17 @@ class Setup (discord.Cog) :
|
|||||||
if channel is None:
|
if channel is None:
|
||||||
channel = ctx.channel
|
channel = ctx.channel
|
||||||
#check if the channel is already in the list
|
#check if the channel is already in the list
|
||||||
|
c.execute("SELECT channel_id FROM data WHERE guild_id = ?", (ctx.guild.id,))
|
||||||
|
if str(channel.id) == c.fetchone()[0]:
|
||||||
|
await ctx.respond("This channel is already set as the main channel", ephemeral=True)
|
||||||
|
return
|
||||||
cp.execute("SELECT * FROM channels WHERE guild_id = ?", (ctx.guild.id,))
|
cp.execute("SELECT * FROM channels WHERE guild_id = ?", (ctx.guild.id,))
|
||||||
guild_channels = cp.fetchone()
|
guild_channels = cp.fetchone()
|
||||||
if guild_channels is None:
|
if guild_channels is None:
|
||||||
# if the channel is not in the list, add it
|
# if the channel is not in the list, add it
|
||||||
cp.execute("INSERT INTO channels VALUES (?, ?, ?, ?, ?, ?)", (ctx.guild.id, channel.id, None, None, None, None))
|
cp.execute("INSERT INTO channels VALUES (?, ?, ?, ?, ?, ?)", (ctx.guild.id, channel.id, None, None, None, None))
|
||||||
connp.commit()
|
connp.commit()
|
||||||
await ctx.respond("Added", ephemeral=True)
|
await ctx.respond(f"Added channel **{channel.name}**", ephemeral=True)
|
||||||
return
|
return
|
||||||
channels = guild_channels[1:]
|
channels = guild_channels[1:]
|
||||||
if str(channel.id) in channels:
|
if str(channel.id) in channels:
|
||||||
@@ -115,10 +119,51 @@ class Setup (discord.Cog) :
|
|||||||
return
|
return
|
||||||
for i in range(5):
|
for i in range(5):
|
||||||
if channels[i] == None:
|
if channels[i] == None:
|
||||||
cp.execute(f"UPDATE channels SET channel{i+1} = ? WHERE guild_id = ?", (channel.id, ctx.guild.id))
|
cp.execute(f"UPDATE channels SET channel{i} = ? WHERE guild_id = ?", (channel.id, ctx.guild.id))
|
||||||
connp.commit()
|
connp.commit()
|
||||||
await ctx.respond("Added", ephemeral=True)
|
await ctx.respond(f"Added channel **{channel.name}**", ephemeral=True)
|
||||||
return
|
return
|
||||||
await ctx.respond("You can only add 5 channels", ephemeral=True)
|
await ctx.respond("You can only add 5 channels", ephemeral=True)
|
||||||
|
|
||||||
|
#create a command called "remove channel" that can only be used in premium servers
|
||||||
|
@discord.slash_command(name="remove_channel", description="Remove a channel from the list of channels. Premium only.")
|
||||||
|
@discord.option(name="channel", description="The channel to remove", type=discord.TextChannel, required=False)
|
||||||
|
async def remove_channel(self, ctx: discord.ApplicationContext, channel: discord.TextChannel = None):
|
||||||
|
debug(f"The user {ctx.author} ran the remove_channel command in the channel {ctx.channel} of the guild {ctx.guild}, named {ctx.guild.name}")
|
||||||
|
#check if the guild is in the database
|
||||||
|
c.execute("SELECT * FROM data WHERE guild_id = ?", (ctx.guild.id,))
|
||||||
|
if c.fetchone() is None:
|
||||||
|
await ctx.respond("This server is not setup", ephemeral=True)
|
||||||
|
return
|
||||||
|
#check if the guild is premium
|
||||||
|
try :
|
||||||
|
cp.execute("SELECT premium FROM data WHERE guild_id = ?", (ctx.guild.id,))
|
||||||
|
premium = cp.fetchone()[0]
|
||||||
|
except :
|
||||||
|
premium = 0
|
||||||
|
if not premium:
|
||||||
|
await ctx.respond("This server is not premium", ephemeral=True)
|
||||||
|
return
|
||||||
|
if channel is None:
|
||||||
|
channel = ctx.channel
|
||||||
|
#check if the channel is in the list
|
||||||
|
cp.execute("SELECT * FROM channels WHERE guild_id = ?", (ctx.guild.id,))
|
||||||
|
guild_channels = cp.fetchone()
|
||||||
|
c.execute("SELECT channel_id FROM data WHERE guild_id = ?", (ctx.guild.id,))
|
||||||
|
if str(channel.id) == c.fetchone()[0]:
|
||||||
|
await ctx.respond("This channel is set as the main channel and therefore cannot be removed. Type /setup to change the main channel.", ephemeral=True)
|
||||||
|
return
|
||||||
|
if guild_channels is None:
|
||||||
|
await ctx.respond("This channel was not added. Nothing changed", ephemeral=True)
|
||||||
|
return
|
||||||
|
channels = guild_channels[1:]
|
||||||
|
if str(channel.id) not in channels:
|
||||||
|
await ctx.respond("This channel was not added. Nothing changed", ephemeral=True)
|
||||||
|
return
|
||||||
|
#remove the channel from the list
|
||||||
|
for i in range(5):
|
||||||
|
if channels[i] == str(channel.id):
|
||||||
|
cp.execute(f"UPDATE channels SET channel{i} = ? WHERE guild_id = ?", (None, ctx.guild.id))
|
||||||
|
connp.commit()
|
||||||
|
await ctx.respond(f"Removed channel **{channel.name}**", ephemeral=True)
|
||||||
|
return
|
||||||
@@ -16,7 +16,4 @@ cp = connp.cursor()
|
|||||||
c.execute('''CREATE TABLE IF NOT EXISTS data (guild_id text, channel_id text, api_key text, is_active boolean, max_tokens integer, temperature real, frequency_penalty real, presence_penalty real, uses_count_today integer, prompt_size integer, prompt_prefix text, tts boolean, pretend_to_be text, pretend_enabled boolean)''')
|
c.execute('''CREATE TABLE IF NOT EXISTS data (guild_id text, channel_id text, api_key text, is_active boolean, max_tokens integer, temperature real, frequency_penalty real, presence_penalty real, uses_count_today integer, prompt_size integer, prompt_prefix text, tts boolean, pretend_to_be text, pretend_enabled boolean)''')
|
||||||
cp.execute('''CREATE TABLE IF NOT EXISTS data (user_id text, guild_id text, premium boolean)''')
|
cp.execute('''CREATE TABLE IF NOT EXISTS data (user_id text, guild_id text, premium boolean)''')
|
||||||
# create table called "channels" if it does not exist with the following columns: guild_id, channel1, channel2, channel3, channel4, channel5
|
# create table called "channels" if it does not exist with the following columns: guild_id, channel1, channel2, channel3, channel4, channel5
|
||||||
cp.execute('''CREATE TABLE IF NOT EXISTS channels (guild_id text, channel1 text, channel2 text, channel3 text, channel4 text, channel5 text)''')
|
cp.execute('''CREATE TABLE IF NOT EXISTS channels (guild_id text, channel0 text, channel1 text, channel2 text, channel3 text, channel4 text)''')
|
||||||
|
|
||||||
cp.execute("DELETE FROM channels")
|
|
||||||
connp.commit()
|
|
||||||
Reference in New Issue
Block a user