version 1.4, 2005/02/11 16:27:01
|
version 1.21, 2007/01/31 14:30:29
|
Line 1
|
Line 1
|
import os |
import os |
import os.path |
import os.path |
import stat |
import stat |
|
import OSAS_helpers |
|
import xmlrpclib |
|
import bz2 |
|
import base64 |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Globals import InitializeClass,package_home |
from Globals import InitializeClass,package_home |
from OFS.SimpleItem import SimpleItem |
from OFS.SimpleItem import SimpleItem |
|
import logging |
|
import sys |
|
|
|
#ersetzt logging |
|
def logger(txt,method,txt2): |
|
"""logging""" |
|
logging.info(txt+ txt2) |
|
|
|
|
|
|
|
def encodeRPC(string): |
|
return base64.encodestring(bz2.compress(string)) |
|
def decodeRPC(string): |
|
return bz2.decompress(base64.decodestring(string)) |
|
|
|
|
class OSAS_storeOnlineServer(SimpleItem): |
class OSAS_storeOnlineServer(SimpleItem): |
"""Server for store Online system""" |
"""Server for store Online system""" |
|
|
|
|
meta_type="OSAS_server" |
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=""): |
def findIndexMeta(self,realPath=""): |
"""finde Rueckwaerts im Baum von Pfad ausgehend, dass erste index.meta file |
"""finde Rueckwaerts im Baum von Pfad ausgehend, dass erste index.meta file |
Line 64 class OSAS_storeOnlineServer(SimpleItem)
|
Line 119 class OSAS_storeOnlineServer(SimpleItem)
|
"""list dir""" |
"""list dir""" |
return os.listdir(path) |
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): |
def getFile(self,path): |
"""getFile""" |
"""getFile""" |
|
|
Line 78 class OSAS_storeOnlineServer(SimpleItem)
|
Line 143 class OSAS_storeOnlineServer(SimpleItem)
|
|
|
return ret |
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""" |
|
logger("SERVER",logging.INFO,"/usr/local/bin/thumbbite.pl %s %s"%(input,output)) |
|
ret=os.popen("/usr/local/bin/thumbbite.pl %s %s"%(input,output)) |
|
logger("SERVER",logging.INFO,ret) |
|
return "ok" |
|
|
def manage_addOSAS_storeOnlineServerForm(self): |
def manage_addOSAS_storeOnlineServerForm(self): |
"""interface for adding the OSAS_storeOnline""" |
"""interface for adding the OSAS_storeOnline""" |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addStoreOnlineServer.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addStoreOnlineServer.zpt')).__of__(self) |