Revision: 6946
Author:   alexsh
Date:     2009-06-09 18:22:04 +0000 (Tue, 09 Jun 2009)

Log Message:
-----------
*config.py
-preSet globalAccount flag
-remove no use comment.
*family.py
-add cross_allowed for global bot flag
-update ns-info by update_namespaces.py
*families
-add allowed languages
-update ns-info by update_namespaces.py
-fix oldwikisource link faild when SSL
*login.py:typo
*spamremove.py:typo for syntax in msgs
*speedy_delete.py:add new template for zhwiki
*wikipedia.py
-site._getUserData:detect global bot flag.
-translate: add keyword "_default"
-output: ignore print_stack raise None when OS in windows

Modified Paths:
--------------
    trunk/pywikipedia/config.py
    trunk/pywikipedia/families/wikipedia_family.py
    trunk/pywikipedia/families/wikiquote_family.py
    trunk/pywikipedia/families/wikisource_family.py
    trunk/pywikipedia/families/wikiversity_family.py
    trunk/pywikipedia/families/wiktionary_family.py
    trunk/pywikipedia/family.py
    trunk/pywikipedia/login.py
    trunk/pywikipedia/spamremove.py
    trunk/pywikipedia/speedy_delete.py
    trunk/pywikipedia/wikipedia.py

Modified: trunk/pywikipedia/config.py
===================================================================
--- trunk/pywikipedia/config.py 2009-06-08 13:28:24 UTC (rev 6945)
+++ trunk/pywikipedia/config.py 2009-06-09 18:22:04 UTC (rev 6946)
@@ -44,6 +44,7 @@
 sysopnames = {}
 disambiguation_comment = {}
 gdab_namespaces = {}
+account_global = False
 
 # Solve captchas in the webbrowser. Setting this to False will result in the
 # exception CaptchaError be thrown if a captcha is encountered.
@@ -63,11 +64,7 @@
 # 2. You must use the hostname of the site, not its family/language pair
 authenticate = {}
 
-#
 #    Security Connection for Wikimedia Projects
-#
-#
-#
 SSL_connection = False
 
 # Available security projects
@@ -75,11 +72,6 @@
     
u'wikipedia',u'wikinews',u'wikisource',u'wiktionary',u'wikibooks',u'wikiquote',u'wikiversity',
     u'meta',u'mediawiki',u'commons',u'species',u'incubator'
 ]
-#]
-#
-#
-#
-#
        
 # password_file = ".passwd"
 # A password file with default passwords. For more information, please
@@ -548,6 +540,7 @@
                 if _all or _glv[_name]!=globals()[_name]:
                     print _name,"=",repr(globals()[_name])
 
+
 # cleanup all locally-defined variables
 
 for __var in globals().keys():

Modified: trunk/pywikipedia/families/wikipedia_family.py
===================================================================
--- trunk/pywikipedia/families/wikipedia_family.py      2009-06-08 13:28:24 UTC 
(rev 6945)
+++ trunk/pywikipedia/families/wikipedia_family.py      2009-06-09 18:22:04 UTC 
(rev 6946)
@@ -409,7 +409,7 @@
             'als': u'Portal Diskussion',
             'an': u'Descusión Portal',
             'ar': u'نقاش البوابة',
-            'arz': u'نقاش البوابة',
+            'arz': u'مناقشة بوابة',
             'bar': u'Portal Diskussion',
             'be-x-old': u'Абмеркаваньне парталу',
             'bg': u'Портал беседа',
@@ -851,6 +851,22 @@
             'zh-min-nan': u'Khu-pia̍t-ia̍h',
             }
 
