diff --git a/maubot.yaml b/maubot.yaml index a41b9dd..0d61d9d 100644 --- a/maubot.yaml +++ b/maubot.yaml @@ -1,6 +1,6 @@ maubot: 0.1.0 id: nl.roomsoverview -version: 2.4.0 +version: 2.4.1 license: MIT modules: - roomsoverview diff --git a/roomsoverview.mbp b/roomsoverview.mbp index 1b34b3d..4dce937 100644 Binary files a/roomsoverview.mbp and b/roomsoverview.mbp differ diff --git a/roomsoverview.py b/roomsoverview.py index 677cf8c..1816032 100644 --- a/roomsoverview.py +++ b/roomsoverview.py @@ -545,16 +545,23 @@ class RoomsOverviewPlugin(Plugin): async def _search_rooms(self, terms: str) -> List[Dict[str, Any]]: """Zoek rooms: alle termen moeten matchen (case-insensitive, substring) - in naam, alias of omschrijving.""" + in naam, omschrijving of alias-lokaaldeel. De servernaam van een alias + (`#:`) telt NIET mee als zoektekst — anders geven + rooms op servers als `:linux020.net` false positives bij `over linux`.""" needles = [t for t in (part.lower() for part in terms.split()) if t] if not needles: return [] found = [] for r in await self._list_rooms(): + alias = (r.get("canonical_alias") or "").strip() + alias_local = "" + if alias.startswith("#"): + alias_local = alias[1:].split(":", 1)[0] hay = " ".join( str(r.get(field) or "").lower() - for field in ("display_name", "canonical_alias", "topic") + for field in ("display_name", "topic") ) + hay += " " + alias_local.lower() if all(n in hay for n in needles): found.append(r) return self._sort_rooms(found)