-
Notifications
You must be signed in to change notification settings - Fork 1
/
wikiimport.py
38 lines (31 loc) · 1.02 KB
/
wikiimport.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import os, sys
try:
import mwclient
except:
pass
import xml.etree.cElementTree as ET
HOST = "wiki.lagen.nu"
PATH = "/"
USER = "staffan"
PASS = "meneta"
def import_page(title,wikimarkup,site):
page = site.Pages[title]
try:
page.save(wikimarkup, summary="Offline-redigering")
print "Saved %s" % title
except mwclient.errors.EditError:
print "Couldn't save '%s'" % title
def extract_page(filename):
tree = ET.parse(filename)
title = tree.find("//{http://www.mediawiki.org/xml/export-0.3/}title").text
wikimarkup = tree.find("//{http://www.mediawiki.org/xml/export-0.3/}text").text
return (title,wikimarkup)
def process_files(dir, site):
for f in os.listdir(dir):
filename = "%s%s%s" % (dir,os.path.sep,f)
(title, wikimarkup) = extract_page(filename)
import_page(title,wikimarkup,site)
if __name__ == "__main__":
site = mwclient.Site(HOST, PATH)
site.login(USER,PASS)
process_files(sys.argv[1],site)