jenkins-bot submitted this change.

View Change

Approvals: Mpaa: Looks good to me, approved jenkins-bot: Verified
[bugfix] Enable APISite.exturlusage() with default parameters

- url parameter of APISite.exturlusage() may be None and not
a sequence by default.
- use rpartition to retrieve protocol and url

Bug: T266989
Change-Id: I392fbbbdb5a41c6e435f41ba9673685c0b057c68
---
M pywikibot/site/__init__.py
1 file changed, 15 insertions(+), 13 deletions(-)

diff --git a/pywikibot/site/__init__.py b/pywikibot/site/__init__.py
index f4408a1..0c28349 100644
--- a/pywikibot/site/__init__.py
+++ b/pywikibot/site/__init__.py
@@ -3890,7 +3890,7 @@

@see: U{https://www.mediawiki.org/wiki/API:Exturlusage}

- @param url: The URL to search for (with ot without the protocol
+ @param url: The URL to search for (with or without the protocol
prefix); this may include a '*' as a wildcard, only at the start
of the hostname
@param namespaces: list of namespace numbers to fetch contribs from
@@ -3899,21 +3899,23 @@
@param protocol: Protocol to search for, likely http or https, http by
default. Full list shown on Special:LinkSearch wikipage
"""
- separator = '://'
- if separator in url:
- found_protocol = url[:url.index(separator)]
- url = url[url.index(separator) + len(separator):]
- if protocol and protocol != found_protocol:
- raise ValueError('Protocol was specified, but a different one '
- 'was found in searched url')
- protocol = found_protocol
+ if url is not None:
+ found_protocol, _, url = url.rpartition('://')
+
+ # If url is * we make it None in order to search for every page
+ # with any URL.
+ if url == '*':
+ url = None
+
+ if found_protocol:
+ if protocol and protocol != found_protocol:
+ raise ValueError('Protocol was specified, but a different '
+ 'one was found in searched url')
+ protocol = found_protocol
+
if not protocol:
protocol = 'http'

- # If url is * we make it None in order to search for every page
- # with any URL.
- if url == '*':
- url = None
return self._generator(api.PageGenerator, type_arg='exturlusage',
geuquery=url, geuprotocol=protocol,
namespaces=namespaces,

To view, visit change 638017. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I392fbbbdb5a41c6e435f41ba9673685c0b057c68
Gerrit-Change-Number: 638017
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: Mpaa <mpaa.wiki@gmail.com>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged