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