+        self.cross_allowed = [
+            
'ab','af','ak','am','ang','arc','arz','as','av','ay','az','ba','bcl',
+            
'be-x-old','be','bg','bh','bi','bm','bo','bpy','bug','bxr','cbk-zam',
+            'cdo','ce','ch','chy','co','crh','cr','csb','cu','diq','dsb','dz',
+            
'ee','eml','eu','ext','fa','ff','fj','fo','frp','fur','gan','ga','glk',
+            
'gn','got','gu','gv','ha','hak','haw','hif','hi','hsb','ht','hu','hy',
+            
'ia','ie','ig','ik','ilo','iow','iu','jbo','kaa','kab','ka','kg','ki',
+            
'kl','km','kn','ko','ks','ku','kv','kw','ky','lad','lbe','lg','li','lij',
+            
'lmo','ln','lo','map-bms','mdf','mg','mk','mn','myv','my','mzn','nah',
+            
'na','nds-nl','new','nl','nov','nrm','nv','ny','om','or','os','pam','pap',
+            
'pa','pdc','pnt','ps','qu','rm','rmy','rn','roa-rup','roa-tara','sah',
+            
'sa','sc','sco','sd','se','sg','sh','simple','si','sk','sm','sn','so',
+            
'srn','stq','st','su','sw','szl','ta','te','tet','tg','ti','tn','to',
+            
'tpi','ts','tt','tum','tw','ty','ug','uz','ve','wa','war','wo','wuu',
+            'xal','xh','yi','yo','za','zh','zu'
+        ]
         # On most Wikipedias page names must start with a capital letter, but 
some
         # languages don't use this.
 

Modified: trunk/pywikipedia/families/wikiquote_family.py
===================================================================
--- trunk/pywikipedia/families/wikiquote_family.py      2009-06-08 13:28:24 UTC 
(rev 6945)
+++ trunk/pywikipedia/families/wikiquote_family.py      2009-06-09 18:22:04 UTC 
(rev 6946)
@@ -62,6 +62,7 @@
             'sk': u'Wikicitáty',
             'sl': u'Wikinavedek',
             'tr': u'Vikisöz',
+            'uk': u'Вікіцитати',
             'ur': u'وکی اقتباسات',
             'uz': u'Vikiiqtibos',
         }
@@ -135,7 +136,7 @@
             'th': u'คุยเรื่องWikiquote',
             'tr': u'Vikisöz tartışma',
             'tt': u'Wikiquote bäxäse',
-            'uk': u'Обговорення Wikiquote',
+            'uk': u'Обговорення Вікіцитатей',
             'ur': u'تبادلۂ خیال وکی اقتباسات',
             'uz': u'Vikiiqtibos munozarasi',
             'vi': u'Thảo luận Wikiquote',
@@ -202,6 +203,11 @@
         # List of languages that want the category on_one_line.
         self.category_on_one_line = []
 
+
+        self.cross_allowed = [
+            'af','am','ang','ar','ast','az','da','fa','it',
+            'ka','ko','la','nn','no','ro','simple','sv','zh'
+        ]
         # Which languages have a special order for putting interlanguage links,
         # and what order is it? If a language is not in interwiki_putfirst,
         # alphabetical order on language code is used. For languages that are 
in

Modified: trunk/pywikipedia/families/wikisource_family.py
===================================================================
--- trunk/pywikipedia/families/wikisource_family.py     2009-06-08 13:28:24 UTC 
(rev 6945)
+++ trunk/pywikipedia/families/wikisource_family.py     2009-06-09 18:22:04 UTC 
(rev 6946)
@@ -1,6 +1,6 @@
 # -*- coding: utf-8  -*-
 import urllib
-import family, config, wikipedia
+import family, config
 
 __version__ = '$Id$'
 
@@ -20,7 +20,6 @@
             'gl', 'zh-min-nan', 'fo',
         ]
 
-        self.langs['-'] = 'wikisource.org'
         if config.SSL_connection and self.name in config.available_ssl_project:
             for lang in self.languages_by_size:
                 self.langs[lang] = 'secure.wikimedia.org'
@@ -60,6 +59,7 @@
             'hu': u'Wikiforrás',
             'hy': u'Վիքիդարան',
             'is': u'Wikiheimild',
+            'ko': u'위키문헌',
             'la': u'Vicifons',
             'li': u'Wikibrónne',
             'lt': u'Vikišaltiniai',
@@ -105,7 +105,7 @@
             'it': u'Discussioni Wikisource',
             'ja': u'Wikisource‐ノート',
             'kn': u'Wikisource ಚರ್ಚೆ',
-            'ko': u'Wikisource토론',
+            'ko': u'위키문헌토론',
             'la': u'Disputatio Vicifontis',
             'li': u'Euverlèk Wikibrónne',
             'lt': u'Vikišaltiniai aptarimas',
@@ -345,10 +345,19 @@
             'pl': self.alphabetic,
             'simple': self.alphabetic
         }
