User:TalBot/nsrw-move.py


 * 1) ! /usr/bin/env python
 * 2) _*_ coding: utf8 _*_
 * 3) Move the New Student's Reference Work pages to the Page namespace; place soft
 * 4) redirects; remove navigation template
 * 5) (modified version of an earlier page move script)
 * 6) run with args "-log -putthrottle:xx"
 * 7) Copyright (C) 2006, 2007 GrafZahl (en.wikisource.org user)
 * 8) Licence: GPLv2
 * 1) run with args "-log -putthrottle:xx"
 * 2) Copyright (C) 2006, 2007 GrafZahl (en.wikisource.org user)
 * 3) Licence: GPLv2
 * 1) Licence: GPLv2
 * 1) Licence: GPLv2

import wikipedia


 * 1) Handle args

args = wikipedia.handleArgs

for arg in args: wikipedia.output(u'(WWW) Ignoring unrecognised argument: %s\n' % arg)


 * 1) basic text tokens, etc.

numbooks = 5 numpages = [ 570, 579, 554, 557, 532 ] base_old = u'The New Student\'s Reference Work/%d-%04d' base_new = u'Page:LA2-NSRW-%d-%04d.jpg' base_overwrite = u'"Page:LA2-NSRW-%d-%04d.jpg"' base_search = u'\\{\\{LA2-NSRW\\|%d-%04d\\|%d-%04d\\|%d-%04d\\}\\}\n' movesumm = u'[bot] conversion to ProofreadPage naming conventions' oversumm = u'[bot] conversion to dated soft redirect' replacesumm = u'[bot] removing navigation template'


 * 1) Start operation

site = wikipedia.getSite

for b in range(1, numbooks + 1): for n in range(1, numpages[b-1] + 1): # Get all strings straight if n > 1: bminus = b			nminus = n - 1 elif b > 1: bminus = b - 1 nminus = numpages[b-2] else: bminus = 1 nminus = 1 if n < numpages[b-1]: bplus = b			nplus = n + 1 elif b < numbooks: bplus = b + 1 nplus = 1 else: bplus = b			nplus = numpages[b-1] oldpage = base_old % ( b, n ) newpage = base_new % ( b, n ) overwrite = base_overwrite % ( b, n ) search = base_search % ( bminus, nminus, b, n, bplus, nplus ) # Step 1: Move oldpage to newpage wikipedia.output(u'(III) Moving %s to %s\n' % ( oldpage, newpage )) try: page = wikipedia.Page(site, oldpage) page.move(newpage, movesumm) except wikipedia.Error: wikipedia.output(u'(EEE) Page move %s -> %s failed' % ( oldpage, newpage )) continue # Step 2: Place soft redirect over oldpage wikipedia.output(u'(III) Placing soft redirect over %s\n' % oldpage) try: page.put(overwrite, oversumm, minorEdit = False) except wikipedia.Error: wikipedia.output(u'(EEE) Placing soft redirect over %s failed' % oldpage) # Step 3: delete navigation template wikipedia.output(u'(III) Deleting "%s" in %s\n' % ( search, newpage )) try: page = wikipedia.Page(site, newpage) text = page.get text = wikipedia.replaceExcept(text, search, u'', [ 'comment', 'math', 'nowiki', 'pre', 'startspace' ]) page.put(text, replacesumm, minorEdit = False) except wikipedia.Error: wikipedia.output(u'(EEE) Deletion of navigation template failed in %s' % newpage)