Skip to content

Commit ff80831

Browse files
committed
optimize codebase
1 parent 7ab461c commit ff80831

File tree

9 files changed

+40
-258
lines changed

9 files changed

+40
-258
lines changed

src/ai_message.rs

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
1-
use std::sync::Arc;
21

32
use color_eyre::Result;
4-
use parking_lot::RwLock;
53
use r2d2_sqlite::SqliteConnectionManager;
6-
use rig::prelude::*;
74
use rig::{
85
completion::{Prompt, ToolDefinition},
6+
prelude::*,
97
providers,
108
tool::Tool,
119
};
12-
use rusqlite::{params, Connection};
10+
use rusqlite::params;
1311
use serde::{Deserialize, Serialize};
1412
use serde_json::json;
1513
use serde_rusqlite::from_row;
@@ -151,24 +149,34 @@ impl Tool for SocialCredit {
151149
async fn call(&self, mut args: Self::Args) -> Result<Self::Output, Self::Error> {
152150
let mut user = {
153151
let db = self.0.get()?;
154-
let mut stm = db.prepare("SELECT * FROM user WHERE id = ?").map_err(|err| color_eyre::eyre::eyre!("Failed to prepare SQL query: {}", err))?;
152+
let mut stm = db
153+
.prepare("SELECT * FROM user WHERE id = ?")
154+
.map_err(|err| color_eyre::eyre::eyre!("Failed to prepare SQL query: {}", err))?;
155155
stm.query_one([self.1.to_string()], |row| {
156156
from_row::<User>(row).map_err(|_| rusqlite::Error::QueryReturnedNoRows)
157157
})
158-
.map_err(|err| color_eyre::eyre::eyre!("Failed to query SQL query: {:?}", err)).unwrap()
158+
.map_err(|err| color_eyre::eyre::eyre!("Failed to query SQL query: {:?}", err))
159+
.unwrap()
159160
};
160-
161+
161162
if args.remove == Some(true) && args.social_credit > 0 {
162163
args.social_credit = -args.social_credit;
163164
}
164165

165166
user.social_credit += args.social_credit;
166-
user.update_sync(&*self.0.get()?).map_err(|err| color_eyre::eyre::eyre!("Failed to update SQL query: {:?}", err)).unwrap();
167+
user.update_sync(&*self.0.get()?)
168+
.map_err(|err| color_eyre::eyre::eyre!("Failed to update SQL query: {:?}", err))
169+
.unwrap();
167170
Ok(user.social_credit)
168171
}
169172
}
170173

171-
pub async fn main(database: r2d2::Pool<SqliteConnectionManager>, user_id: u64, message: &str, context: &str) -> Result<String> {
174+
pub async fn main(
175+
database: r2d2::Pool<SqliteConnectionManager>,
176+
user_id: u64,
177+
message: &str,
178+
context: &str,
179+
) -> Result<String> {
172180
// Create OpenAI client
173181
let openai_client = providers::openai::Client::from_env();
174182

@@ -177,12 +185,12 @@ pub async fn main(database: r2d2::Pool<SqliteConnectionManager>, user_id: u64, m
177185
{
178186
let db = database.get()?;
179187
let mut stm = db.prepare("SELECT * FROM memory WHERE user_id = ?")?;
180-
let mut rows = stm
188+
let rows = stm
181189
.query_map(params![user_id], |row| {
182190
from_row::<database::Memory>(row).map_err(|err| rusqlite::Error::InvalidColumnName(err.to_string()))
183191
})?
184192
.flatten();
185-
while let Some(row) = rows.next() {
193+
for row in rows {
186194
memory.push_str(&format!("{}: {}\n", row.key, row.content));
187195
}
188196
}

src/commands/invite_stats.rs

Lines changed: 0 additions & 84 deletions
This file was deleted.

src/commands/level.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use std::sync::Arc;
55
use serde_rusqlite::{from_row, from_rows};
66
use tokio::sync::Mutex;
77

8-
use twilight_model::{gateway::presence::UserOrId, id::{marker::UserMarker, Id}};
8+
use twilight_model::id::{marker::UserMarker, Id};
99
use vesper::{
1010
prelude::*,
1111
twilight_exports::{InteractionResponse, InteractionResponseData, InteractionResponseType},
@@ -15,8 +15,13 @@ use crate::{database::User, structs::State, utils::levels::xp_required_for_level
1515

1616
#[command]
1717
#[description = "Level "]
18-
pub async fn level(ctx: &SlashContext<'_, Arc<Mutex<State>>>, #[description = "The user to level up"] user: Option<Id<UserMarker>>) -> DefaultCommandResult {
19-
let id = user.unwrap_or(ctx.interaction.member.clone().unwrap().user.unwrap().id).get();
18+
pub async fn level(
19+
ctx: &SlashContext<'_, Arc<Mutex<State>>>,
20+
#[description = "The user to level up"] user: Option<Id<UserMarker>>,
21+
) -> DefaultCommandResult {
22+
let id = user
23+
.unwrap_or(ctx.interaction.member.clone().unwrap().user.unwrap().id)
24+
.get();
2025
let state = ctx.data.lock().await;
2126

2227
let user = {
@@ -43,7 +48,6 @@ pub async fn level(ctx: &SlashContext<'_, Arc<Mutex<State>>>, #[description = "T
4348
.prepare("SELECT * FROM user WHERE level != 0 ORDER BY level DESC")
4449
.unwrap();
4550
from_rows::<User>(statement.query([]).unwrap())
46-
.into_iter()
4751
.flatten()
4852
.collect::<Vec<User>>()
4953
};

src/commands/mod.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
1-
pub mod invite_stats;
21
pub mod level;
3-
pub mod roms;

src/commands/roms.rs

Lines changed: 0 additions & 132 deletions
This file was deleted.

src/database.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use serde::{Deserialize, Serialize};
22
use wb_sqlite::{CreateTableSql, InsertSync, UpdateSync};
33

4-
use serde:: Deserializer;
4+
use serde::Deserializer;
55
use std::fmt;
66

77
fn u64_from_str_or_int<'de, D>(deserializer: D) -> Result<u64, D::Error>
@@ -10,7 +10,7 @@ where
1010
{
1111
struct U64Visitor;
1212

13-
impl<'de> serde::de::Visitor<'de> for U64Visitor {
13+
impl serde::de::Visitor<'_> for U64Visitor {
1414
type Value = u64;
1515

1616
fn expecting(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {

0 commit comments

Comments
 (0)