see count for other users as well
This commit is contained in:
@@ -33,7 +33,7 @@ resources:
|
|||||||
uri: https://git.weirdnatto.in/natto1784/singh3.git
|
uri: https://git.weirdnatto.in/natto1784/singh3.git
|
||||||
branch: master
|
branch: master
|
||||||
|
|
||||||
- name: rust-latest-image
|
- name: rust-image
|
||||||
type: registry-image
|
type: registry-image
|
||||||
icon: docker
|
icon: docker
|
||||||
source:
|
source:
|
||||||
@@ -53,10 +53,10 @@ jobs:
|
|||||||
- get: repo
|
- get: repo
|
||||||
trigger: true
|
trigger: true
|
||||||
passed: [configure-self]
|
passed: [configure-self]
|
||||||
- get: rust-latest-image
|
- get: rust-image
|
||||||
trigger: false
|
trigger: false
|
||||||
- task: format
|
- task: format
|
||||||
image: rust-latest-image
|
image: rust-image
|
||||||
config:
|
config:
|
||||||
inputs:
|
inputs:
|
||||||
- name: repo
|
- name: repo
|
||||||
@@ -70,7 +70,7 @@ jobs:
|
|||||||
cargo fmt
|
cargo fmt
|
||||||
dir: repo
|
dir: repo
|
||||||
- task: build
|
- task: build
|
||||||
image: rust-latest-image
|
image: rust-image
|
||||||
config:
|
config:
|
||||||
params:
|
params:
|
||||||
CARGO_HOME: cargo-home
|
CARGO_HOME: cargo-home
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
description = "A simple filehost written in rust";
|
description = "singh3 discord bot";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = github:nixos/nixpkgs/nixos-unstable;
|
nixpkgs.url = github:nixos/nixpkgs/nixos-unstable;
|
||||||
|
@@ -14,19 +14,39 @@ use tokio_postgres::Row;
|
|||||||
|
|
||||||
#[command]
|
#[command]
|
||||||
#[aliases("kitna", "c")]
|
#[aliases("kitna", "c")]
|
||||||
pub async fn count(ctx: &Context, msg: &Message, args: Args) -> CommandResult {
|
pub async fn count(ctx: &Context, msg: &Message, mut args: Args) -> CommandResult {
|
||||||
let query: String = args.raw().collect::<Vec<&str>>().join(" ");
|
if args.len() > 2 || args.len() == 0 {
|
||||||
if query == "" {
|
msg.reply(ctx, "Please use `,count <word> <user>`").await?;
|
||||||
msg.reply(ctx, "Count what?").await?;
|
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let query = args.single::<String>().unwrap();
|
||||||
|
let user = if args.len() == 2 {
|
||||||
|
let user = args.single::<UserId>();
|
||||||
|
match user {
|
||||||
|
Ok(id) => match id.to_user(&ctx.http).await {
|
||||||
|
Ok(u) => u,
|
||||||
|
Err(_) => {
|
||||||
|
msg.reply(ctx, "No such user").await?;
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Err(_) => {
|
||||||
|
msg.reply(ctx, "No such user").await?;
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
msg.author.clone()
|
||||||
|
};
|
||||||
|
|
||||||
let data_read = ctx.data.read().await;
|
let data_read = ctx.data.read().await;
|
||||||
let db = data_read
|
let db = data_read
|
||||||
.get::<crate::Database>()
|
.get::<crate::Database>()
|
||||||
.expect("Expected Database in TypeMap.")
|
.expect("Expected Database in TypeMap.")
|
||||||
.clone();
|
.clone();
|
||||||
|
|
||||||
let id = msg.author.id.to_string();
|
let id = user.id.to_string();
|
||||||
let mut query_helper = db
|
let mut query_helper = db
|
||||||
.query("SELECT name FROM words WHERE $1 ~ reg", &[&query])
|
.query("SELECT name FROM words WHERE $1 ~ reg", &[&query])
|
||||||
.await?;
|
.await?;
|
||||||
@@ -60,12 +80,12 @@ pub async fn count(ctx: &Context, msg: &Message, args: Args) -> CommandResult {
|
|||||||
&[&name],
|
&[&name],
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
let query_result = if count_query.is_empty() {
|
let query_result: i32 = if count_query.is_empty() {
|
||||||
0
|
0
|
||||||
} else {
|
} else {
|
||||||
count_query[0].get(0)
|
count_query[0].get(0)
|
||||||
};
|
};
|
||||||
reply += &format!("\n{} count for you: {}", name, query_result);
|
reply += &format!("\n{} count for {}: {}", name, user.name, query_result);
|
||||||
}
|
}
|
||||||
msg.reply(ctx, reply).await?;
|
msg.reply(ctx, reply).await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
|
@@ -3,7 +3,7 @@ use core::time::Duration;
|
|||||||
use serenity::{
|
use serenity::{
|
||||||
builder::CreateEmbed,
|
builder::CreateEmbed,
|
||||||
collector::component_interaction_collector::ComponentInteractionCollectorBuilder,
|
collector::component_interaction_collector::ComponentInteractionCollectorBuilder,
|
||||||
framework::standard::{macros::command, Args, CommandResult, Delimiter},
|
framework::standard::{macros::command, Args, CommandResult},
|
||||||
futures::StreamExt,
|
futures::StreamExt,
|
||||||
model::{interactions::InteractionResponseType, prelude::*},
|
model::{interactions::InteractionResponseType, prelude::*},
|
||||||
prelude::*,
|
prelude::*,
|
||||||
|
Reference in New Issue
Block a user