From Botwiki
"""
Script to change links after transwiki movements of pages
(from Wikipedia or another sister project, to Wiktionary).
"""
import os, sys
import wikipedia, pagegenerators, replace
def main():
oldTitle = None
newTitle = None
# read command line parameters
for arg in wikipedia.handleArgs():
if oldTitle == None:
oldTitle = arg
elif newTitle == None:
newTitle = arg
else:
# too many parameters
wikipedia.output('ERROR: Too many parameters')
return
if not oldTitle or not newTitle:
# not enough parameters
wikipedia.showHelp('transwiki')
return
page = wikipedia.Page(wikipedia.getSite(), oldTitle)
gen = pagegenerators.ReferringPageGenerator(page)
gen = pagegenerators.PreloadingGenerator(gen)
oldPattern = '[%s%s]%s' % (oldTitle[0].lower(), oldTitle[0].upper(), oldTitle[1:])
replacements = [
("\[\[(%s)\]\]" % oldPattern, "[[wikt:%s|\\1]]" % newTitle),
("\[\[[%s\|(.*?)\]\]" % oldPattern, "[[wikt:%s|\\1]]" % newTitle),
]
replaceBot = replace.ReplaceRobot(gen, replacements)
replaceBot.run()
if __name__ == "__main__":
try:
main()
finally:
wikipedia.stopme()