http://www.mediawiki.org/wiki/Special:Code/pywikipedia/10063
Revision: 10063 Author: xqt Date: 2012-03-30 12:51:37 +0000 (Fri, 30 Mar 2012) Log Message: ----------- featured.py need to identify the "#" sortkey (bug #3511935)
Modified Paths: -------------- trunk/pywikipedia/featured.py
Modified: trunk/pywikipedia/featured.py =================================================================== --- trunk/pywikipedia/featured.py 2012-03-30 12:45:34 UTC (rev 10062) +++ trunk/pywikipedia/featured.py 2012-03-30 12:51:37 UTC (rev 10063) @@ -49,8 +49,8 @@ # # (C) Maxim Razin, 2005 # (C) Leonardo Gregianin, 2005-2008 -# (C) xqt, 2009-2011 -# (C) Pywikipedia bot team, 2005-2011 +# (C) xqt, 2009-2012 +# (C) Pywikipedia bot team, 2005-2012 # # Distributed under the terms of the MIT license. # @@ -60,10 +60,14 @@ from pywikibot import i18n import catlib, config
-def CAT(site,name): +def CAT(site, name, hide=None): name = site.namespace(14) + ':' + name cat=catlib.Category(site, name) - return cat.articles() + for article in cat.articles(endsort=hide): + yield article + if hide: + for article in cat.articles(startFrom=chr(ord(hide)+1)): + yield article
def BACK(site,name): name = site.namespace(10) + ':' + name @@ -288,8 +292,10 @@ 'zh': (BACK, u'Featured list'), }
+# Third parameter is the sort key indicating articles to hide from the given list former_name = { 'ca': (CAT, u"Arxiu de propostes de la retirada de la distinció"), + 'en': (CAT, u"Wikipedia former featured articles", "#"), 'es': (CAT, u"Wikipedia:Artículos anteriormente destacados"), 'fa': (CAT, u"مقالههای برگزیده پیشین"), 'hu': (CAT, u"Korábbi kiemelt cikkek"), @@ -308,29 +314,28 @@
def featuredArticles(site, pType): arts=[] + if pType == 'good': + info = good_name + elif pType == 'former': + info = former_name + elif pType == 'list': + info = lists_name + else: + info = featured_name try: - if pType == 'good': - method = good_name[site.lang][0] - elif pType == 'former': - method = former_name[site.lang][0] - elif pType == 'list': - method = lists_name[site.lang][0] - else: - method = featured_name[site.lang][0] + method = info[site.lang][0] except KeyError: pywikibot.output( u'Error: language %s doesn't has %s category source.' % (site.lang, pType)) return arts - if pType == 'good': - name = good_name[site.lang][1] - elif pType == 'former': - name = former_name[site.lang][1] - elif pType == 'list': - name = lists_name[site.lang][1] - else: - name = featured_name[site.lang][1] - raw = method(site, name) + name = info[site.lang][1] + # hide #-sorted items on en-wiki + try: + hide = info[site.lang][2] + except IndexError: + hide = None + raw = method(site, name, hide) for p in raw: if p.namespace() == 0: # Article arts.append(p)