http://www.mediawiki.org/wiki/Special:Code/pywikipedia/11290

Revision: 11290
Author:   xqt
Date:     2013-03-29 08:49:35 +0000 (Fri, 29 Mar 2013)
Log Message:
-----------
check whether all language codes are listed at wikistats. Otherwise extend the 
new list with the difference.

Modified Paths:
--------------
    trunk/pywikipedia/maintenance/wikimedia_sites.py

Modified: trunk/pywikipedia/maintenance/wikimedia_sites.py
===================================================================
--- trunk/pywikipedia/maintenance/wikimedia_sites.py    2013-03-29 08:45:29 UTC 
(rev 11289)
+++ trunk/pywikipedia/maintenance/wikimedia_sites.py    2013-03-29 08:49:35 UTC 
(rev 11290)
@@ -13,7 +13,7 @@
 import sys, re
 
 sys.path.insert(1, '..')
-import wikipedia
+import pywikibot
 import codecs
 
 familiesDict = {
@@ -31,13 +31,13 @@
     if not families:
         families = familiesDict.keys()
     for family in families:
-        wikipedia.output('Checking family %s:' % family)
+        pywikibot.output('Checking family %s:' % family)
 
-        original = wikipedia.Family(family).languages_by_size
-        obsolete = wikipedia.Family(family).obsolete
+        original = pywikibot.Family(family).languages_by_size
+        obsolete = pywikibot.Family(family).obsolete
 
         url = 'http://s23.org/wikistats/%s' % familiesDict[family]
-        uo = wikipedia.MyURLopener
+        uo = pywikibot.MyURLopener
         f = uo.open(url)
         text = f.read()
 
@@ -53,9 +53,11 @@
                 continue
             new.append(lang)
         if original == new:
-            wikipedia.output(u'The lists match!')
+            pywikibot.output(u'The lists match!')
         else:
-            wikipedia.output(u"The lists don't match, the new list is:")
+            pywikibot.output(u"The lists don't match, the new list is:")
+            missing = set(original) - set(new)
+            new += missing
             text = u'        self.languages_by_size = [\r\n'
             line = ' ' * 11
             for lang in new:
@@ -63,15 +65,20 @@
                     line += u" '%s'," % lang
                 else:
                     text += u'%s\r\n' % line
-                    line = '           '
+                    line = ' ' * 11
                     line += u" '%s'," % lang
             text += u'%s\r\n' % line
             text += u'        ]'
-            wikipedia.output(text)
+            pywikibot.output(text)
+            if missing:
+                pywikibot.output(u"WARNING: ['%s'] not listed at wikistats.\n"
+                                 u"Now listed as last item\n"
+                                 % "', '".join(missing))
             family_file_name = '../families/%s_family.py' % family
             family_file = codecs.open(family_file_name, 'r', 'utf8')
             old_text = family_text = family_file.read()
-            old = re.findall(ur'(?msu)^ {8}self.languages_by_size.+?\]', 
family_text)[0]
+            old = re.findall(ur'(?msu)^ {8}self.languages_by_size.+?\]',
+                             family_text)[0]
             family_text = family_text.replace(old, text)
             family_file = codecs.open(family_file_name, 'w', 'utf8')
             family_file.write(family_text)
@@ -80,9 +87,9 @@
 if __name__ == '__main__':
     try:
         fam = []
-        for arg in wikipedia.handleArgs():
+        for arg in pywikibot.handleArgs():
             if arg in familiesDict.keys() and arg not in fam:
                 fam.append(arg)
         update_family(fam)
     finally:
-        wikipedia.stopme()
+        pywikibot.stopme()


_______________________________________________
Pywikipedia-svn mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-svn

Reply via email to