Reply with a random matching response if multiple responses match the trigger
Badgey Deployment / build (push) Successful in 5m55s Details

This commit is contained in:
Xyon 2023-09-27 13:20:08 +01:00
parent 5c0c895e93
commit cd391d7475
Signed by: xyon
GPG Key ID: DD18155D6B18078D
3 changed files with 6 additions and 3 deletions

2
Cargo.lock generated
View File

@ -159,7 +159,7 @@ dependencies = [
[[package]] [[package]]
name = "badgey" name = "badgey"
version = "3.1.0" version = "3.1.1"
dependencies = [ dependencies = [
"built", "built",
"clap", "clap",

View File

@ -1,6 +1,6 @@
[package] [package]
name = "badgey" name = "badgey"
version = "3.1.0" version = "3.1.1"
edition = "2021" edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View File

@ -1,7 +1,7 @@
use std::fmt::{Display, Formatter}; use std::fmt::{Display, Formatter};
use built::chrono::{NaiveDateTime, Utc}; use built::chrono::{NaiveDateTime, Utc};
use diesel::prelude::*; use diesel::prelude::*;
use diesel::insert_into; use diesel::{insert_into, sql_function};
use regex::Regex; use regex::Regex;
use poise::serenity_prelude as serenity; use poise::serenity_prelude as serenity;
@ -10,6 +10,8 @@ use manifold::error::{ManifoldError, ManifoldResult};
use manifold::models::user::UserInfo; use manifold::models::user::UserInfo;
use manifold::schema::userinfo; use manifold::schema::userinfo;
sql_function!(fn random() -> Text);
use crate::badgey::schema::*; use crate::badgey::schema::*;
#[derive(Queryable, Selectable, Identifiable, Insertable, AsChangeset, Associations, Debug, PartialEq, Clone)] #[derive(Queryable, Selectable, Identifiable, Insertable, AsChangeset, Associations, Debug, PartialEq, Clone)]
@ -80,6 +82,7 @@ impl CustomResponse {
Ok(custom_responses::table Ok(custom_responses::table
.filter(custom_responses::trigger.ilike(needle)) .filter(custom_responses::trigger.ilike(needle))
.filter(custom_responses::deleted.is_null()) .filter(custom_responses::deleted.is_null())
.order_by(random())
.limit(1) .limit(1)
.select(CustomResponse::as_select()) .select(CustomResponse::as_select())
.get_result(&mut conn.get()?)?) .get_result(&mut conn.get()?)?)