jenkins-bot has submitted this change and it was merged.
Change subject: Weblib: add docs, replace string concat with urlencode ......................................................................
Weblib: add docs, replace string concat with urlencode
Change-Id: I18c8b7b4c47aba68cffd3435be7fdf4056e3620d --- M pywikibot/weblib.py 1 file changed, 39 insertions(+), 19 deletions(-)
Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
diff --git a/pywikibot/weblib.py b/pywikibot/weblib.py index d068925..c2ad86e 100644 --- a/pywikibot/weblib.py +++ b/pywikibot/weblib.py @@ -11,21 +11,31 @@ # __version__ = '$Id$'
-import pywikibot +import urllib from pywikibot.comms import http
def getInternetArchiveURL(url, timestamp=None): - """Return archived URL by Internet Archive.""" - # See [[:mw:Archived Pages]] and http://archive.org/help/wayback_api.php + """Return archived URL by Internet Archive. + + Parameters: + url - url to search an archived version for + timestamp - requested archive date. The version closest to that moment + is returned. Format: YYYYMMDDhhmmss or part thereof. + + See [[:mw:Archived Pages]] and http://archive.org/help/wayback_api.php + for more details. + """ import json - query = u'http://archive.org/wayback/available?' - query += u'url=' - query += url - if not timestamp is None: - query += u'×tamp=' - query += timestamp - jsontext = http.request(uri=query, site=None) + uri = u'http://archive.org/wayback/available?' + + query = {'url': url} + + if timestamp is not None: + query['timestamp'] = timestamp + + uri = uri + urllib.urlencode(query) + jsontext = http.request(uri=uri, site=None) if "closest" in jsontext: data = json.loads(jsontext) return data['archived_snapshots']['closest']['url'] @@ -34,17 +44,27 @@
def getWebCitationURL(url, timestamp=None): - """Return archived URL by Web Citation.""" - # See http://www.webcitation.org/doc/WebCiteBestPracticesGuide.pdf + """Return archived URL by Web Citation. + + Parameters: + url - url to search an archived version for + timestamp - requested archive date. The version closest to that moment + is returned. Format: YYYYMMDDhhmmss or part thereof. + + See http://www.webcitation.org/doc/WebCiteBestPracticesGuide.pdf + for more details + """ import xml.etree.ElementTree as ET - query = u'http://www.webcitation.org/query?' - query += u'returnxml=true' - query += u'&url=' - query += url + uri = u'http://www.webcitation.org/query?' + + query = {'returnxml': 'true', + 'url': url} + if not timestamp is None: - query += u'&date=' - query += timestamp - xmltext = http.request(uri=query, site=None) + query['date'] = timestamp + + uri = uri + urllib.urlencode(query) + xmltext = http.request(uri=uri, site=None) if "success" in xmltext: data = ET.fromstring(xmltext) return data.find('.//webcite_url').text
pywikibot-commits@lists.wikimedia.org