Mercurial > hg > purlService
comparison addDriToIndexMeta.py @ 5:3ebe37d81071
addDri added
reorganisation of the packafes
author | dwinter |
---|---|
date | Fri, 02 Nov 2012 09:01:35 +0100 |
parents | |
children | f0417a01690a |
comparison
equal
deleted
inserted
replaced
4:107f13ca333b | 5:3ebe37d81071 |
---|---|
1 ''' | |
2 Created on 01.11.2012 | |
3 | |
4 @author: dwinter | |
5 ''' | |
6 import os | |
7 import manageIndexMetaPURLs | |
8 import re | |
9 from lxml import etree | |
10 | |
11 from os.path import join, getsize | |
12 | |
13 | |
14 def addPURL(fl,purl,test=False): | |
15 tree = etree.parse(fl) | |
16 | |
17 dris = tree.xpath("/resource/meta/dri[@type='mpiwg']") | |
18 | |
19 if len(dris)==0: # erzeuge neu | |
20 newDri = etree.Element("dri",type="mpiwg") | |
21 newDri.text=purl | |
22 metas=tree.xpath("/resource/meta") | |
23 if len(metas)==0: | |
24 print "no resource/meta in %s"%fl | |
25 return False | |
26 else: | |
27 metas[0].append(newDri) | |
28 else: | |
29 dris[0].text=purl | |
30 | |
31 print etree.tostring(tree, pretty_print=True) | |
32 | |
33 if not test: | |
34 os.rename(fl, fl+"_mpiwg_dri") | |
35 out = etree.tostring(tree, encoding="UTF-8",xml_declaration=False) | |
36 fo = file(fl,"w") | |
37 fo.write(out) | |
38 fo.close | |
39 return True | |
40 | |
41 def addDriToIndexMeta(path,delpath="",replacepath="", update=False,test=False): | |
42 | |
43 | |
44 | |
45 for root, dirs, files in os.walk(path): | |
46 | |
47 | |
48 for name in files: | |
49 if name.endswith(".meta"): | |
50 fl=join(root, name) | |
51 shortPath=re.sub("^"+delpath,replacepath,fl) | |
52 purl=manageIndexMetaPURLs.IndexMetaPURLManager().getPurl(shortPath) | |
53 | |
54 addPURL(fl,purl,test) | |
55 | |
56 if 'pageimg' in dirs: | |
57 dirs.remove('pageimg') # don't visit pageimf | |
58 for dir in dirs: | |
59 if dir== "pageimg": | |
60 dirs.remove('pageimg') | |
61 if dir.startswith("."): | |
62 dirs.remove(dir) | |
63 | |
64 if __name__ == '__main__': | |
65 addDriToIndexMeta("/mpiwg/online/permanent/annalen",delpath="/mpiwg/online") |