From 1d63fc050c89f5c79efbb30dc469dfd3b914368a Mon Sep 17 00:00:00 2001 From: natto1784 Date: Fri, 25 Feb 2022 20:07:44 +0530 Subject: [PATCH] fix tags levenshtein dist --- ci/pipeline.yml | 19 ++++--------------- src/commands/tags.rs | 21 ++++++++++++++------- 2 files changed, 18 insertions(+), 22 deletions(-) diff --git a/ci/pipeline.yml b/ci/pipeline.yml index 7ce79c7..9304585 100644 --- a/ci/pipeline.yml +++ b/ci/pipeline.yml @@ -26,13 +26,6 @@ resources: templating: false restart: true -- name: release - type: gitea-release-resource - source: - repository: natto1784/singh3 - access_token: ((gitea.token)) - gitea_api_url: ((gitea.url)) - - name: repo type: git icon: discord @@ -95,13 +88,9 @@ jobs: - | cargo build --release --manifest-path repo/Cargo.toml mkdir release - mv $CARGO_TARGET_DIR/release/singh3 release/aarch64-bin - awk '/^version = /{gsub(/^"|"$/,"", $3); print $3; exit}' \ - repo/Cargo.toml > release/tag - awk '/^name = /{gsub(/^"|"$/,"", $3); print $3; exit}' \ - repo/Cargo.toml > release/title + mv $CARGO_TARGET_DIR/release/singh3 bin outputs: - - name: release + - name: bin - task: push-image privileged: true config: @@ -113,7 +102,7 @@ jobs: caches: - path: cache inputs: - - name: release + - name: bin outputs: - name: image run: @@ -123,7 +112,7 @@ jobs: - | cat < Dockerfile FROM arm64v8/ubuntu - COPY release/aarch64-bin /usr/bin/singh3 + COPY bin/singh3 /usr/bin/singh3 CMD ["singh3"] EOF build diff --git a/src/commands/tags.rs b/src/commands/tags.rs index 87d3a5b..1cc167d 100644 --- a/src/commands/tags.rs +++ b/src/commands/tags.rs @@ -3,7 +3,7 @@ use core::time::Duration; use serenity::{ builder::CreateEmbed, collector::component_interaction_collector::ComponentInteractionCollectorBuilder, - framework::standard::{macros::command, Args, CommandResult}, + framework::standard::{macros::command, Args, CommandResult, Delimiter}, futures::StreamExt, model::{interactions::InteractionResponseType, prelude::*}, prelude::*, @@ -28,14 +28,19 @@ pub async fn tag(ctx: &Context, msg: &Message, args: Args) -> CommandResult { let query_helper = db .query("SELECT name, value FROM tags WHERE name=$1", &[&query]) .await?; + if query_helper.is_empty() { + const DIST_LIMIT: i32 = 2; let leven = db .query( - "SELECT name FROM tags WHERE levenshtein(name, $1) < 2", - &[&query], + "SELECT name, levenshtein_less_equal(name, $1, $2) AS lev FROM tags ORDER BY lev LIMIT 1 ", + &[&query, &DIST_LIMIT], ) .await?; - let l = if leven.is_empty() { + + let dist: i32 = leven[0].get(1); + + let l = if dist > DIST_LIMIT { "".to_string() } else { let leven_name: String = leven[0].get(0); @@ -135,7 +140,8 @@ pub async fn tcopy(ctx: &Context, msg: &Message, args: Args) -> CommandResult { &[&queries[1], &msg.author.id.to_string(), &queries[0]], ) .await?; - msg.reply(ctx, "Copied").await?; + msg.reply(ctx, format!("Copied {} to {}", queries[0], queries[1])) + .await?; Ok(()) } @@ -164,7 +170,8 @@ pub async fn tremove(ctx: &Context, msg: &Message, args: Args) -> CommandResult } db.execute("DELETE FROM tags WHERE name=$1", &[&query]) .await?; - msg.reply(ctx, "Deleted if it existed").await?; + msg.reply(ctx, format!("Deleted {} if it existed", query)) + .await?; Ok(()) } @@ -175,7 +182,7 @@ pub async fn tedit(ctx: &Context, msg: &Message, args: Args) -> CommandResult { if queries.len() != 2 && msg.attachments.len() == 0 { msg.reply( ctx, - "Please use the proper syntax or attach something\n`,tedit `", + "Please use the proper syntax or attach something\n`,tedit `", ) .await?; return Ok(());