diff 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
line wrap: on
line diff
--- a/harvestToPurl.py	Wed Oct 23 12:28:22 2013 +0200
+++ b/harvestToPurl.py	Mon Mar 03 17:32:06 2014 +0100
@@ -1,11 +1,17 @@
+# -*- coding: utf-8 -*-
 '''
+
 Created on 31.10.2012
 
 @author: dwinter
+
+wesentlich hier ist: harvestIndexMeta
 '''
 
+
+
 import managePurls.manageIndexMetaPURLs as manageIndexMetaPURLs
-
+import addDriToIndexMeta
 
 
 import os
@@ -15,7 +21,21 @@
 from lxml import etree
 
 def harvestIndexMeta(path,user,delpath="",replacepath="", update=False):
+    """
+    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
+    dort enthaltenenn dris mit denen Übereinstimmen, die in der Datenbank gespeichert sind.
     
+    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.
+    angenommen path="/mpiwg/online/permanent" und delpath="/mpiwg/online" dann wird in der Datenbank nach Pfaden gesucht die mit /permanent beginnen.
+    
+    Ist replacepath gesetzt wird der mit delpath geloeschte Teil durch replacepath ersetzt, dh.h
+    path="/Volumes/online_permanent/library" und delpath="/Volumes/online_permanent", replacepath="/permanent" ann wird in der Datenbank nach Pfaden gesucht die mit /permanent beginnen.
+    
+    
+    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!
+    
+    Falls es eine gibt und das update Flag gesetzt ist, wird die Dri aus den Index.meta in die Datenbank zu dem Pfad geschrieben.
+    """
     md = manageIndexMetaPURLs.IndexMetaPURLManager()
     
     for root, dirs, files in os.walk(path):
@@ -24,13 +44,19 @@
         for name in files:
             if name.endswith(".meta"):
                 fl=join(root, name)
-                  
+                
+                
+                driIndexMeta=addDriToIndexMeta.getDRIfromIndexMeta(fl)
+                
                 imagePath=createImagePath(fl,root)
+               
                 imagePath=re.sub("^"+delpath,replacepath,imagePath)
               
                 fl=re.sub("^"+delpath,replacepath,fl) #loesche den teil vom path der mir delpath beginnt
                 
-                val,purl = md.register(fl, True,  user=user,imagePath=imagePath,update=update)
+                
+                
+                val,purl = md.register(fl, True,  user=user,imagePath=imagePath,driIndexMeta=driIndexMeta,update=update)
                 try:
                     if val==manageIndexMetaPURLs.ALREADY_EXISTS:
                         print "found %s -> %s"%(fl,purl)