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)) |