Revision: 4874 Author: rotem Date: 2008-01-13 18:15:26 +0000 (Sun, 13 Jan 2008)
Log Message: ----------- (bug 1863432) Make sure that category links don't contain an interwiki prefix, even if the 'default wiki' is different (this is important for cosmetic_changes with interwiki.py).
Modified Paths: -------------- trunk/pywikipedia/catlib.py trunk/pywikipedia/cosmetic_changes.py trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/catlib.py =================================================================== --- trunk/pywikipedia/catlib.py 2008-01-13 17:52:50 UTC (rev 4873) +++ trunk/pywikipedia/catlib.py 2008-01-13 18:15:26 UTC (rev 4874) @@ -67,7 +67,7 @@ self.articleCache = [] self.subcatCache = []
- def aslink(self, forceInterwiki = False): + def aslink(self, forceInterwiki = False, noInterwiki = False): """ A string representation in the form of a link. This method is different from Page.aslink() as the sortkey may have to be included. @@ -76,7 +76,7 @@ titleWithSortKey = '%s|%s' % (self.title(), self.sortKey) else: titleWithSortKey = self.title() - if forceInterwiki or self.site() != wikipedia.getSite(): + if not noInterwiki and (forceInterwiki or self.site() != wikipedia.getSite()): if self.site().family != wikipedia.getSite().family: return '[[%s:%s:%s]]' % (self.site().family.name, self.site().lang, titleWithSortKey) else:
Modified: trunk/pywikipedia/cosmetic_changes.py =================================================================== --- trunk/pywikipedia/cosmetic_changes.py 2008-01-13 17:52:50 UTC (rev 4873) +++ trunk/pywikipedia/cosmetic_changes.py 2008-01-13 18:15:26 UTC (rev 4874) @@ -131,10 +131,10 @@
def standardizeCategories(self, text): """ - Makes sure that interwiki links are put to the correct position, but + Makes sure that categories are put to the correct position, but does not sort them. """ - # The PyWikipediaBot is no longer allowed to touch categories on the German Wikipedia. See de.wikipedia.org/wiki/Wikipedia_Diskussion:Personendaten#Position + # The PyWikipediaBot is no longer allowed to touch categories on the German Wikipedia. See http://de.wikipedia.org/wiki/Hilfe_Diskussion:Personendaten/Archiv/bis_2006#... if self.site != wikipedia.Site('de', 'wikipedia'): categories = wikipedia.getCategoryLinks(text, site = self.site) text = wikipedia.replaceCategoryLinks(text, categories, site = self.site)
Modified: trunk/pywikipedia/wikipedia.py =================================================================== --- trunk/pywikipedia/wikipedia.py 2008-01-13 17:52:50 UTC (rev 4873) +++ trunk/pywikipedia/wikipedia.py 2008-01-13 18:15:26 UTC (rev 4874) @@ -490,7 +490,7 @@ """Return a more complete string representation.""" return "%s{%s}" % (self.__class__.__name__, str(self))
- def aslink(self, forceInterwiki=False, textlink=False): + def aslink(self, forceInterwiki=False, textlink=False, noInterwiki=False): """Return a string representation in the form of a wikilink.
If forceInterwiki is True, return an interwiki link even if it @@ -502,7 +502,7 @@ a : character). (Not needed if forceInterwiki is True.)
""" - if forceInterwiki or self.site() != getSite(): + if not noInterwiki and (forceInterwiki or self.site() != getSite()): if self.site().family != getSite().family: return u'[[%s:%s:%s]]' % (self.site().family.name, self.site().lang, self.title(savetitle=True)) else: @@ -3240,13 +3240,12 @@ 'categories' should be a list of Category objects.
The string is formatted for inclusion in insite. - """ if not categories: return '' if insite is None: insite = getSite() - catLinks = [category.aslink() for category in categories] + catLinks = [category.aslink(noInterwiki = True) for category in categories] if insite.category_on_one_line(): sep = ' ' else:
pywikipedia-l@lists.wikimedia.org