6754
|
1 |
#!/usr/bin/python
|
|
2 |
|
|
3 |
|
|
4 |
# output xml format:
|
|
5 |
# <pages>
|
|
6 |
# <page url="xx"><prev url="yyy">zzz</prev><next url="hhh">lll</next><fragment>file.frag</fragment></page>
|
|
7 |
# ...
|
|
8 |
# </pages>
|
|
9 |
|
|
10 |
import pickle
|
|
11 |
import os
|
|
12 |
import codecs
|
|
13 |
|
|
14 |
def dump_pickles(out, dirname, filename, path):
|
|
15 |
f = open(os.path.join(dirname, filename), 'r')
|
|
16 |
data = pickle.load(f)
|
|
17 |
fragment_file = codecs.open(data['current_page_name'] + '.frag', mode='w', encoding='utf-8')
|
|
18 |
fragment_file.write(data['body'])
|
|
19 |
fragment_file.close()
|
|
20 |
out.write(' <page url="%s">\n' % path)
|
|
21 |
out.write(' <fragment>%s.frag</fragment>\n' % data['current_page_name'])
|
|
22 |
if data['prev'] is not None:
|
|
23 |
out.write(' <prev url="%s">%s</prev>\n' %
|
|
24 |
(os.path.normpath(os.path.join(path, data['prev']['link'])),
|
|
25 |
data['prev']['title']))
|
|
26 |
if data['next'] is not None:
|
|
27 |
out.write(' <next url="%s">%s</next>\n' %
|
|
28 |
(os.path.normpath(os.path.join(path, data['next']['link'])),
|
|
29 |
data['next']['title']))
|
|
30 |
out.write(' </page>\n')
|
|
31 |
f.close()
|
|
32 |
if data['next'] is not None:
|
|
33 |
next_path = os.path.normpath(os.path.join(path, data['next']['link']))
|
|
34 |
next_filename = os.path.basename(next_path) + '.fpickle'
|
|
35 |
dump_pickles(out, dirname, next_filename, next_path)
|
|
36 |
return
|
|
37 |
|
|
38 |
import sys
|
|
39 |
|
|
40 |
sys.stdout.write('<pages>\n')
|
|
41 |
dump_pickles(sys.stdout, os.path.dirname(sys.argv[1]), os.path.basename(sys.argv[1]), '/')
|
|
42 |
sys.stdout.write('</pages>')
|