This commit is contained in:
Nexus 2024-09-19 17:47:05 +01:00
parent a35d3e870e
commit 7c020d47c2

View file

@ -125,13 +125,13 @@ class MSCGetter(niobot.Module):
async def msc( async def msc(
self, self,
ctx: niobot.Context, ctx: niobot.Context,
number: niobot.Argument("number", str, greedy=True) number_or_query: str
): ):
"""Fetches the given MSC""" """Fetches the given MSC"""
number: str number_or_query: str
if number.startswith("?"): # search if number_or_query.startswith("?"): # search
msg = await ctx.respond("Searching for relevant MSCs...") msg = await ctx.respond("Searching for relevant MSCs with query %r..." % number_or_query[1:])
results = await self.search_for_msc(number[1:]) results = await self.search_for_msc(number_or_query[1:])
if not results: if not results:
await msg.edit("No MSCs matched your query.") await msg.edit("No MSCs matched your query.")
@ -169,15 +169,15 @@ class MSCGetter(niobot.Module):
else: else:
await msg.edit(content=lines_formatted) await msg.edit(content=lines_formatted)
return return
if number.startswith("msc"): if number_or_query.startswith("msc"):
number = number[3:] number_or_query = number_or_query[3:]
elif number.startswith("#"): elif number_or_query.startswith("#"):
number = number[1:] number_or_query = number_or_query[1:]
if not number.isdigit() or len(number) != 4: if not number_or_query.isdigit() or len(number_or_query) != 4:
return await ctx.respond("Invalid MXC number.") return await ctx.respond("Invalid MXC number.")
msg = await ctx.respond("Fetching MSC #{:0>4}...".format(number)) msg = await ctx.respond("Fetching MSC #{:0>4}...".format(number_or_query))
data: dict = await self.get_msc_with_cache(int(number)) data: dict = await self.get_msc_with_cache(int(number_or_query))
if data.get("error"): if data.get("error"):
return await msg.edit(data["error"]) return await msg.edit(data["error"])
return await msg.edit(self.pr_to_display(data)) return await msg.edit(self.pr_to_display(data))