Diff for /OSA_system2/OSAS_browser.py between versions 1.16 and 1.21

version 1.16, 2005/03/07 19:33:42 version 1.21, 2005/11/25 17:49:53
Line 14  import bz2 Line 14  import bz2
 import os  import os
 import os.path  import os.path
 import stat  import stat
   import Ft.Xml.XPath
 import xml.dom.minidom  import xml.dom.minidom
 from types import *  from types import *
 import xmlrpclib  import xmlrpclib
Line 158  class OSAS_storeOnline(SimpleItem): Line 159  class OSAS_storeOnline(SimpleItem):
         path=os.path.normpath(path)          path=os.path.normpath(path)
   
         try:          try:
               dom = NonvalidatingReader.parseString(server.getFile(indexMeta),"http://www.mpiwg-berlin.mpg.de/")
                           
             dom=xml.dom.minidom.parseString(server.getFile(indexMeta))  
         except:          except:
             zLOG.LOG("OSAS_browser (findEntryInIndexMeta)",zLOG.ERROR,"Cannot parse: %s"%indexMeta)              zLOG.LOG("OSAS_browser (findEntryInIndexMeta)",zLOG.ERROR,"Cannot parse: %s"%indexMeta)
             return None              return None
Line 173  class OSAS_storeOnline(SimpleItem): Line 174  class OSAS_storeOnline(SimpleItem):
                 searchPath=searchPath[1:]                  searchPath=searchPath[1:]
         #ist path ein directory?           #ist path ein directory? 
         xpath="/resource/dir[name='%s' and path='%s']"%(name,searchPath)          xpath="/resource/dir[name='%s' and path='%s']"%(name,searchPath)
           dirs=Ft.Xml.XPath.Evaluate(xpath,contextNode=dom)
   
         dirs=xml.xpath.Evaluate(xpath,dom)  
   
         if len(dirs)>0:          if len(dirs)>0:
             return dirs[0].toxml              return dirs[0].toxml
Line 182  class OSAS_storeOnline(SimpleItem): Line 183  class OSAS_storeOnline(SimpleItem):
         #ist path ein file?                #ist path ein file?      
         xpath="/resource/file[name='%s' and path='%s']"%(name,searchPath)          xpath="/resource/file[name='%s' and path='%s']"%(name,searchPath)
   
         dirs=xml.xpath.Evaluate(xpath,dom)  
   
           dirs=Ft.Xml.XPath.Evaluate(xpath,contextNode=dom)
         if len(dirs)>0:          if len(dirs)>0:
             return dirs[0].toxml()              return dirs[0].toxml()
                   
Line 198  class OSAS_storeOnline(SimpleItem): Line 199  class OSAS_storeOnline(SimpleItem):
         @todo: Rueckgabe einer Beschreibung gemaess Metadaten          @todo: Rueckgabe einer Beschreibung gemaess Metadaten
         """          """
         ret={}          ret={}
           startPath=path
         server=xmlrpclib.Server(self.serverUrl)          server=xmlrpclib.Server(self.serverUrl)
         indexMeta,stats=server.findIndexMetaWithStats(path)#findex index.meta zu path.          indexMeta,stats=server.findIndexMetaWithStats(path)#findex index.meta zu path.
   
Line 211  class OSAS_storeOnline(SimpleItem): Line 213  class OSAS_storeOnline(SimpleItem):
   
   
   
         #teste ob schon im cache zur Zeit kein chache wenn index.meta file nicht im selben ordner wir path.          #teste ob schon im cache zur Zeit kein chache wenn index.meta file nicht im selben ordner wie path.
         print "PPP",path,"x",realPath  
         if self._v_metaFiles.has_key(realPath) and (self._v_metaFiles[realPath][0]==stats[stat.ST_MTIME]) and (path==""):          #if self._v_metaFiles.has_key(startPath) and (self._v_metaFiles[realPath][0]==stats[stat.ST_MTIME]) and (path==""):
             print "from cache"          #
             return self._v_metaFiles[realPath][1]          #    return self._v_metaFiles[startPath][1]
   
         try:          try:
             dom=xml.dom.minidom.parseString(server.getFile(indexMeta))              dom=xml.dom.minidom.parseString(server.getFile(indexMeta))
