fix tags levenshtein dist
This commit is contained in:
@@ -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
|
||||||
|
@@ -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(());
|
||||||
|
Reference in New Issue
Block a user