3
This script is a hack because moinmaster wiki does not support
4
xmlrpc due to unknown reasons. It gets all SystemPages from srcwiki
5
via action=raw and stores them into dstwiki via xmlrpc.
7
We use wiki rpc v2 here.
9
GPL software, 2003-09-27 Thomas Waldmann
12
import xmlrpclib, urllib
13
from MoinMoin import wikiutil
14
from MoinMoin.support.BasicAuthTransport import BasicAuthTransport
16
srcurlformat = "http://moinmaster.wikiwikiweb.de/%s?action=raw"
18
password = "yourbasicauthpassword"
19
srcwiki = xmlrpclib.ServerProxy("http://moinmaster.wikiwikiweb.de/?action=xmlrpc2")
20
dsttrans = BasicAuthTransport(user,password)
21
dstwiki = xmlrpclib.ServerProxy("http://devel.linuxwiki.org/moin--main/__xmlrpc/?action=xmlrpc2", transport=dsttrans)
23
def rawGetPage(srcurl, pagename, encoding='iso-8859-1'):
24
url = srcurl % wikiutil.quoteWikinameFS(pagename.encode(encoding))
25
pagedata = urllib.urlopen(url).read()
26
return unicode(pagedata, encoding).encode('utf-8')
28
def transferpage(srcurlformat, dstwiki, pagename):
29
pagedata = srcwiki.getPage(pagename)
30
#pagedata = rawGetPage(srcurlformat, pagename, 'iso-8859-1')
31
rc = dstwiki.putPage(pagename, pagedata)
32
print "Transferred %s. Len = %d, rc = %s" % (pagename.encode('ascii','replace'), len(pagedata), str(rc))
35
allsystempagesgroup = 'AllSystemPagesGroup'
36
transferpage(srcurlformat, dstwiki, allsystempagesgroup)
37
allgrouppages = dstwiki.listLinks(allsystempagesgroup)
39
for langgrouppage in allgrouppages:
40
pagename = langgrouppage['name']
41
transferpage(srcurlformat, dstwiki, pagename)
42
pages = dstwiki.listLinks(pagename)
44
transferpage(srcurlformat, dstwiki, page['name'])
46
if __name__ == "__main__":