Annotation of OSA_system2/OSAS_server.py, revision 1.12

1.1       dwinter     1: import os
                      2: import os.path
                      3: import stat
1.6       dwinter     4: import OSAS_helpers
1.8       dwinter     5: import xmlrpclib
1.7       dwinter     6: import bz2
1.9       dwinter     7: import base64
1.1       dwinter     8: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
                      9: from Globals import InitializeClass,package_home
                     10: from OFS.SimpleItem import SimpleItem
1.3       dwinter    11: 
1.10      dwinter    12: def encodeRPC(string):
                     13:     return base64.encodestring(bz2.compress(string))
1.4       dwinter    14: 
1.1       dwinter    15: 
                     16: class OSAS_storeOnlineServer(SimpleItem):
                     17:     """Server for store Online system"""
1.2       dwinter    18:     
1.4       dwinter    19:     
1.2       dwinter    20:     meta_type="OSAS_server"
                     21: 
1.12    ! dwinter    22:     def getImages(path):
        !            23:         """hack"""
        !            24:         imageEnding=['.gif','.jpg','.jpeg','.png','.tiff','.tif']
        !            25:         dirs=os.listdir(path)
        !            26:         ret=[]
        !            27:         for dir in dirs:
        !            28:             if os.path.isdir(dir):
        !            29:                 for subdir in os.listdir(os.path.join(path,dir)):
        !            30:                     if os.path.splitext(subdir)[1].lower() in imageEnding:
        !            31:                         ret.append(os.path.join(dir,subdir))
        !            32:             else:
        !            33:                 if os.path.splitext(dir)[1] in imageEnding:
        !            34:                         ret.append(os.path.join(dir))
        !            35:         return ret
        !            36:     
        !            37: 
        !            38:     def getMovies(path):
        !            39:         """hack"""
        !            40:         movieEnding=['.dv','.mov','.mp4']
        !            41:         dirs=os.listdir(path)
        !            42:         ret=[]
        !            43:         for dir in dirs:
        !            44:             if os.path.isdir(dir):
        !            45:                 for subdir in os.listdir(os.path.join(path,dir)):
        !            46:                     if os.path.splitext(subdir)[1].lower() in movieEnding:
        !            47:                         ret.append(os.path.join(dir,subdir))
        !            48:             else:
        !            49:                 if os.path.splitext(dir)[1] in imageEnding:
        !            50:                         ret.append(os.path.join(dir))
        !            51:         return ret
        !            52:     
        !            53:        
1.1       dwinter    54:     def findIndexMeta(self,realPath=""):
                     55:         """finde Rueckwaerts im Baum von Pfad ausgehend, dass erste index.meta file
                     56:         @keyword path: default ist "", Pfad auf das Object
                     57:         @return: None falls kein index.meta existiert sonst Pfad auf das index.meta
                     58:         """
                     59:         
                     60:         #suche index.meta
                     61:         while (not os.path.exists(os.path.join(realPath,'index.meta'))) and (not ((realPath=="") or (realPath=="/"))):
                     62:             realPath=os.path.split(realPath)[0]
                     63:             
                     64:         if realPath=='' or realPath=='/':
                     65:             if os.path.exists(os.path.join(realPath,'index.meta')):
                     66:                 return (os.path.join(realPath,'index.meta'))
                     67:             else:
                     68:                 return None
                     69:         else:
                     70:             return os.path.join(realPath,'index.meta')
                     71: 
                     72:     def findIndexMetaWithStats(self,path=""):
                     73:         """finde Rueckwaerts im Baum von Pfad ausgehend, dass erste index.meta file
                     74:         @keyword path: default ist "", Pfad auf das Object
                     75:         @return: None falls kein index.meta existiert sonst Tupel (Pfad auf das index.meta,stats(indexMeta)
                     76:         """
                     77: 
                     78:         indexMeta=self.findIndexMeta(path)
                     79:         if indexMeta:
                     80:             return (indexMeta,self.getStat(indexMeta))
                     81:         else:
                     82:             return (None,[])
                     83: 
                     84: 
                     85:     def getStat(self,path=""):
                     86:         """Gibt stat von path aus
                     87:         @keyword path: default ist "", Pfad
                     88:         @return: stat[path]"""
                     89: 
                     90:         if not os.path.exists(path):
                     91:             #return None,"(ERROR) path %s does not exist."%path
                     92:             return None
                     93:         else:
                     94:             return [x for x in os.stat(path)]
                     95:             
                     96:             
                     97:             
                     98: 
                     99:     def listdir(self,path=""):
                    100:         """list dir"""
                    101:         return os.listdir(path)
                    102: 
1.5       dwinter   103:     def isdir(self,path=""):
                    104:         """list dir"""
                    105:         return os.path.isdir(path)
                    106: 
                    107:     def isfile(self,path=""):
                    108:         """list dir"""
1.6       dwinter   109:         return os.path.isfile(path)
1.5       dwinter   110: 
                    111: 
                    112: 
1.3       dwinter   113:     def getFile(self,path):
                    114:         """getFile"""
1.4       dwinter   115: 
                    116:         if not os.path.exists(path):
1.11      dwinter   117:             print "sorry"
1.4       dwinter   118:             return None
                    119: 
1.3       dwinter   120:         f=file(path,'r')
1.4       dwinter   121:         
1.3       dwinter   122:         ret=f.read()
1.4       dwinter   123: 
1.3       dwinter   124:         f.close()
1.4       dwinter   125:         
1.3       dwinter   126:         return ret
1.6       dwinter   127: 
                    128:     def getAllIndexMetasOfSubDirs(self,path):
                    129:         """get all index Metas"""
                    130:         ret={}
                    131:         if os.path.exists(path+"/index.meta"):
1.10      dwinter   132:             compressed=encodeRPC(file(path+"/index.meta","r").read())
1.8       dwinter   133:             ret["."]=('OSAS_dir',compressed)
1.6       dwinter   134:         for dir in os.listdir(path):
                    135:             fileType=OSAS_helpers.checkOSASFileType(os.path.join(path,dir))
                    136:             if os.path.exists(os.path.join(path,dir,"index.meta")):
1.10      dwinter   137:                 compressed=encodeRPC(file(os.path.join(path,dir,"index.meta"),"r").read())
1.8       dwinter   138:                 ret[dir]=('OSAS_dir',compressed)
1.6       dwinter   139:             else:
                    140:                 ret[dir]=(fileType,None)
1.8       dwinter   141:         return ret
1.6       dwinter   142: 
1.11      dwinter   143:     def writeMetaDataFile(self,path,metadata):
                    144:         """writefiletoserver"""
                    145:         try:
                    146:             fh=file(path,"w")
                    147:             fh.write(metadata)
                    148:             fh.close
                    149:             return True
                    150:         except:
                    151:             return False
                    152:     
1.6       dwinter   153:         
1.1       dwinter   154: def manage_addOSAS_storeOnlineServerForm(self):
                    155:     """interface for adding the OSAS_storeOnline"""
                    156:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addStoreOnlineServer.zpt')).__of__(self)
                    157:     return pt()
                    158: 
                    159: def manage_addOSAS_storeOnlineServer(self,id,RESPONSE=None):
                    160:     """add the OSAS_storeOnline
                    161:     @param id: id
                    162:     """
                    163:     newObj=OSAS_storeOnlineServer(id)
                    164:     self._setObject(id,newObj)
                    165:     if RESPONSE is not None:
                    166:         RESPONSE.redirect('manage_main')
                    167: 

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