-    if config.SSL_connection and wikipedia.default_code == '-':
-        def scriptpath(self, code):
-            return '/wikipedia/sources/w'
-
+        self.cross_allowed = [
+            'el','fa','it','ko','no','zh'
+        ]
+    
+    def scriptpath(self, code):
+        if config.SSL_connection:
+            if code == '-':
+                return '/wikipedia/sources/w'
+            else:
+                return '/%s/%s/w' % (self.name, code)
+        else:
+            return '/w'
+    
     def version(self, code):
         return '1.15alpha'
 

Modified: trunk/pywikipedia/families/wikiversity_family.py
===================================================================
--- trunk/pywikipedia/families/wikiversity_family.py    2009-06-08 13:28:24 UTC 
(rev 6945)
+++ trunk/pywikipedia/families/wikiversity_family.py    2009-06-09 18:22:04 UTC 
(rev 6946)
@@ -110,10 +110,15 @@
         }
         self.namespaces[110] = {
             'fr': u'Transwiki',
+            'ja': u'Transwiki',
         }
         self.namespaces[111] = {
             'fr': u'Discussion Transwiki',
+            'ja': u'Transwiki‐ノート',
         }
+        self.cross_allowed = [
+            'ja',
+        ]
 
     def version(self,code):
         return '1.15alpha'

Modified: trunk/pywikipedia/families/wiktionary_family.py
===================================================================
--- trunk/pywikipedia/families/wiktionary_family.py     2009-06-08 13:28:24 UTC 
(rev 6945)
+++ trunk/pywikipedia/families/wiktionary_family.py     2009-06-09 18:22:04 UTC 
(rev 6946)
@@ -370,6 +370,10 @@
         # letter on ALL Wiktionaries.
         self.nocapitalize = self.langs.keys()
 
