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

Revision: 11270
Author:   xqt
Date:     2013-03-25 17:22:35 +0000 (Mon, 25 Mar 2013)
Log Message:
-----------
Checks whether MediaWiki:Disambiguationpages exists on a site and compares it
with Family.disambiguationTemplates dictionary

Added Paths:
-----------
    trunk/pywikipedia/maintenance/check_disambiguationspage.py

Added: trunk/pywikipedia/maintenance/check_disambiguationspage.py
===================================================================
--- trunk/pywikipedia/maintenance/check_disambiguationspage.py                  
        (rev 0)
+++ trunk/pywikipedia/maintenance/check_disambiguationspage.py  2013-03-25 
17:22:35 UTC (rev 11270)
@@ -0,0 +1,74 @@
+#!/usr/bin/python
+# -*- coding: utf-8     -*-
+"""
+Checks whether MediaWiki:Disambiguationpages exists on a site and compares it
+with Family.disambiguationTemplates dictionary
+
+"""
+#
+# (C) xqt 2013
+#
+# Distributed under the terms of the MIT license.
+#
+__version__ = '$Id$'
+#
+import sys
+sys.path.insert(1, '..')
+import pywikibot
+
+DEFAULT = '_default'
+MESSAGE = 'Disambiguationspage'
+
+
+def check_disambig(f):
+    print u'Processing %s family:' % f.name
+    for k in sorted(f.disambiguationTemplates.keys()):
+        isdefault = False
+        if k == DEFAULT:
+            continue
+        print k + ':'
+        site = pywikibot.getSite(k)
+        try:
+            default = set(site.family.disambig(DEFAULT))
+        except KeyError:
+            default = set([u'Disambig'])
+        try:
+            distl = set(f.disambig(k, fallback=False))
+        except KeyError:
+            distl = set()
+        try:
+            disambigpages = pywikibot.Page(site, MESSAGE, defaultNamespace=8)
+            disambigs = set(link.title(withNamespace=False)
+                            for link in disambigpages.linkedPages()
+                            if link.namespace() == 10)
+        except pywikibot.NoPage:
+            isdefault = True
+            message = site.mediawiki_message(MESSAGE).strip('{[]}').split(':',
+                                                                          1)[1]
+            disambigs = set([message[:1].upper() + message[1:]]) | default
+        print 'Using default MediaWiki message:', isdefault
+        if distl != disambigs:
+            if disambigs - distl:
+                l = list(disambigs - distl)
+                pywikibot.output("missing on family file:\n[u'%s'],"
+                                 % "', u'".join(l))
+            if distl - disambigs:
+                l = list(distl - disambigs)
+                pywikibot.output("missing on MediaWiki message:\n%s,"
+                                 % "' u".join(l))
+        else:
+            pywikibot.output('remove %s from family file' % k)
+        print
+    else:
+        print 'No disambiguationTemplates dictionary found'
+
+
+def main(*args):
+    for arg in pywikibot.handleArgs(*args):
+        continue
+    check_disambig(pywikibot.getSite().family)
+
+
+if __name__ == "__main__":
+    pywikibot.stopme()
+    main()


Property changes on: trunk/pywikipedia/maintenance/check_disambiguationspage.py
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native


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

Reply via email to