Skip to content

Commit

Permalink
Merge pull request #2575 from SnoopJ/bugfix/gh2573-fix-urlparse-usage
Browse files Browse the repository at this point in the history
wikipedia: fix urlparse usage
  • Loading branch information
dgw authored Dec 3, 2023
2 parents 5f860bb + 43b56a4 commit 120477f
Showing 1 changed file with 18 additions and 3 deletions.
21 changes: 18 additions & 3 deletions sopel/builtins/wikipedia.py
Original file line number Diff line number Diff line change
Expand Up @@ -327,12 +327,22 @@ def mw_image_description(server, image):
def mw_info(bot, trigger, match=None):
"""Retrieves and outputs a snippet of the linked page."""
server = match.group(1)
page_info = urlparse(match.group(2))
article = unquote(page_info.path)
page_info = urlparse(match.group(0))
# in Python 3.9+ this can be str.removeprefix() instead, but we're confident that
# "/wiki/" is at the start of the path anyway since it's part of the pattern
trim_offset = len("/wiki/")
article = unquote(page_info.path)[trim_offset:]
section = unquote(page_info.fragment)

if article.startswith("Special:"):
# The MediaWiki query API does not include pages in the Special:
# namespace, so there's no point bothering when we know this will error
LOGGER.debug("Ignoring page in Special: namespace")
return False

if section:
if section.startswith('cite_note-'): # Don't bother trying to retrieve a snippet when cite-note is linked
if section.startswith('cite_note-'):
# Don't bother trying to retrieve a section snippet if cite-note is linked
say_snippet(bot, trigger, server, article, show_url=False)
elif section.startswith('/media'):
# gh2316: media fragments are usually images; try to get an image description
Expand Down Expand Up @@ -363,6 +373,11 @@ def wikipedia(bot, trigger):
if not query:
bot.reply('What do you want me to look up?')
return plugin.NOLIMIT

if query.startswith("Special:"):
bot.reply("Sorry, the MediaWiki API doesn't support querying the Special: namespace.")
return False

server = lang + '.wikipedia.org'
query = mw_search(server, query, 1)
if not query:
Expand Down

0 comments on commit 120477f

Please sign in to comment.