--- OSA_system2/OSAS_server.py 2005/02/11 16:27:01 1.4 +++ OSA_system2/OSAS_server.py 2005/12/01 10:43:18 1.20 @@ -1,11 +1,20 @@ import os import os.path import stat +import OSAS_helpers +import xmlrpclib +import bz2 +import base64 from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Globals import InitializeClass,package_home from OFS.SimpleItem import SimpleItem +import zLOG +import sys - +def encodeRPC(string): + return base64.encodestring(bz2.compress(string)) +def decodeRPC(string): + return bz2.decompress(base64.decodestring(string)) class OSAS_storeOnlineServer(SimpleItem): @@ -14,7 +23,46 @@ class OSAS_storeOnlineServer(SimpleItem) meta_type="OSAS_server" - + def __init__(self,id): + """initalize osas_server""" + self.id = id + + def getImages(self,path): + """hack""" + imageEnding=['.gif','.jpg','.jpeg','.png','.tiff','.tif'] + + dirs=os.listdir(path) + ret=[] + + for dir in dirs: + + if os.path.isdir(os.path.join(path,dir)): + + for subdir in os.listdir(os.path.join(path,dir)): + if os.path.splitext(subdir)[1].lower() in imageEnding: + ret.append(os.path.join(dir,subdir)) + else: + if os.path.splitext(dir)[1] in imageEnding: + ret.append(os.path.join(dir)) + return ret + + + def getMovies(self,path): + """hack""" + movieEnding=['.dv','.mov','.mp4'] + dirs=os.listdir(path) + ret=[] + for dir in dirs: + if os.path.isdir(os.path.join(path,dir)): + for subdir in os.listdir(os.path.join(path,dir)): + if os.path.splitext(subdir)[1].lower() in movieEnding: + ret.append(os.path.join(dir,subdir)) + else: + if os.path.splitext(dir)[1] in movieEnding: + ret.append(os.path.join(dir)) + return ret + + def findIndexMeta(self,realPath=""): """finde Rueckwaerts im Baum von Pfad ausgehend, dass erste index.meta file @keyword path: default ist "", Pfad auf das Object @@ -64,6 +112,16 @@ class OSAS_storeOnlineServer(SimpleItem) """list dir""" return os.listdir(path) + def isdir(self,path=""): + """list dir""" + return os.path.isdir(path) + + def isfile(self,path=""): + """list dir""" + return os.path.isfile(path) + + + def getFile(self,path): """getFile""" @@ -77,7 +135,44 @@ class OSAS_storeOnlineServer(SimpleItem) f.close() return ret - + + def getAllIndexMetasOfSubDirs(self,path): + """get all index Metas""" + ret={} + if os.path.exists(path+"/index.meta"): + compressed=encodeRPC(file(path+"/index.meta","r").read()) + ret["."]=('OSAS_dir',compressed) + for dir in os.listdir(path): + zLOG.LOG("SERVER",zLOG.INFO,"get all index meta in %s"%dir) + fileType=OSAS_helpers.checkOSASFileType(os.path.join(path,dir)) + if os.path.exists(os.path.join(path,dir,"index.meta")): + compressed=encodeRPC(file(os.path.join(path,dir,"index.meta"),"r").read()) + ret[dir]=('OSAS_dir',compressed) + else: + ret[dir]=(fileType,None) + return ret + + def writeMetaDataFile(self,path,metadata,compressed=None): + """writefiletoserver""" + if compressed: + metadata=decodeRPC(metadata) + + try: + fh=file(path,"w") + fh.write(metadata) + fh.close + return True + except: + zLOG.LOG("SERVER (writeMetadataFile)",zLOG.ERROR,"%s (%s)"%sys.exc_info()[0:2]) + return False + + def generateMovieThumb(self,input,output): + """generate Movie""" + zLOG.LOG("SERVER",zLOG.INFO,"/usr/local/bin/thumbbite.pl %s %s"%(input,output)) + ret=os.popen("/usr/local/bin/thumbbite.pl %s %s"%(input,output)) + zLOG.LOG("SERVER",zLOG.INFO,ret) + return "ok" + def manage_addOSAS_storeOnlineServerForm(self): """interface for adding the OSAS_storeOnline""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addStoreOnlineServer.zpt')).__of__(self)