Line 248  class OSAS_storeOnline(SimpleItem): Line 250  class OSAS_storeOnline(SimpleItem):
                 object=os.path.join(realPath,pathX,name)                  object=os.path.join(realPath,pathX,name)
                 ret[object.encode('utf-8')]=(fileType,'')                  ret[object.encode('utf-8')]=(fileType,'')
   
         self._v_metaFiles[realPath]=(stats[stat.ST_MTIME],ret) # speicher im chache          self._v_metaFiles[startPath]=(stats[stat.ST_MTIME],ret) # speicher im chache
               
         return ret          return ret
   
Line 319  class OSAS_storeOnline(SimpleItem): Line 321  class OSAS_storeOnline(SimpleItem):
             return None              return None
                   
         #teste ob schon im cache          #teste ob schon im cache
         if self._v_fileSystem.has_key(realPath) and (self._v_fileSystem[realPath][0]==stats[stat.ST_MTIME]):          #if self._v_fileSystem.has_key(realPath) and (self._v_fileSystem[realPath][0]==stats[stat.ST_MTIME]):
                       #    
            return self._v_fileSystem[realPath][1]          #   return self._v_fileSystem[realPath][1]
                   
         indexMetas=server.getAllIndexMetasOfSubDirs(realPath)          indexMetas=server.getAllIndexMetasOfSubDirs(realPath)
         dir=indexMetas.keys()          dir=indexMetas.keys()
Line 347  class OSAS_storeOnline(SimpleItem): Line 349  class OSAS_storeOnline(SimpleItem):
   
                     if metaDataStr:                      if metaDataStr:
                         display=metaData.getDisplayFieldsAsStr(metaDataStr)                          display=metaData.getDisplayFieldsAsStr(metaDataStr)
                         dom=xml.dom.minidom.parseString(metaDataStr)  
   
                         if len(xml.xpath.Evaluate("/file/meta/video-file",dom))>0:                          dom = NonvalidatingReader.parseString(metaDataStr,"http://www.mpiwg-berlin.mpg.de/")
                           if len(Ft.Xml.XPath.Evaluate("/file/meta/video-file",contextNode=dom))>0:
                             fileType='OSAS_videoFile'                              fileType='OSAS_videoFile'
                                                           
                     else:                      else:
Line 393  class OSAS_storeOnline(SimpleItem): Line 395  class OSAS_storeOnline(SimpleItem):
          - (string) handler sind die Ergebnisse von giveHandlers fuer dieses Objekt           - (string) handler sind die Ergebnisse von giveHandlers fuer dieses Objekt
          - (string) metainformationen die Metainformationen zum Objekt als Ergebnis von readObjectsFromPath           - (string) metainformationen die Metainformationen zum Objekt als Ergebnis von readObjectsFromPath
         """          """
         objects=self.readObjectsFromPath(path)  
         if not objects:          objects=self.getSubDirsFromIndexMeta(path)
             objects={}  
           
           
           im=self.readObjectsFromPath(path)
           if not im:
               im={}
   
   
   
   
         im=self.getSubDirsFromIndexMeta(path)  
         for key in im.keys():          for key in im.keys():
             #virtuelle pfade hinzufuegen              #relle  pfade hinzufuegen, virtueller wird ueberschrieben
                           
             if not objects.has_key(key):  
                 objects[key]=im[key]                  objects[key]=im[key]
                                   
                   
           
         def sortLow(x,y):          def sortLow(x,y):
             return cmp(x.lower(),y.lower())              return cmp(x.lower(),y.lower())
                   
Line 437  class OSAS_storeOnline(SimpleItem): Line 445  class OSAS_storeOnline(SimpleItem):
     def path_to_link(self,pathTmp=""):      def path_to_link(self,pathTmp=""):
         """generates navigation bar for viewfiles          """generates navigation bar for viewfiles
         @keyword pathTmp: optional, generisch="", pfad der erstellt werden soll          @keyword pathTmp: optional, generisch="", pfad der erstellt werden soll
         @return: html Fragment, pathTmp zerlegt, dass jeder Teil von Pfad unterhalb von rootFolderName direkt angesprunden werden kann.          @return: html Fragment, pathTmp zerlegt, dass jeder Teil von Pfad unterhalb von rootFolderName direkt angesprungen werden kann.
         """          """
   
         path=os.path.normpath(os.path.join(self.rootFolderName,pathTmp))          path=os.path.normpath(os.path.join(self.rootFolderName,pathTmp))

Removed from v.1.16  
changed lines
  Added in v.1.21


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