Revision: 5774 Author: russblau Date: 2008-07-29 17:42:54 +0000 (Tue, 29 Jul 2008)
Log Message: ----------- Better template detection.
Modified Paths: -------------- trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/wikipedia.py =================================================================== --- trunk/pywikipedia/wikipedia.py 2008-07-29 10:57:01 UTC (rev 5773) +++ trunk/pywikipedia/wikipedia.py 2008-07-29 17:42:54 UTC (rev 5774) @@ -1708,10 +1708,10 @@ Template parameters are ignored. """ if not hasattr(self, "_templates"): - self._templates = [template - for (template, param) - in self.templatesWithParams( - get_redirect=get_redirect)] + self._templates = list(set(template + for (template, param) + in self.templatesWithParams( + get_redirect=get_redirect))) return self._templates
def templatesWithParams(self, thistxt=None, get_redirect=False): @@ -1750,7 +1750,8 @@ result = [] inside = {} count = 0 - Rtemplate = re.compile(ur'{{(msg:)?(?P<name>[^{|]+?)(|(?P<params>[^{]+?))?}}') + Rtemplate = re.compile( + ur'{{(msg:)?(?P<name>[^{|]+?)(|(?P<params>[^{]+?))?}}') Rlink = re.compile(ur'[[[^]]+]]') Rmath = re.compile(ur'<math>[^<]+</math>') Rmarker = re.compile(ur'%s(\d+)%s' % (marker, marker)) @@ -1781,7 +1782,7 @@ inside[count] = text
# Name - name = m.group('name') + name = m.group('name').strip() m2 = Rmarker.search(name) or Rmath.search(name) if m2 is not None: # Doesn't detect templates whose name changes, @@ -1792,7 +1793,7 @@ try: name = Page(self.site(), name).title() except InvalidTitle: - if name.strip(): + if name: output( u"Page %s contains invalid template name {{%s}}." % (self.title(), name.strip()))