version 1.5, 2005/04/13 15:13:19
|
version 1.14, 2009/04/21 08:12:58
|
Line 1
|
Line 1
|
|
|
"""preliminary object for displaying movies as part of a collection, shall be exchanged by a generalized ressource object""" |
"""preliminary object for displaying movies as part of a collection, shall be exchanged by a generalized ressource object""" |
|
|
import string |
import string |
Line 31 from Ft.Xml import EMPTY_NAMESPACE
|
Line 32 from Ft.Xml import EMPTY_NAMESPACE
|
|
|
import Ft.Xml.XPath |
import Ft.Xml.XPath |
import cStringIO |
import cStringIO |
import zLOG |
import logging |
|
|
try: |
try: |
from psycopg import libpq |
from psycopg import libpq |
Line 47 import urllib
|
Line 48 import urllib
|
import xml.dom.minidom |
import xml.dom.minidom |
import ECHO_helpers |
import ECHO_helpers |
from ECHO_helpers import * |
from ECHO_helpers import * |
from ECHO_language import * |
|
|
|
|
|
class ECHO_movie(Folder,Persistent,ECHO_basis): |
class ECHO_movie(Folder,Persistent,ECHO_basis): |
"""ECHO Ressource""" |
"""ECHO Ressource""" |
Line 92 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 91 class ECHO_movie(Folder,Persistent,ECHO_
|
ret=ret.replace("//einst3","//einst1") |
ret=ret.replace("//einst3","//einst1") |
return ret |
return ret |
|
|
|
def lowresHTTP(self): |
|
"""protokoll fuer link html""" |
|
if getattr(self,"lowresFile","")=="": |
|
return None |
|
|
|
splitted=self.lowresFile.split(":") |
|
if len(splitted)<2: |
|
return self.lowresFile |
|
else: |
|
splitted[0]="http" |
|
|
|
ret= ":".join(splitted) |
|
ret=ret.replace("//einst1","//einst3") |
|
return ret |
|
|
|
def lowresRTSP(self): |
|
"""protokoll fuer link html""" |
|
if getattr(self,"lowresFile","")=="": |
|
return None |
|
|
|
splitted=self.lowresFile.split(":") |
|
if len(splitted)<2: |
|
return self.lowresFile |
|
else: |
|
splitted[0]="RTSP" |
|
|
|
ret= ":".join(splitted) |
|
ret=ret.replace("//einst3","//einst1") |
|
return ret |
|
|
|
|
def getRDF(self,urn=None): |
def getRDF(self,urn=None): |
|
|
Line 102 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 131 class ECHO_movie(Folder,Persistent,ECHO_
|
urn=self.absolute_url() |
urn=self.absolute_url() |
ret="" |
ret="" |
|
|
rettemp="""<RDF:Seq RDF:about="%s">\n"""%urn |
rettemp="""<rdf:Seq rdf:about="%s">\n"""%urn |
|
|
li="""<RDF:li RDF:resource="%s" />\n""" |
li="""<rdf:li rdf:resource="%s" />\n""" |
rettemp+=li%self.thumbUrl |
rettemp+=li%self.thumbUrl |
rettemp+=li%self.metalink |
rettemp+=li%self.metalink |
rettemp+=li%self.rawFile |
rettemp+=li%self.rawFile |
rettemp+=li%getattr(self,'lowresFile','') |
rettemp+=li%getattr(self,'lowresFile','') |
rettemp+=li%self.link |
rettemp+=li%self.link |
rettemp+="</RDF:Seq>" |
rettemp+="</rdf:Seq>" |
|
|
rettemp+=getRDFDescription(self,self.thumbUrl,nameDef="thumb",typeName="thumbnail",urn=self.thumbUrl) |
rettemp+=getRDFDescription(self,self.thumbUrl,nameDef="thumb",typeName="thumb",urn=self.thumbUrl) |
rettemp+=getRDFDescription(self,self.metalink,nameDef="metadata",typeName="ECHO_metaData",urn=self.metalink) |
rettemp+=getRDFDescription(self,self.metalink,nameDef="metadata",typeName="ECHO_metaData",urn=self.metalink) |
rettemp+=getRDFDescription(self,self.rawFile,nameDef="raw",typeName="ECHO_dv_movie",urn=self.rawFile) |
rettemp+=getRDFDescription(self,self.rawFile,nameDef="raw",typeName="raw_movie",urn=self.rawFile) |
if not (getattr(self,'lowresFile','')==""): |
if not (getattr(self,'lowresFile','')==""): |
rettemp+=getRDFDescription(self,self.lowresFile,nameDef="raw",typeName="ECHO_dv_movie",urn=self.lowresFile) |
rettemp+=getRDFDescription(self,self.lowresFile,nameDef="lores_movie",typeName="lores",urn=self.lowresFile) |
rettemp+=getRDFDescription(self,self.link,nameDef="streaming internal",typeName="ECHO_streaming",urn=self.link) |
rettemp+=getRDFDescription(self,self.link,nameDef="hires",typeName="hires_movie",urn=self.link) |
return rettemp |
return rettemp |
|
|
def getAccessRightSelectorHTML(self,outlook="select"): |
def getAccessRightSelectorHTML(self,outlook="select"): |
Line 258 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 287 class ECHO_movie(Folder,Persistent,ECHO_
|
def copyTitleToInfoXML(self,RESPONSE=None): |
def copyTitleToInfoXML(self,RESPONSE=None): |
"""copy title from the resource""" |
"""copy title from the resource""" |
presentationXML=readFieldFromXML(self.metalink,'texttool','presentation') |
presentationXML=readFieldFromXML(self.metalink,'texttool','presentation') |
resourcepath=readFieldFromXML(self.metalink,'resource','archive-path') |
resourcepath=readFieldFromXML_xpath(self.metalink,'//resource/archive-path') |
if (not presentationXML) or (not resourcepath): |
if (not presentationXML) or (not resourcepath): |
if RESPONSE: |
if RESPONSE: |
RESPONSE.write("Error: %s\n"%self.getId()) |
RESPONSE.write("Error: %s\n"%self.getId()) |
Line 530 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 559 class ECHO_movie(Folder,Persistent,ECHO_
|
if RESPONSE is not None: |
if RESPONSE is not None: |
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
|
|
|
def getMDValue(self,fieldNameTest,empty=None,generic=None): |
|
"""get md values""" |
|
#TODO: cache mappinghash |
|
|
|
fieldName=None |
|
if generic: |
|
ct=self.contentType.replace(" ","_").lower() |
|
|
|
#caching |
|
if not hasattr(self,'_v_mapHash'): #noch keine cachevariable |
|
self._v_mapHash={} |
|
|
|
tmp=self._v_mapHash.get(ct,None) |
|
if tmp: #teste ob type schon existiert |
|
fieldName=tmp.get(fieldNameTest,None) |
|
else: |
|
self._v_mapHash[ct]={} |
|
|
|
#noch nicht gecached |
|
if not fieldName and hasattr(self.standardMD,ct): |
|
fieldName=getattr(self.standardMD,ct).generateMappingHash()[fieldNameTest][0] |
|
self._v_mapHash[ct][fieldNameTest]=fieldName |
|
|
def getMDValue(self,fieldName,empty=None): |
|
if not empty: |
if not empty: |
return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType) |
return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType) |
|
|
Line 624 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 674 class ECHO_movie(Folder,Persistent,ECHO_
|
|
|
|
|
|
|
def getFieldValue(self,field): |
|
"""get value""" |
|
|
|
try: |
|
|
|
ret=self.metaDataHash[field] |
|
if ret == "": |
|
return None |
|
else: |
|
|
|
return ret |
|
except: |
|
return None |
|
|
|
def getMetaDataHash(self): |
def getMetaDataHash(self): |
"""md hash""" |
"""md hash""" |
return self.metaDataHash |
return self.metaDataHash |
Line 654 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 690 class ECHO_movie(Folder,Persistent,ECHO_
|
"""copys metadatafields to the object""" |
"""copys metadatafields to the object""" |
fields=['author','title','year'] |
fields=['author','title','year'] |
for field in fields: |
for field in fields: |
setattr(self,'MD_'+field,self.getFieldValue(field)) |
setattr(self,'MD_'+field,self.getMDValue(field)) |
|
|
|
|
def findLabelsFromMapping(self,referenceType): |
def findLabelsFromMapping(self,referenceType): |