+        self.cross_allowed = [
+            'ang','bg','bn','eo','fa','fy','gd','ia','ie','jv','ka','lt','mk',
+            'nl','no','sk','th','ti','ts','uk','vo','za','zh-min-nan','zh',
+        ]
         self.obsolete = {
             'aa': None, # 
http://meta.wikimedia.org/wiki/Proposals_for_closing_projects/Closure_of_Afar_Wiktionary
             'ab': None, # 
http://meta.wikimedia.org/wiki/Proposals_for_closing_projects/Closure_of_Abkhaz_Wiktionary

Modified: trunk/pywikipedia/family.py
===================================================================
--- trunk/pywikipedia/family.py 2009-06-08 13:28:24 UTC (rev 6945)
+++ trunk/pywikipedia/family.py 2009-06-09 18:22:04 UTC (rev 6946)
@@ -875,11 +875,15 @@
             4: {
                 '_default': u'Project',
                 'cs': u'Wikizdroje',
+                'ko': u'위키문헌',
+                'uk': u'Вікіцитати',
             },
             5: {
                 '_default': u'Project talk',
                 'cs': u'Wikizdroje diskuse',
                 'gan': u'Wikipedia talk',
+                'ko': u'위키문헌토론',
+                'uk': u'Обговорення Вікіцитатей',
             },
             6: {
                 '_default': [u'File', u'Image'],
@@ -2946,7 +2950,8 @@
         self.disambiguationTemplates = {
             '_default': []
         }
-
+        # A list with the name in the cross-language flag permissions
+        self.cross_allowed = []
         # A list with the name of the category containing disambiguation
         # pages for the various languages. Only one category per language,
         # and without the namespace, so add things like:

Modified: trunk/pywikipedia/login.py
===================================================================
--- trunk/pywikipedia/login.py  2009-06-08 13:28:24 UTC (rev 6945)
+++ trunk/pywikipedia/login.py  2009-06-09 18:22:04 UTC (rev 6946)
@@ -298,7 +298,7 @@
         for familyName in namedict.iterkeys():
             for lang in namedict[familyName].iterkeys():
                 try:
-                    site = wikipedia.getSite(code=lang, fam=familyName)
+                    site = wikipedia.getSite( code=lang, fam=familyName )
                     if not forceLogin and site.loggedInAs(sysop = sysop) is 
not None:
                         wikipedia.output(u'Already logged in on %s' % site)
                     else:

Modified: trunk/pywikipedia/spamremove.py
===================================================================
--- trunk/pywikipedia/spamremove.py     2009-06-08 13:28:24 UTC (rev 6945)
+++ trunk/pywikipedia/spamremove.py     2009-06-09 18:22:04 UTC (rev 6946)
@@ -37,7 +37,7 @@
         'en': u'Removing links to spamming site %s',
         'es': u'Removiendo enlaces a sitio publicitario %s',
         'he': u'מסיר קישורים לאתר ספאם %s',
-        'fr': u'Suppression du lien blacklisté %s'
+        'fr': u'Suppression du lien blacklisté %s',
         'it': u'Rimuovo link contenuto nella Spam-Blacklist %s',
         'ja': u'ロボットによる: 迷惑リンク削除 %s',
         'nl': u'Links naar gespamde site: %s verwijderd',

Modified: trunk/pywikipedia/speedy_delete.py
===================================================================
--- trunk/pywikipedia/speedy_delete.py  2009-06-08 13:28:24 UTC (rev 6945)
+++ trunk/pywikipedia/speedy_delete.py  2009-06-09 18:22:04 UTC (rev 6946)
@@ -120,6 +120,7 @@
                 },
             'zh':{
                 u'_default':u'[[WP:CSD]]',
+                               u'Db-spam':u'[[WP:CSD#G11|CSD G11]]: 廣告、宣傳頁面',
                 u'Notchinese':u'[[WP:CSD#G7|CSD G7]]: 非中文條目且長時間未翻譯',
                 u'No source':u'[[WP:CSD#I3|CSD I3]]: 沒有來源連結,無法確認來源與版權資訊',
                 u'No license':u'[[WP:CSD#I3|CSD I3]]: 沒有版權模板,無法確認版權資訊',

Modified: trunk/pywikipedia/wikipedia.py
===================================================================
--- trunk/pywikipedia/wikipedia.py      2009-06-08 13:28:24 UTC (rev 6945)
+++ trunk/pywikipedia/wikipedia.py      2009-06-09 18:22:04 UTC (rev 6946)
@@ -4876,7 +4876,22 @@
         # Check user groups, if possible (introduced in 1.10)
         groupsR = re.compile(r'var wgUserGroups = \[\"(.+)\"\];')
         m = groupsR.search(text)
-        if m:
+        checkLocal = True
+        if default_code in self.family.cross_allowed: # if current languages 
in cross allowed list, check global bot flag.
+            globalgroupsR = re.compile(r'var wgGlobalGroups = \[\"(.+)\"\];')
+            mg = globalgroupsR.search(text)
+            if mg: # the account had global permission
+                globalRights = mg.group(1)
+                globalRights = globalRights.split('","')
+                self._rights[index] = globalRights
+                if self._isLoggedIn[index]:
+                    if 'Global_bot' in globalRights: # This account had global 
bot flag, no need to check local flags.
+                        checkLocal = False
+                    else:
+                        output(u'Your bot account does not have global bot 
flag, checking local flag.')
+        else:
+            if verbose: output(u'Note:this language does not allowed global 
bot.')
+        if m and checkLocal:
             rights = m.group(1)
             rights = rights.split('", "')
             if '*' in rights:
@@ -6441,8 +6456,8 @@
             # about it.
             nonGlobalArgs.append(arg)
     if verbose:
-      output(u'Pywikipediabot %s' % (version.getversion()))
-      output(u'Python %s' % (sys.version))
+      output('Pywikipediabot %s' % (version.getversion()))
+      output('Python %s' % (sys.version))
     return nonGlobalArgs
 
 #########################
@@ -6604,7 +6619,7 @@
     if hasattr(code,'lang'):
         code = code.lang
 
-    if 'wikipedia' in xdict:
+    if 'wikipedia' in xdict: # If xdict attribute is wikipedia, define the 
xdite had multiple projects
         if default_family in xdict:
             xdict = xdict[default_family]
         else:
@@ -6615,7 +6630,9 @@
     for alt in altlang(code):
         if alt in xdict:
             return xdict[alt]
-    if 'en' in xdict:
+    if '_default' in xdict:
+        return xdict['_default']
+    elif 'en' in xdict:
         return xdict['en']
     return xdict.values()[0]
 
@@ -6759,7 +6776,7 @@
         if decoder:
             text = unicode(text, decoder)
         elif type(text) is not unicode:
-            if verbose:
+            if verbose and sys.platform != 'win32':
                 print "DBG> BUG: Non-unicode (%s) passed to wikipedia.output 
without decoder!" % type(text)
                 print traceback.print_stack()
                 print "DBG> Attempting to recover, but please report this 
problem"



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

Reply via email to