aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Numerlor <[email protected]>2020-11-10 22:22:27 +0100
committerGravatar Numerlor <[email protected]>2020-11-15 03:12:04 +0100
commitddb6b11575c05c8417f5607aec98fb1c09e351af (patch)
treea2b213f574250bd885fd200cf6050140dbc57719
parentUpdate outdated docstring (diff)
Adjust unparseable symbol behaviour
With redis we need to make sure we don't send the "error" string into the cache, returning None instead of the string and then setting it manually in the caller makes this nicer compared to checking against a string
-rw-r--r--bot/exts/info/doc/_cog.py5
-rw-r--r--bot/exts/info/doc/_parsing.py4
2 files changed, 6 insertions, 3 deletions
diff --git a/bot/exts/info/doc/_cog.py b/bot/exts/info/doc/_cog.py
index 4e48e81e5..fa59bcc42 100644
--- a/bot/exts/info/doc/_cog.py
+++ b/bot/exts/info/doc/_cog.py
@@ -292,7 +292,10 @@ class DocCog(commands.Cog):
if markdown is None:
log.debug(f"Redis cache miss for symbol `{symbol}`.")
markdown = await self.item_fetcher.get_markdown(self.bot.http_session, symbol_info)
- await self.doc_cache.set(redis_key, markdown)
+ if markdown is not None:
+ await self.doc_cache.set(redis_key, markdown)
+ else:
+ markdown = "Unable to parse the requested symbol."
embed = discord.Embed(
title=discord.utils.escape_markdown(symbol),
diff --git a/bot/exts/info/doc/_parsing.py b/bot/exts/info/doc/_parsing.py
index 82b2ca808..72e81982a 100644
--- a/bot/exts/info/doc/_parsing.py
+++ b/bot/exts/info/doc/_parsing.py
@@ -287,7 +287,7 @@ def _class_filter_factory(class_names: Iterable[str]) -> Callable[[Tag], bool]:
return match_tag
-def get_symbol_markdown(soup: BeautifulSoup, symbol_data: DocItem) -> str:
+def get_symbol_markdown(soup: BeautifulSoup, symbol_data: DocItem) -> Optional[str]:
"""
Return parsed markdown of the passed symbol using the passed in soup, truncated to 1000 characters.
@@ -296,7 +296,7 @@ def get_symbol_markdown(soup: BeautifulSoup, symbol_data: DocItem) -> str:
symbol_heading = soup.find(id=symbol_data.symbol_id)
if symbol_heading is None:
log.warning("Symbol present in loaded inventories not found on site, consider refreshing inventories.")
- return "Unable to parse the requested symbol."
+ return None
signature = None
# Modules, doc pages and labels don't point to description list tags but to tags like divs,
# no special parsing can be done so we only try to include what's under them.