Revision: 7819
Author: xqt
Date: 2009-12-23 10:34:31 +0000 (Wed, 23 Dec 2009)
Log Message:
-----------
handle iw-message for nn-wiki
Modified Paths:
--------------
trunk/pywikipedia/cosmetic_changes.py
Modified: trunk/pywikipedia/cosmetic_changes.py
===================================================================
--- trunk/pywikipedia/cosmetic_changes.py 2009-12-23 07:30:29 UTC (rev
7818)
+++ trunk/pywikipedia/cosmetic_changes.py 2009-12-23 10:34:31 UTC (rev
7819)
@@ -184,6 +184,8 @@
'zh': u'; 細部更改',
}
+nn_iw_msg = u'<!--interwiki (no, sv, da first; then other languages
alphabetically by name)-->'
+
class CosmeticChangesToolkit:
def __init__(self, site, debug=False, redirect=False, namespace=None):
self.site = site
@@ -226,7 +228,7 @@
Interwiki links to the site itself are displayed like local links.
Remove their language code prefix.
"""
- if not self.talkpage:
+ if not self.talkpage and pywikibot.calledModuleName() <> 'interwiki':
interwikiR = re.compile(r'\[\[%s\s?:([^\[\]\n]*)\]\]' %
self.site.lang)
text = interwikiR.sub(r'[[\1]]', text)
return text
@@ -236,20 +238,25 @@
Makes sure that interwiki links, categories and star templates are
put to the correct position and into the right order.
This combines the old instances standardizeInterwiki and
standardizeCategories
+ The page footer has the following section in that sequence:
+ 1. categories
+ 2. additional information depending on local site policy
+ 3. stars templates for featured and good articles
+ 4. interwiki links
"""
- starsList = ['Link[ _][AFG][LA]', 'link[ _]adq', 'enllaç[ _]ad',
- 'link[ _]ua', 'legătură[ _]af', 'destacado',
+ starsList = ['link[ _][afgu]a', 'link[ _]adq', 'enllaç[ _]ad',
+ 'link[ _]fl', 'legătură[ _]af', 'destacado',
'ua', 'liên k[ _]t[ _]chọn[ _]lọc']
categories = None
interwikiLinks = None
allstars = []
+ hasCommentLine = False
# The PyWikipediaBot is no longer allowed to touch categories on the
German Wikipedia.
# See
http://de.wikipedia.org/wiki/Hilfe_Diskussion:Personendaten/Archiv/bis_2006#Position_der_Personendaten_am_.22Artikelende.22
# ignoring nn-wiki of cause of the comment line above iw section
- if not self.template and not '{{Personendaten' in text and \
- self.site.sitename() != 'wikipedia:nn':
+ if not self.template and not '{{Personendaten' in text:
categories = pywikibot.getCategoryLinks(text, site = self.site)
if not self.talkpage:# and pywikibot.calledModuleName() <> 'interwiki':
@@ -257,20 +264,33 @@
# Removing the interwiki
text = pywikibot.removeLanguageLinks(text, site = self.site)
- # Dealing the stars' issue
- if self.site.sitename() != 'wikipedia:nn':
- for star in starsList:
- regex = re.compile('(\{\{(?:template:|)%s\|.*?\}\}[\s]*)'
% star, re.I)
- found = regex.findall(text)
- if found != []:
- if pywikibot.verbose:
- print found
- text = regex.sub('', text)
- allstars += found
+ # Removing the stars' issue
+ for star in starsList:
+ regex = re.compile('(\{\{(?:template:|)%s\|.*?\}\}[\s]*)' %
star, re.I)
+ found = regex.findall(text)
+ if found != []:
+ if pywikibot.verbose:
+ print found
+ text = regex.sub('', text)
+ allstars += found
+ # nn got a message between the categories and the iw's
+ # and they want to keep it there, first remove it
+ if self.site.language()=='nn':
+ regex = re.compile('(<!-- ?interwiki \(no(/nv)?, ?sv, ?da first;
then other languages alphabetically by name\) ?-->)')
+ found = regex.findall(text)
+ if found != []:
+ if pywikibot.verbose:
+ print found
+ hasCommentLine = True
+ text = regex.sub('', text)
+
# Adding categories
if categories != None:
text = pywikibot.replaceCategoryLinks(text, categories, site =
self.site)
+ # Put the nn iw message back
+ if self.site.language()=='nn' and not self.talkpage and
(interwikiLinks != None or hasCommentLine):
+ text = text + '\r\n\r\n' + nn_iw_msg
# Adding stars templates
if allstars != []:
text = text.strip()+'\r\n\r\n'
_______________________________________________
Pywikipedia-svn mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-svn