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
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 <<EOF > Dockerfile
FROM arm64v8/ubuntu
COPY release/aarch64-bin /usr/bin/singh3
COPY bin/singh3 /usr/bin/singh3
CMD ["singh3"]
EOF
build

View File

@@ -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(())
}