Updated dependencies, fixed migrations usage

This commit is contained in:
Benjamin Sherriff
2023-10-03 10:05:14 -04:00
parent e80ad9680a
commit 6c8a7ceefc
16 changed files with 141 additions and 116 deletions

View File

@@ -2,8 +2,7 @@
use std::error::Error;
use std::fmt;
use diesel::{prelude::*, PgConnection, insert_into};
use diesel::r2d2::{Pool, ConnectionManager};
use diesel::{prelude::*, insert_into};
use log::{error, debug, trace, warn};
use serde::{Serialize, Deserialize};
@@ -13,7 +12,8 @@ use serenity::model::channel::Message;
use serenity::model::prelude::{ChannelType, PermissionOverwrite, PermissionOverwriteType};
use serenity::prelude::*;
use crate::database::models::{NewMessageDB, MessageDB};
use crate::db;
use crate::messages::{NewMessageDB, MessageDB};
pub struct OAI {
pub client: reqwest::Client,
@@ -187,26 +187,26 @@ impl OAI {
}
}
pub async fn generate_response(ctx: &Context, msg: &Message, oai: &OAI, pool: &Pool<ConnectionManager<PgConnection>>) {
pub async fn generate_response(ctx: &Context, msg: &Message, oai: &OAI) {
debug!("Generating response for message: {}", msg.content);
let mut connection = db::connection().unwrap();
let guild_id = msg.guild_id.unwrap();
let channel_id = msg.channel_id;
let author_id = msg.author.id;
let mut connection = pool.get().unwrap();
// Parse out the bot mention from the message
let bot_mention: String = format!("<@{}>", ctx.cache.current_user_id().0);
let parsed_content = msg.content.replace(bot_mention.as_str(), "");
// Setup the request messages
let result: Result<Vec<MessageDB>, diesel::result::Error> = crate::database::schema::messages::table
let result: Result<Vec<MessageDB>, diesel::result::Error> = crate::schema::messages::table
.select(MessageDB::as_select())
.filter((crate::database::schema::messages::guild_id.eq(guild_id.0 as i64))
.and(crate::database::schema::messages::channel_id.eq(channel_id.0 as i64))
.and(crate::database::schema::messages::user_id.eq(author_id.0 as i64))
.filter((crate::schema::messages::guild_id.eq(guild_id.0 as i64))
.and(crate::schema::messages::channel_id.eq(channel_id.0 as i64))
.and(crate::schema::messages::user_id.eq(author_id.0 as i64))
)
.order(crate::database::schema::messages::created.asc())
.order(crate::schema::messages::created.asc())
.limit(oai.max_context_questions)
.load(&mut connection);
@@ -284,7 +284,7 @@ pub async fn generate_response(ctx: &Context, msg: &Message, oai: &OAI, pool: &P
if !r.choices.is_empty() {
let res = r.choices[0].message.content.clone();
// Insert the message into the messages database table
if let Err(err) = insert_into(crate::database::schema::messages::table).values(NewMessageDB {
if let Err(err) = insert_into(crate::schema::messages::table).values(NewMessageDB {
id: &r.id,
guild_id: guild_id.0 as i64,
channel_id: response_channel.0 as i64,