Add weighted search

Fixes #74
This commit is contained in:
Henry Hiles 2026-11-03 15:50:46 -05:00
commit 20eed13884
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs

View file

@ -5,6 +5,7 @@ import "package:nexus/controllers/members_by_status.dart";
import "package:nexus/controllers/rooms.dart";
import "package:nexus/controllers/via.dart";
import "package:nexus/helpers/extensions/get_localpart.dart";
import "package:nexus/helpers/extensions/weighted_search.dart";
import "package:nexus/models/bot_argument_suggestion.dart";
import "package:nexus/models/bot_command_draft.dart";
import "package:nexus/models/content/bot_command_description.dart";
@ -91,13 +92,10 @@ class BotArgumentSuggestionsController(final String roomId)
)
.nonNulls,
)
.where(
(suggestion) =>
!picked.contains(suggestion.text) &&
[
suggestion.title,
suggestion.subtitle,
].any((text) => text?.toLowerCase().contains(query) == true),
.where((suggestion) => !picked.contains(suggestion.text))
.search(
query,
(suggestion) => [(suggestion.title, 2), (suggestion.subtitle, 1)],
)
.take(8)
.toIList();