Revision: 6673
Author: nicdumz
Date: 2009-04-22 18:00:51 +0000 (Wed, 22 Apr 2009)
Log Message:
-----------
Allow replaceLanguageLinks to take Links or Page as 'new' dictionary values
Modified Paths:
--------------
branches/rewrite/pywikibot/textlib.py
Modified: branches/rewrite/pywikibot/textlib.py
===================================================================
--- branches/rewrite/pywikibot/textlib.py 2009-04-22 17:45:07 UTC (rev 6672)
+++ branches/rewrite/pywikibot/textlib.py 2009-04-22 18:00:51 UTC (rev 6673)
@@ -350,8 +350,8 @@
def replaceLanguageLinks(oldtext, new, site = None, addOnly = False):
"""Replace interlanguage links in the text with a new set of links.
- 'new' should be a dict with the Site objects as keys, and Page objects
- as values (i.e., just like the dict returned by getLanguageLinks
+ 'new' should be a dict with the Site objects as keys, and Page or Link
+ object as values (i.e., just like the dict returned by getLanguageLinks
function).
"""
@@ -404,7 +404,7 @@
"""Convert interwiki link dict into a wikitext string.
'links' should be a dict with the Site objects as keys, and Page
- objects as values.
+ or Link objects as values.
Return a unicode string that is formatted for inclusion in insite
(defaulting to the current site).
@@ -417,12 +417,13 @@
ar = interwikiSort(links.keys(), insite)
s = []
for site in ar:
- try:
- link = links[site].title(asLink=True, forceInterwiki=True)
- s.append(link)
- except AttributeError:
- s.append(pywikibot.Link(links[site], \
- pywikibot.getSite(site)).astext(insite))
+ obj = links[site]
+ if isinstance(obj, pywikibot.Link):
+ link = obj.astext(insite)
+ else:
+ # Page
+ link = obj.title(asLink=True, forceInterwiki=True)
+ s.append(link)
if insite.lang in insite.family.interwiki_on_one_line:
sep = u' '
else: