Compare commits
No commits in common. "46c92f5a5954e205ef24b19c51db427c4748e226" and "c6cb16cf6a9e6d2277fc0e2fb91acca8ea62ee0d" have entirely different histories.
46c92f5a59
...
c6cb16cf6a
5 changed files with 29 additions and 26 deletions
|
|
@ -6,6 +6,8 @@ use serenity::all::CreateEmbed;
|
||||||
|
|
||||||
// Define your FAQ struct
|
// Define your FAQ struct
|
||||||
struct Faq {
|
struct Faq {
|
||||||
|
// id: i64,
|
||||||
|
// guild_id: String,
|
||||||
title: String,
|
title: String,
|
||||||
description: String,
|
description: String,
|
||||||
}
|
}
|
||||||
|
|
@ -38,7 +40,7 @@ async fn autocomplete_faq_titles<'a>(
|
||||||
let guild_id = server_guild_id.to_string();
|
let guild_id = server_guild_id.to_string();
|
||||||
move |conn| {
|
move |conn| {
|
||||||
let mut stmt = conn.prepare(
|
let mut stmt = conn.prepare(
|
||||||
"SELECT id, guild_id, title, description FROM faqs WHERE guild_id = ?1",
|
"SELECT id, guild_id, title, description FROM faqs WHERE guild_id = ?1"
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
let faqs: Vec<Faq> = stmt
|
let faqs: Vec<Faq> = stmt
|
||||||
|
|
@ -62,17 +64,11 @@ async fn autocomplete_faq_titles<'a>(
|
||||||
let partial_lowercase = partial.to_lowercase();
|
let partial_lowercase = partial.to_lowercase();
|
||||||
|
|
||||||
futures::stream::iter(faqs)
|
futures::stream::iter(faqs)
|
||||||
.filter(move |faq| {
|
.filter(move |faq| futures::future::ready(faq.title.to_lowercase().contains(&partial_lowercase)))
|
||||||
futures::future::ready(faq.title.to_lowercase().contains(&partial_lowercase))
|
|
||||||
})
|
|
||||||
.map(|faq| faq.title)
|
.map(|faq| faq.title)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[poise::command(
|
#[poise::command(slash_command, subcommands("view", "preview", "add", "edit", "delete"), guild_only)]
|
||||||
slash_command,
|
|
||||||
subcommands("view", "preview", "add", "edit", "delete"),
|
|
||||||
guild_only
|
|
||||||
)]
|
|
||||||
pub async fn faq(_ctx: Context<'_>) -> Result<(), Error> {
|
pub async fn faq(_ctx: Context<'_>) -> Result<(), Error> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -166,12 +162,15 @@ pub async fn preview(
|
||||||
let faq = faqs.first().unwrap();
|
let faq = faqs.first().unwrap();
|
||||||
|
|
||||||
// let embed_description = format_embed_description(&faq.description).expect("Format error");
|
// let embed_description = format_embed_description(&faq.description).expect("Format error");
|
||||||
let embed = CreateEmbed::new().title(&faq.title).description(format!(
|
let embed = CreateEmbed::new()
|
||||||
"```
|
.title(&faq.title)
|
||||||
|
.description(
|
||||||
|
format!("```
|
||||||
{}
|
{}
|
||||||
```",
|
```",
|
||||||
&faq.description
|
&faq.description
|
||||||
));
|
)
|
||||||
|
);
|
||||||
|
|
||||||
ctx.send(CreateReply::default().embed(embed)).await?;
|
ctx.send(CreateReply::default().embed(embed)).await?;
|
||||||
|
|
||||||
|
|
@ -297,12 +296,7 @@ pub async fn delete(
|
||||||
let result = data
|
let result = data
|
||||||
.execute_db({
|
.execute_db({
|
||||||
let title = title.clone();
|
let title = title.clone();
|
||||||
move |conn| {
|
move |conn| conn.execute("DELETE FROM faqs WHERE title = ?1 AND guild_id = ?2", [title, guild_id])
|
||||||
conn.execute(
|
|
||||||
"DELETE FROM faqs WHERE title = ?1 AND guild_id = ?2",
|
|
||||||
[title, guild_id],
|
|
||||||
)
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
|
|
@ -318,3 +312,4 @@ pub async fn delete(
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,12 @@ use poise::CreateReply;
|
||||||
use rusqlite::Connection;
|
use rusqlite::Connection;
|
||||||
use serenity::all::{CreateEmbed, GuildChannel};
|
use serenity::all::{CreateEmbed, GuildChannel};
|
||||||
|
|
||||||
|
// struct Forum {
|
||||||
|
// id: i64,
|
||||||
|
// guild_id: String,
|
||||||
|
// forum_id: String,
|
||||||
|
// }
|
||||||
|
|
||||||
#[poise::command(slash_command, subcommands("add", "delete"), guild_only)]
|
#[poise::command(slash_command, subcommands("add", "delete"), guild_only)]
|
||||||
pub async fn forum(_ctx: Context<'_>) -> Result<(), Error> {
|
pub async fn forum(_ctx: Context<'_>) -> Result<(), Error> {
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ pub async fn help(
|
||||||
ctx,
|
ctx,
|
||||||
command.as_deref(),
|
command.as_deref(),
|
||||||
poise::builtins::HelpConfiguration {
|
poise::builtins::HelpConfiguration {
|
||||||
|
// extra_text_at_bottom: "made with ❤️",
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -63,5 +63,6 @@ pub fn init_tables(conn: &Connection) -> Result<()> {
|
||||||
}
|
}
|
||||||
|
|
||||||
// if we need to create more tables we'll use this function
|
// if we need to create more tables we'll use this function
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -85,9 +85,9 @@ pub async fn on_thread_create(
|
||||||
.to_string();
|
.to_string();
|
||||||
|
|
||||||
let message_builder = CreateMessage::new().content(format!(
|
let message_builder = CreateMessage::new().content(format!(
|
||||||
"<@{}> Please select only ONE (1) tag (personal-only or career-oriented)\n\nYou can edit your post's tags under Post Settings -> Edit Tags",
|
"<@{}> Please select only ONE (1) tag (personal-only or career-oriented)\n\nYou can edit your post's tags under Post Settings -> Edit Tags",
|
||||||
thread_owner
|
thread_owner
|
||||||
));
|
));
|
||||||
|
|
||||||
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
|
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue