Mercurial > hg > purlService
comparison harvestToPurl.py @ 36:be8640c08d99
Updatedri in harbestToPUrl ge?ndert.
jetzt werden gegebenenfalls dris aus den index.meta gelesen und in die db geschrieben, falls sie noch nicht existieren.
ausserdem wird in den daten isdri=TRUE gesetzt, wenn es ich bei der PURL um eine handelt die auf ein DRI in den index.meta verweist.
author | dwinter |
---|---|
date | Mon, 03 Mar 2014 17:32:06 +0100 |
parents | 1b2d74f94ca8 |
children | 6a0873a913c5 |
comparison
equal
deleted
inserted
replaced
35:d3ecbfd21e06 | 36:be8640c08d99 |
---|---|
1 # -*- coding: utf-8 -*- | |
1 ''' | 2 ''' |
3 | |
2 Created on 31.10.2012 | 4 Created on 31.10.2012 |
3 | 5 |
4 @author: dwinter | 6 @author: dwinter |
7 | |
8 wesentlich hier ist: harvestIndexMeta | |
5 ''' | 9 ''' |
6 | 10 |
11 | |
12 | |
7 import managePurls.manageIndexMetaPURLs as manageIndexMetaPURLs | 13 import managePurls.manageIndexMetaPURLs as manageIndexMetaPURLs |
8 | 14 import addDriToIndexMeta |
9 | 15 |
10 | 16 |
11 import os | 17 import os |
12 from os.path import join, getsize | 18 from os.path import join, getsize |
13 import sys | 19 import sys |
14 import re | 20 import re |
15 from lxml import etree | 21 from lxml import etree |
16 | 22 |
17 def harvestIndexMeta(path,user,delpath="",replacepath="", update=False): | 23 def harvestIndexMeta(path,user,delpath="",replacepath="", update=False): |
24 """ | |
25 Sucht in path und allen unterordnern nach index.meta dateien und schaut dann nach ob es dort schon ein index meta gibt. Wenn ja wird geschaut, ob die | |
26 dort enthaltenenn dris mit denen Übereinstimmen, die in der Datenbank gespeichert sind. | |
18 | 27 |
28 delpath ist ein optionaler Parameter, der angibt wird welcher Teil des Pfades in pfad aus dem Pfad zur Überprüfung gelöscht werden soll, d.h. | |
29 angenommen path="/mpiwg/online/permanent" und delpath="/mpiwg/online" dann wird in der Datenbank nach Pfaden gesucht die mit /permanent beginnen. | |
30 | |
31 Ist replacepath gesetzt wird der mit delpath geloeschte Teil durch replacepath ersetzt, dh.h | |
32 path="/Volumes/online_permanent/library" und delpath="/Volumes/online_permanent", replacepath="/permanent" ann wird in der Datenbank nach Pfaden gesucht die mit /permanent beginnen. | |
33 | |
34 | |
35 Falls es keine DRI gibt, wird eine PURL in der Datenbank erzeugt. Diese wird NICHT in den index.meta gespeichert, dazu muss ein anderes Script "addDriToIndexMeta" aufgerufen werden! | |
36 | |
37 Falls es eine gibt und das update Flag gesetzt ist, wird die Dri aus den Index.meta in die Datenbank zu dem Pfad geschrieben. | |
38 """ | |
19 md = manageIndexMetaPURLs.IndexMetaPURLManager() | 39 md = manageIndexMetaPURLs.IndexMetaPURLManager() |
20 | 40 |
21 for root, dirs, files in os.walk(path): | 41 for root, dirs, files in os.walk(path): |
22 | 42 |
23 | 43 |
24 for name in files: | 44 for name in files: |
25 if name.endswith(".meta"): | 45 if name.endswith(".meta"): |
26 fl=join(root, name) | 46 fl=join(root, name) |
27 | 47 |
48 | |
49 driIndexMeta=addDriToIndexMeta.getDRIfromIndexMeta(fl) | |
50 | |
28 imagePath=createImagePath(fl,root) | 51 imagePath=createImagePath(fl,root) |
52 | |
29 imagePath=re.sub("^"+delpath,replacepath,imagePath) | 53 imagePath=re.sub("^"+delpath,replacepath,imagePath) |
30 | 54 |
31 fl=re.sub("^"+delpath,replacepath,fl) #loesche den teil vom path der mir delpath beginnt | 55 fl=re.sub("^"+delpath,replacepath,fl) #loesche den teil vom path der mir delpath beginnt |
32 | 56 |
33 val,purl = md.register(fl, True, user=user,imagePath=imagePath,update=update) | 57 |
58 | |
59 val,purl = md.register(fl, True, user=user,imagePath=imagePath,driIndexMeta=driIndexMeta,update=update) | |
34 try: | 60 try: |
35 if val==manageIndexMetaPURLs.ALREADY_EXISTS: | 61 if val==manageIndexMetaPURLs.ALREADY_EXISTS: |
36 print "found %s -> %s"%(fl,purl) | 62 print "found %s -> %s"%(fl,purl) |
37 | 63 |
38 elif val==manageIndexMetaPURLs.UPDATED: | 64 elif val==manageIndexMetaPURLs.UPDATED: |