diff --git a/crates/bot/src/command.rs b/crates/bot/src/command.rs index dc7ed81..466ff83 100644 --- a/crates/bot/src/command.rs +++ b/crates/bot/src/command.rs @@ -67,7 +67,7 @@ impl Retrive { let mut summary_string: String = String::new(); for x in map { - summary_string.push_str(format!("#{} | {} \n", x.0, x.1).as_str()); + summary_string.push_str(format!("- <#{}> | {} Messages \n", x.0, x.1).as_str()); } let embed = CreateEmbed::new() diff --git a/crates/bot/src/logger.rs b/crates/bot/src/logger.rs index df11246..66283eb 100644 --- a/crates/bot/src/logger.rs +++ b/crates/bot/src/logger.rs @@ -1,6 +1,7 @@ use std::error::Error; use entities::{channel, content, members, messages, server}; +use migration::prelude::{DateTime, Utc}; use sea_orm::{ActiveModelTrait, ColumnTrait, DatabaseConnection, EntityTrait, QueryFilter}; use serenity::all::{Context, Message}; @@ -34,11 +35,16 @@ pub async fn log_message( let channel_id = msg.channel(&ctx.http).await.unwrap().id().get() as i64; let channel = channel::Model::get_or_create(channel_id, db).await?; + let timestamp_msg = msg.timestamp.naive_utc(); + let timestamp: DateTime = + DateTime::from_timestamp_secs(timestamp_msg.and_utc().timestamp()).unwrap(); + println!( - "{}, {}, {}, {}, {}", + "{}, {}, {}, {}, {}, {}", msg.id.get(), member, server, + timestamp, content, channel ); @@ -46,11 +52,12 @@ pub async fn log_message( let activeModel = messages::ActiveModel { id: sea_orm::ActiveValue::NotSet, id_discord: sea_orm::ActiveValue::Set(msg.id.get() as i64), + timestamp: sea_orm::ActiveValue::Set(timestamp), id_sender: sea_orm::ActiveValue::Set(member), id_server: sea_orm::ActiveValue::Set(server), id_content: sea_orm::ActiveValue::Set(content), id_channel: sea_orm::ActiveValue::Set(channel), }; - activeModel.insert(db).await; + activeModel.insert(db).await?; Ok(()) } diff --git a/crates/bot/src/main.rs b/crates/bot/src/main.rs index d68864e..7ec3023 100644 --- a/crates/bot/src/main.rs +++ b/crates/bot/src/main.rs @@ -30,7 +30,7 @@ impl EventHandler for Bot { println!("Error sending message: {why:?}"); } } - log_message(&self.db, &ctx, msg).await; + log_message(&self.db, &ctx, msg).await.unwrap(); } async fn interaction_create(&self, ctx: Context, interaction: Interaction) { if let Interaction::Command(command) = interaction { diff --git a/crates/entities/src/messages.rs b/crates/entities/src/messages.rs index 91a0faf..dfee59f 100644 --- a/crates/entities/src/messages.rs +++ b/crates/entities/src/messages.rs @@ -7,6 +7,7 @@ use sea_orm::entity::prelude::*; pub struct Model { #[sea_orm(primary_key)] pub id: i32, + pub timestamp: DateTimeUtc, #[sea_orm(unique)] pub id_discord: i64, pub id_sender: i32, diff --git a/crates/migration/src/m20260325_162920_messages.rs b/crates/migration/src/m20260325_162920_messages.rs index f684896..021bcd6 100644 --- a/crates/migration/src/m20260325_162920_messages.rs +++ b/crates/migration/src/m20260325_162920_messages.rs @@ -18,6 +18,7 @@ impl MigrationTrait for Migration { .col(big_integer(Messages::IdDiscord)) .col(integer(Messages::IdSender)) .col(integer(Messages::IdContent)) + .col(timestamp(Messages::Timestamp)) .foreign_key( ForeignKey::create() .from(Messages::Table, Messages::IdContent) @@ -46,6 +47,7 @@ impl MigrationTrait for Migration { enum Messages { Table, Id, + Timestamp, IdDiscord, IdSender, IdContent,