~ubuntu-branches/ubuntu/gutsy/moin/gutsy

« back to all changes in this revision

Viewing changes to MoinMoin/script/old/xmlrpc-tools/getmasterpages2.py

  • Committer: Bazaar Package Importer
  • Author(s): Sivan Greenberg
  • Date: 2006-07-09 19:28:02 UTC
  • Revision ID: james.westby@ubuntu.com-20060709192802-oaeuvt4v3e9300uj
Tags: 1.5.3-1ubuntu1
* Merge new debian version.
* Reapply Ubuntu changes:
    + debian/rules:
      - Comment out usage of control.ubuntu.in (doesn't fit!).
    + debian/control.in:
      - Dropped python2.3 binary package.
    + debian/control:
      - Dropped python2.3 binary, again.
      - Dropped python2.3-dev from Build-Depends-Indep.
    + debian/patches/001-attachment-xss-fix.patch:
      - Dropped this patch. It's now in upstream's distribution.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env python
 
2
"""
 
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.
 
6
 
 
7
We use wiki rpc v2 here.
 
8
 
 
9
GPL software, 2003-09-27 Thomas Waldmann
 
10
"""
 
11
 
 
12
import xmlrpclib, urllib
 
13
from MoinMoin import wikiutil
 
14
from MoinMoin.support.BasicAuthTransport import BasicAuthTransport
 
15
 
 
16
srcurlformat = "http://moinmaster.wikiwikiweb.de/%s?action=raw"
 
17
user = "YourWikiName"
 
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)
 
22
 
 
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')
 
27
 
 
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))
 
33
 
 
34
def run():
 
35
    allsystempagesgroup = 'AllSystemPagesGroup'
 
36
    transferpage(srcurlformat, dstwiki, allsystempagesgroup)
 
37
    allgrouppages = dstwiki.listLinks(allsystempagesgroup)
 
38
 
 
39
    for langgrouppage in allgrouppages:
 
40
        pagename = langgrouppage['name']
 
41
        transferpage(srcurlformat, dstwiki, pagename)
 
42
        pages = dstwiki.listLinks(pagename)
 
43
        for page in pages:
 
44
            transferpage(srcurlformat, dstwiki, page['name'])
 
45
 
 
46
if __name__ == "__main__":
 
47
    run()
 
48