Diff for /OSA_system2/OSAS_helpers.py between versions 1.2 and 1.10

version 1.2, 2004/12/23 08:30:56 version 1.10, 2005/10/10 18:11:10
Line 2 Line 2
 import os.path  import os.path
 from types import *  from types import *
 import xml.dom.minidom  import xml.dom.minidom
   import zLOG
   
 OSASObjectTypes=['OSAS_metaDataFile','OSAS_dir','OSAS_file','OSAS_imageFolder','OSAS_dir_archive','OSAS_file_archive']  OSASObjectTypes=['OSAS_metaDataFile','OSAS_dir','Osas_file','OSAS_imageFolder','OSAS_dir_archive','OSAS_file_archive','OSAS_videoFolder','OSAS_videoFile','OSAS_videoFolder']
   OSASDirObjects=['OSAS_dir','OSAS_imageFolder',]
 OSASExcludedFiles=['TheVolumeSettingsFolder','TheFindByContentFolder']  OSASExcludedFiles=['TheVolumeSettingsFolder','TheFindByContentFolder']
   
   
Line 65  def getMetaInfoFromXML(path,xmlInfo): Line 67  def getMetaInfoFromXML(path,xmlInfo):
                 
 #        html=html.encode('utf-8','replace')+getBib(bib.childNodes).encode('utf-8','replace')  #        html=html.encode('utf-8','replace')+getBib(bib.childNodes).encode('utf-8','replace')
                 
     return html.encode('utf-8')  
   
 def getMetaFile(self,path):      return html
     """get index.meta and translate it to HTML"""  
     html=[]  
     if not os.path.exists(path+"/index.meta"):  
           return self.getMetaInfoFromIndexMeta(path)  
           #return "NO_METADATA"  
     else:  
        f = os.popen("cat "+path+"/index.meta","r")  
        lines = f.read()  
        dom = xml.dom.minidom.parseString(lines)  
        try:  
            name=getText(dom.getElementsByTagName("name")[0].childNodes)  
        except:  
            name="NOT_DEFINED!!!"  
        try:  
            creator=getText(dom.getElementsByTagName("creator")[0].childNodes)  
        except:  
            creator="NOT_DEFINED!!!"  
   
        try:  
            creation_date=getText(dom.getElementsByTagName("archive-creation-date")[0].childNodes)  
        except:  
            creation_date="NOT_DEFINED!!!"  
   
        try:  
            description=getText(dom.getElementsByTagName("description")[0].childNodes)  
        except:  
            description="NOT_DEFINED!!!"  
              
        try:  
         type=getText(dom.getElementsByTagName("content-type")[0].childNodes)   
        except:  
         type=""  
        if type=="scanned document":  
         html="<h3>Document: "+name+"</h3>"  
        elif type=="folder":  
         html="<h3>Folder: "+name+"</h3>"  
        else:  
             html="<h3>Document: "+name+"</h3>"  
   
        html=html+"<p><i>created by: "+creator+" at: "+creation_date+"</i></p>"   
        html=html+"<h4>Description</h4><p>"+description+"</p>"  
        try:  
         bib = dom.getElementsByTagName("meta")[0].getElementsByTagName("bib")[0]  
         if bib.attributes.has_key('type'):  
       html=html+"<h4>Info ("+bib.attributes['type'].value+")</h4>"  
     else:  
       html=html+"<h4>Info</h4>"  
         html=html+getBib(bib.childNodes)  
           
        except:  
         """none"""  
          
 #        html=html.encode('utf-8','replace')+getBib(bib.childNodes).encode('utf-8','replace')  
                 
        return html.encode('utf-8')  
   
 def getBib(nodelist):  def getBib(nodelist):
     """ translate bibliographical entries """      """ translate bibliographical entries """
