User:JimTittsler/CopyPagesExample
From WikiEducator
#!/usr/bin/python
# copy a page and its subpages
import mwclient
user = 'JimTittslerBot'
password = 'plugh'
source = 'OLPC Tuvalu'
destination = 'OLPC Kosrae'
source_template = '{{OLPCTuvalu}}'
destination_template = '{{OLPCKosrae}}'
source_redirect = '#REDIRECT [[OLPC Tuvalu'
destination_redirect = '#REDIRECT [[OLPC Kosrae'
summary_message = 'started from corresponding OLPC Tuvalu page'
site = mwclient.Site('WikiEducator.org', path='/')
site.login(user, password)
def process_page(text):
""" alter or delete wikitext during copy"""
text = text.replace(source_template, destination_template)
text = text.replace(source_redirect, destination_redirect)
return text
for page in site.allpages(prefix=source):
newpage_name = page.name.replace(source, destination)
print page.name,'=>',newpage_name
text = page.edit(readonly=True)
newpage = site.Pages[newpage_name]
#newtext = newpage.edit()
newpage.save(process_page(text), summary=summary_message)