|
|
| version 1.5, 2005/03/03 20:41:00 | version 1.6, 2005/03/07 19:33:42 |
|---|---|
| Line 21 import os.path | Line 21 import os.path |
| import Globals | import Globals |
| from Globals import package_home | from Globals import package_home |
| from AccessControl import ClassSecurityInfo | from AccessControl import ClassSecurityInfo |
| import xmlrpclib | |
| from xml.sax import make_parser | |
| from xml.sax.handler import ContentHandler | |
| import sys | |
| class OSAS_add_contextData(Folder): | |
| """Einfuegen eines Documentes in eine Collection""" | |
| security=ClassSecurityInfo() | |
| meta_type='OSAS_addObjectToCollection' | |
| def XmlToTree(self,URL,pwstr=None): | |
| """Collection XML to Tree""" | |
| def spaces(depth): | |
| tmp="" | |
| k=0 | |
| while k<2*depth: | |
| k+=1 | |
| tmp=tmp+" "+" " | |
| return tmp | |
| class requestHandler(ContentHandler): | |
| def __init__(self): | |
| self.depth=0 | |
| self.retStr="" | |
| def startElement(self,name,attrs): | |
| if name=="element": | |
| self.depth+=1 | |
| begin="" | |
| end="" | |
| if self.depth==1: | |
| begin="<b>" | |
| end="</b>" | |
| self.retStr+=spaces(self.depth)+"<input type='radio' name='collection' value='%s'>%s</input>"%(attrs.get('url'),begin+urllib.unquote(attrs.get('name')))+end+"<br>\n" | |
| def endElement(self,name): | |
| if name=="element": | |
| self.depth-=1 | |
| if pwstr=="": | |
| pwstr=None | |
| try: | |
| if pwstr: | |
| URL+="/getCollectionTreeXML?pwstr=%s"%pwstr | |
| else: | |
| URL+="/getCollectionTreeXML" | |
| parser=make_parser() | |
| curHandler=requestHandler() | |
| parser.setContentHandler(curHandler) | |
| parser.parse(urllib.urlopen(URL)) | |
| return curHandler.retStr.encode('utf-8') | |
| except: | |
| zLOG.LOG('OSAS_Root (addFileToDollection)',zLOG.ERROR,'%s %s'%sys.exc_info()[:2]) | |
| return URL | |
| return urllib.urlopen(URL).read() | |
| def __init__(self,id,collection): | |
| self.id=id | |
| self.collection=collection | |
| def getPartners(self,URL): | |
| """Zeige Partnerliste""" | |
| class requestHandler(ContentHandler): | |
| def __init__(self): | |
| self.ret=[] | |
| def startElement(self,name,attrs): | |
| if name=="partner": | |
| self.ret.append((attrs.get('id'),attrs.get('title').encode('utf-8'))) | |
| URL+="/getPartnersXML" | |
| parser=make_parser() | |
| curHandler=requestHandler() | |
| parser.setContentHandler(curHandler) | |
| parser.parse(urllib.urlopen(URL)) | |
| try: | |
| return curHandler.ret | |
| except: | |
| return [("",URL)] | |
| def addContextData(self,path): | |
| """Hinzufuegen zu einer Sammlung""" | |
| server=xmlrpclib.Server(self.serverUrl) | |
| self.REQUEST.SESSION['images']=server.getImages(path) | |
| self.REQUEST.SESSION['movies']=server.getMovies(path) | |
| pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','contextDataMain.zpt')).__of__(self) | |
| return pt() | |
| index_html=addContextData | |
| def addContextData2(self,path,collection,thumb,streamingfile,rawfile,label,description,content_type,responsible,weight,credits=None): | |
| """Hinzufuegen der Resource""" | |
| splitted=path.split("/") | |
| #print "BLU" | |
| id=splitted[len(splitted)-1] | |
| title=splitted[len(splitted)-1] | |
| metalink=self.REQUEST['SERVER_URL']+path+"/index.meta" | |
| #link=TOBEDONE" | |
| """Hinzufuegen der Ressource""" | |
| thumbUrl="http://einst3.mpiwg-berlin.mpg.de/"+path+thumb | |
| link="rtsp://einst1.mpiwg-berlin.mpg.de/"+path+streamingfile | |
| rawFile="file:///Volumes/einstein_movies/"+path+rawfile | |
| params=urllib.urlencode({'id':id,'title':title,'link':link,'thumbUrl':thumbUrl,'rawFile':rawFile,'label':label,'description':description,'contentType':content_type,'responsible':responsible,'weight':weight,'credits':credits,'metalink':metalink}) | |
| #retStr=urllib.urlopen(collection+"/addMovie",params).read() | |
| try: | |
| server=xmlrpclib.Server(collection,allow_none=True) | |
| retStr=server.addMovie(id,title,label,description,content_type,responsible,link,thumbUrl,rawFile,metalink,weight,credits) | |
| except: | |
| zLOG.LOG('OSAS_Root (addFileToDollection2)',zLOG.ERROR,'%s %s'%sys.exc_info()[:2]) | |
| return "An Error occured adding the resource\n", collection,params | |
| #print "added" | |
| if not retStr: | |
| return "An Error occured adding the resource\n", collection,params | |
| #print collection+"/"+id+"/copyIndex_meta2echo_resource" | |
| urllib.urlopen(collection+"/"+id+"/copyIndex_meta2echo_resource").read() | |
| #print "copy2res" | |
| urllib.urlopen(collection+"/"+id+"/generate_label").read() | |
| #print "label" | |
| urllib.urlopen(collection+"/"+id+"/generate_title").read() | |
| #print "title" | |
| return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path) | |
| manage_options = Folder.manage_options+( | |
| {'label':'Main Config','action':'add_contextData_config'}, | |
| ) | |
| def add_contextData_config(self): | |
| """Main configuration""" | |
| pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt','changeAddContextData.zpt')).__of__(self) | |
| return pt() | |
| def change_OSAS_add_contextData(self,collection,pwstr=None,RESPONSE=None): | |
| """Change""" | |
| self.pwstr=pwstr | |
| self.collection=collection | |
| if RESPONSE is not None: | |
| RESPONSE.redirect('manage_main') | |
| def manage_AddOSAS_add_contextDataForm(self): | |
| """interface for adding the OSAS_add_Metadata""" | |
| pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt','addContextData.zpt')).__of__(self) | |
| return pt() | |
| def manage_AddOSAS_add_contextData(self,id,collection,RESPONSE=None): | |
| """add the OSAS_root""" | |
| newObj=OSAS_add_contextData(id,collection) | |
| self.Destination()._setObject(id,newObj) | |
| if RESPONSE is not None: | |
| RESPONSE.redirect('manage_main') | |
| class OSAS_handlerObject(Folder): | class OSAS_handlerObject(Folder): |
| Line 56 class OSAS_handlerObject(Folder): | Line 247 class OSAS_handlerObject(Folder): |
| pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt','changeHandlerObjectForm.zpt')).__of__(self) | pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt','changeHandlerObjectForm.zpt')).__of__(self) |
| return pt() | return pt() |
| def changeHandlerObject(self,title,prefix,objectTypes,ignorePath=None,RESPONSE=None): | def changeHandlerObject(self,title,prefix,objectTypes="",ignorePath=None,newTarget="yes",RESPONSE=None): |
| """Change RootFolderName""" | """Change RootFolderName""" |
| self.title=title | self.title=title |
| self.prefix=prefix | self.prefix=prefix |
| self.ignorePath=ignorePath | self.ignorePath=ignorePath |
| self.objectTypes=toList(objectTypes) | self.objectTypes=toList(objectTypes) |
| self.newTarget=newTarget | |
| if RESPONSE is not None: | if RESPONSE is not None: |
| RESPONSE.redirect('manage_main') | RESPONSE.redirect('manage_main') |
| Line 109 class OSAS_root(Folder,Implicit): | Line 301 class OSAS_root(Folder,Implicit): |
| OSASObjectTypes=OSAS_helpers.OSASObjectTypes | OSASObjectTypes=OSAS_helpers.OSASObjectTypes |
| def generateMovieThumb(self,name): | |
| """generate movie""" | |
| server=xmlrpclib.Server(self.serverUrl) | |
| name="/mpiwg/online"+name | |
| print "bl",name,os.path.splitext(name)[0]+".gif" | |
| ret=server.generateMovieThumb(name,os.path.splitext(name)[0]+".gif") | |
| return ret | |
| security.declareProtected("View management screens","getOSASObjectTypes") | security.declareProtected("View management screens","getOSASObjectTypes") |
| def getOSASObjectTypes(self): | def getOSASObjectTypes(self): |
| """return list of objecttypes""" | """return list of objecttypes""" |