Line 138  def getBib(nodelist): Line 85  def getBib(nodelist):
     #print rc      #print rc
     return rc+"</table>"      return rc+"</table>"
   
 def getPropertyOfDirs(path,property):  def getPropertyOfDirs(indexMeta,propertyName):
     """gibt Eigenschaften der directorys gemaess Index.metas file in path aus      """gibt Eigenschaften der directorys gemaess Index.metas file in path aus
     @param path: Pfad in dem das index.meta liegt      @param indexMeta: index.meta file
     @param propery: Property die ausgegebenwerden soll      @param propertyName: Property die ausgegebenwerden soll
     @return: Hash mit key  name des Directories and Value von property, None if error.      @return: Hash mit key  name des Directories and Value von property, None if error.
     """      """
     ret={}      ret={}
       
     try:      try:
         dom=xml.dom.minidom.parse(os.path.split(path)[0]+"/index.meta")          dom=xml.dom.minidom.parseString(indexMeta)
         for node in dom.getElementsByTagName("dir"):  
                           
             property= getText(node.getElementsByTagName("content-type")[0].childNodes)          rootProp=xml.xpath.Evaluate("/resource/%s"%propertyName,dom)
           if len(rootProp)==1:
               property= getText(rootProp[0].childNodes)
               ret["."]=property
               
           for node in dom.getElementsByTagName("dir"):
               try:
                   property= getText(node.getElementsByTagName(propertyName)[0].childNodes)
             dirName=getText(node.getElementsByTagName("name")[0].childNodes)              dirName=getText(node.getElementsByTagName("name")[0].childNodes)
             ret[dirName]=property              ret[dirName]=property
               except:
                   ret[dirName]=none
         return ret          return ret
     except:      except:
                                   
         return ret          return ret
   
 def dirHasProperty(path,propertyName,propertyValue):                     
   def dirHasProperty(path,indexMeta,propertyName,propertyValue):
     """gibt 1 zurück falls path hat propertyName und properName=propertyValue      """gibt 1 zurück falls path hat propertyName und properName=propertyValue
     @param propertyName:Property von path in index.meta des parent folders von path      @param propertyName:Property von path in index.meta des parent folders von path
     @param propertyValue:Wert der Property      @param propertyValue:Wert der Property
     @param path: Pfad der getestet werden soll      @param path: Pfad der getestet werden soll
     """      """
     if getPropertyOfDirs(os.path.split(path)[0],propertyName).get(os.path.split(path)[1],None)==propertyValue:      if getPropertyOfDirs(indexMeta,propertyName).get(os.path.split(path)[1],None)==propertyValue:
         return 1          return 1
     else:      else:
         return 0          return 0
           
 def isImageFolder(path):  def isImageFolder(path,indexMeta):
     """check if folder contains images without metadata or with metadata"""      """check if folder contains images without metadata or with metadata"""
     # metadaten ergeben imagefolder      # metadaten ergeben imagefolder
     if dirHasProperty(path,'content-type','images'):       if dirHasProperty(path,indexMeta,'content-type','images'): 
         return 1          return 1
           
   def isVideoFolder(path,indexMeta):
       """check if folder contains images without metadata or with metadata"""
       # metadaten ergeben imagefolder
   
       if dirHasProperty(path,indexMeta,'media-type','video'):
           return 1
   
   def isVideoStream(path,indexMeta):
       if dirHasProperty(path,indexMeta,'container-format','quicktime'):
           return 1
       
   def isImageFolderGuess(path):
       """check if folder contains images without metadata or with metadata"""
     #sonst rate ob folder images enthaelten durch test nach suffix      #sonst rate ob folder images enthaelten durch test nach suffix
     try:      try:
                 dir=os.listdir(path)                  dir=os.listdir(path)
Line 198  def checkOSASFileType(object): Line 168  def checkOSASFileType(object):
     """      """
     if os.path.split(object)[1][0]=="." or os.path.split(object)[1] in OSASExcludedFiles:      if os.path.split(object)[1][0]=="." or os.path.split(object)[1] in OSASExcludedFiles:
         return None          return None
     elif isImageFolder(object):      elif isImageFolderGuess(object):
         return 'OSAS_imageFolder'          return 'OSAS_imageFolder'
     elif os.path.split(object)[1]=="index.meta":      elif os.path.split(object)[1]=="index.meta":
         return 'OSAS_metaDataFile'          return 'OSAS_metaDataFile'

Removed from v.1.2  
changed lines
  Added in v.1.10


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>