change history for replies

This commit is contained in:
Liam Kern
2022-12-07 14:30:01 +01:00
parent b8a5cb459d
commit 2994285898

View File

@@ -6,7 +6,6 @@ import logging # pip install logging
import sqlite3 # pip install sqlite3 import sqlite3 # pip install sqlite3
import asyncio # pip install asyncio import asyncio # pip install asyncio
import os # pip install os import os # pip install os
import random # pip install random
import re # pip install re import re # pip install re
import datetime # pip install datetime import datetime # pip install datetime
#set the debug mode to the maximum #set the debug mode to the maximum
@@ -278,7 +277,7 @@ async def pretend(ctx, pretend_to_be: str):
c.execute("UPDATE data SET pretend_to_be = ? WHERE guild_id = ?", (pretend_to_be, ctx.guild.id)) c.execute("UPDATE data SET pretend_to_be = ? WHERE guild_id = ?", (pretend_to_be, ctx.guild.id))
conn.commit() conn.commit()
@bot.event @bot.event
async def on_message(message): async def on_message(message: discord.Message):
#check if the message is from a bot #check if the message is from a bot
if message.author.bot: if message.author.bot:
return return
@@ -292,9 +291,12 @@ async def on_message(message):
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,))
try : replied_message: discord.Message = await message.to_reference()
except : replied_message = None
if str(message.channel.id) != str(c.fetchone()[0]): if str(message.channel.id) != str(c.fetchone()[0]):
if message.content.find("<@1046051875755134996>") != -1: #check if the message is a mention or if the message replies to the bot
debug("wrong channel, but mention") if message.content.find("<@1046051875755134996>") != -1 or replied_message != None:
debug("wrong channel, but mention or reply")
else : else :
debug("The message has been sent in the wrong channel") debug("The message has been sent in the wrong channel")
return return
@@ -315,8 +317,14 @@ async def on_message(message):
#get the advanced settings from the database #get the advanced settings from the database
c.execute("SELECT max_tokens, temperature, frequency_penalty, presence_penalty, prompt_size FROM data WHERE guild_id = ?", (message.guild.id,)) c.execute("SELECT max_tokens, temperature, frequency_penalty, presence_penalty, prompt_size FROM data WHERE guild_id = ?", (message.guild.id,))
max_tokens, temperature, frequency_penalty, presence_penalty, prompt_size = c.fetchone() max_tokens, temperature, frequency_penalty, presence_penalty, prompt_size = c.fetchone()
if replied_message == None:
messages = await message.channel.history(limit=prompt_size).flatten() messages = await message.channel.history(limit=prompt_size).flatten()
messages.reverse() messages.reverse()
else :
messages = await message.channel.history(limit=prompt_size, before=replied_message.created_at).flatten()
messages.reverse()
messages.append(replied_message)
messages.append(message)
prompt = "" prompt = ""
#get the channel id from the database #get the channel id from 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,))