fix tags levenshtein dist

This commit is contained in:
2022-02-25 20:07:44 +05:30
parent 05dc40863e
commit 1d63fc050c
2 changed files with 18 additions and 22 deletions

View File

@@ -26,13 +26,6 @@ resources:
templating: false templating: false
restart: true restart: true
- name: release
type: gitea-release-resource
source:
repository: natto1784/singh3
access_token: ((gitea.token))
gitea_api_url: ((gitea.url))
- name: repo - name: repo
type: git type: git
icon: discord icon: discord
@@ -95,13 +88,9 @@ jobs:
- | - |
cargo build --release --manifest-path repo/Cargo.toml cargo build --release --manifest-path repo/Cargo.toml
mkdir release mkdir release
mv $CARGO_TARGET_DIR/release/singh3 release/aarch64-bin mv $CARGO_TARGET_DIR/release/singh3 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
outputs: outputs:
- name: release - name: bin
- task: push-image - task: push-image
privileged: true privileged: true
config: config:
@@ -113,7 +102,7 @@ jobs:
caches: caches:
- path: cache - path: cache
inputs: inputs:
- name: release - name: bin
outputs: outputs:
- name: image - name: image
run: run:
@@ -123,7 +112,7 @@ jobs:
- | - |
cat <<EOF > Dockerfile cat <<EOF > Dockerfile
FROM arm64v8/ubuntu FROM arm64v8/ubuntu
COPY release/aarch64-bin /usr/bin/singh3 COPY bin/singh3 /usr/bin/singh3
CMD ["singh3"] CMD ["singh3"]
EOF EOF
build build

View File

@@ -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}, framework::standard::{macros::command, Args, CommandResult, Delimiter},
futures::StreamExt, futures::StreamExt,
model::{interactions::InteractionResponseType, prelude::*}, model::{interactions::InteractionResponseType, prelude::*},
prelude::*, prelude::*,
@@ -28,14 +28,19 @@ pub async fn tag(ctx: &Context, msg: &Message, args: Args) -> CommandResult {
let query_helper = db let query_helper = db
.query("SELECT name, value FROM tags WHERE name=$1", &[&query]) .query("SELECT name, value FROM tags WHERE name=$1", &[&query])
.await?; .await?;
if query_helper.is_empty() { if query_helper.is_empty() {
const DIST_LIMIT: i32 = 2;
let leven = db let leven = db
.query( .query(
"SELECT name FROM tags WHERE levenshtein(name, $1) < 2", "SELECT name, levenshtein_less_equal(name, $1, $2) AS lev FROM tags ORDER BY lev LIMIT 1 ",
&[&query], &[&query, &DIST_LIMIT],
) )
.await?; .await?;
let l = if leven.is_empty() {
let dist: i32 = leven[0].get(1);
let l = if dist > DIST_LIMIT {
"".to_string() "".to_string()
} else { } else {
let leven_name: String = leven[0].get(0); 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]], &[&queries[1], &msg.author.id.to_string(), &queries[0]],
) )
.await?; .await?;
msg.reply(ctx, "Copied").await?; msg.reply(ctx, format!("Copied {} to {}", queries[0], queries[1]))
.await?;
Ok(()) 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]) db.execute("DELETE FROM tags WHERE name=$1", &[&query])
.await?; .await?;
msg.reply(ctx, "Deleted if it existed").await?; msg.reply(ctx, format!("Deleted {} if it existed", query))
.await?;
Ok(()) Ok(())
} }
@@ -175,7 +182,7 @@ pub async fn tedit(ctx: &Context, msg: &Message, args: Args) -> CommandResult {
if queries.len() != 2 && msg.attachments.len() == 0 { if queries.len() != 2 && msg.attachments.len() == 0 {
msg.reply( msg.reply(
ctx, ctx,
"Please use the proper syntax or attach something\n`,tedit <name> <value> `", "Please use the proper syntax or attach something\n`,tedit <name> <value>`",
) )
.await?; .await?;
return Ok(()); return Ok(());