mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 11:18:54 -05:00
Fix poor fuzzy results due to changes in rapidfuzz 3.0 (#6224)
Co-authored-by: aikaterna <20862007+aikaterna@users.noreply.github.com>
This commit is contained in:
parent
3ac2512c14
commit
dbb91dfce8
@ -7,7 +7,7 @@ import discord
|
||||
import lavalink
|
||||
from red_commons.logging import getLogger
|
||||
|
||||
from rapidfuzz import process
|
||||
import rapidfuzz
|
||||
from redbot.core import commands
|
||||
from redbot.core.i18n import Translator
|
||||
from redbot.core.utils import AsyncIter
|
||||
@ -116,7 +116,9 @@ class LocalTrackUtilities(MixinMeta, metaclass=CompositeMetaClass):
|
||||
to_search_string = {
|
||||
i.local_track_path.name for i in to_search if i.local_track_path is not None
|
||||
}
|
||||
search_results = process.extract(search_words, to_search_string, limit=50)
|
||||
search_results = rapidfuzz.process.extract(
|
||||
search_words, to_search_string, limit=50, processor=rapidfuzz.utils.default_process
|
||||
)
|
||||
search_list = []
|
||||
async for track_match, percent_match, __ in AsyncIter(search_results):
|
||||
if percent_match > 85:
|
||||
|
||||
@ -7,7 +7,7 @@ import discord
|
||||
import lavalink
|
||||
from red_commons.logging import getLogger
|
||||
|
||||
from rapidfuzz import process
|
||||
import rapidfuzz
|
||||
from redbot.core import commands
|
||||
from redbot.core.i18n import Translator
|
||||
from redbot.core.utils import AsyncIter
|
||||
@ -132,7 +132,9 @@ class QueueUtilities(MixinMeta, metaclass=CompositeMetaClass):
|
||||
track_title = track.title
|
||||
|
||||
tracks[queue_idx] = track_title
|
||||
search_results = process.extract(search_words, tracks, limit=50)
|
||||
search_results = rapidfuzz.process.extract(
|
||||
search_words, tracks, limit=50, processor=rapidfuzz.utils.default_process
|
||||
)
|
||||
search_list = []
|
||||
async for title, percent_match, queue_position in AsyncIter(search_results):
|
||||
if percent_match > 89:
|
||||
|
||||
@ -6,7 +6,7 @@ from typing import Iterable, List, Mapping, Tuple, Dict, Set, Literal, Union
|
||||
from urllib.parse import quote_plus
|
||||
|
||||
import discord
|
||||
from rapidfuzz import process
|
||||
import rapidfuzz
|
||||
|
||||
from redbot.core import Config, commands
|
||||
from redbot.core.commands import Parameter
|
||||
@ -324,7 +324,9 @@ class CustomCommands(commands.Cog):
|
||||
- `<query>` The query to search for. Can be multiple words.
|
||||
"""
|
||||
cc_commands = await CommandObj.get_commands(self.config.guild(ctx.guild))
|
||||
extracted = process.extract(query, list(cc_commands.keys()))
|
||||
extracted = rapidfuzz.process.extract(
|
||||
query, list(cc_commands.keys()), processor=rapidfuzz.utils.default_process
|
||||
)
|
||||
accepted = []
|
||||
for key, score, __ in extracted:
|
||||
if score > 60:
|
||||
|
||||
@ -32,7 +32,7 @@ from typing import (
|
||||
import aiohttp
|
||||
import discord
|
||||
from packaging.requirements import Requirement
|
||||
from rapidfuzz import fuzz, process
|
||||
import rapidfuzz
|
||||
from rich.progress import ProgressColumn
|
||||
from rich.progress_bar import ProgressBar
|
||||
from red_commons.logging import VERBOSE, TRACE
|
||||
@ -154,7 +154,13 @@ async def fuzzy_command_search(
|
||||
choices = {c: c.qualified_name for c in commands}
|
||||
|
||||
# Do the scoring. `extracted` is a list of tuples in the form `(cmd_name, score, cmd)`
|
||||
extracted = process.extract(term, choices, limit=5, scorer=fuzz.QRatio)
|
||||
extracted = rapidfuzz.process.extract(
|
||||
term,
|
||||
choices,
|
||||
limit=5,
|
||||
scorer=rapidfuzz.fuzz.QRatio,
|
||||
processor=rapidfuzz.utils.default_process,
|
||||
)
|
||||
if not extracted:
|
||||
return None
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user