version 1.96, 2008/12/17 12:05:00
|
version 1.103.2.1, 2011/10/13 07:48:27
|
Line 19 import bz2
|
Line 19 import bz2
|
import xmlrpclib |
import xmlrpclib |
import sys |
import sys |
import logging |
import logging |
|
#import amara |
|
|
#erstzt logging |
#erstzt logging |
def logger(txt,method,txt2): |
def logger(txt,method,txt2): |
Line 91 class ECHO_basis:
|
Line 92 class ECHO_basis:
|
# Managment for the PID |
# Managment for the PID |
def setPID(self,pid): |
def setPID(self,pid): |
"""set the pid""" |
"""set the pid""" |
logging.debug(self.getID()+" PID set to "+pid) |
logging.debug(self.getId()+" PID set to "+pid) |
self.pid=pid |
self.pid=pid |
return True |
return True |
|
|
Line 142 class ECHO_basis:
|
Line 143 class ECHO_basis:
|
def showRDF(self): |
def showRDF(self): |
"""showrdf""" |
"""showrdf""" |
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
ret="""<?xml version="1.0" encoding="utf-8"?>\n<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ECHONAVIGATION="http://www.echo.eu/rdf#">\n""" |
ret="""<?xml version="1.0" encoding="utf-8"?>\n<rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ECHONAVIGATION="http://www.echo.eu/rdf#" |
|
xmlns:MPIWG="http://www.mpiwg-berlin.mpg.de/ns/mpiwg">\n""" |
|
|
ret+=self.getRDF(urn="echo:collectionroot")+"\n" |
ret+=self.getRDF(urn="echo:collectionroot")+"\n" |
|
|
|
|
ret+="""</RDF:RDF>""" |
ret+="""</rdf:rdf>""" |
return ret |
return ret |
|
|
|
|
def RDF(self): |
def RDF(self): |
"""showrdf""" |
"""showrdf""" |
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
ret="""<?xml version="1.0" encoding="utf-8"?>\n<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ECHONAVIGATION="http://www.echo.eu/rdf#">\n""" |
ret="""<?xml version="1.0" encoding="utf-8"?>\n<rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ECHONAVIGATION="http://www.echo.eu/rdf#">\n""" |
|
|
ret+=self.getRDF(urn=self.absolute_url())+"\n" |
ret+=self.getRDF(urn=self.absolute_url())+"\n" |
|
|
|
|
ret+="""</RDF:RDF>""" |
ret+="""</rdf:rdf>""" |
return ret |
return ret |
|
|
|
|
Line 169 class ECHO_basis:
|
Line 171 class ECHO_basis:
|
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 |
flag=0 |
flag=0 |
|
|
li="""<RDF:li RDF:resource="%s" />\n""" |
li="""<rdf:li rdf:resource="%s" />\n""" |
if not ('<error>' in self.getFullTextXML(noredirect='Yes')): |
if not ('<error>' in self.getFullTextXML(noredirect='Yes')): |
nurn=self.absolute_url()+'/getFullTextXML' |
nurn=self.absolute_url()+'/getFullTextXML' |
rettemp+=li%nurn |
rettemp+=li%nurn |
Line 188 class ECHO_basis:
|
Line 190 class ECHO_basis:
|
rettemp+=li%nurn |
rettemp+=li%nurn |
flag=1 |
flag=1 |
|
|
rettemp+="</RDF:Seq>" |
rettemp+="</rdf:Seq>" |
|
|
if flag==1: |
if flag==1: |
ret+=rettemp |
ret+=rettemp |
Line 205 class ECHO_basis:
|
Line 207 class ECHO_basis:
|
nurn=self.absolute_url()+'/showMetaDataXML' |
nurn=self.absolute_url()+'/showMetaDataXML' |
ret+=getRDFDescription(self,self.absolute_url()+'/showMetaDataXML',urn=nurn,nameDef="Metadata",typeName="ECHO_metaData") |
ret+=getRDFDescription(self,self.absolute_url()+'/showMetaDataXML',urn=nurn,nameDef="Metadata",typeName="ECHO_metaData") |
|
|
return ret |
|
|
|
|
return ret |
def content_html_XMLRpc(self): |
def content_html_XMLRpc(self): |
"""xml_rpc_version""" |
"""xml_rpc_version""" |
return encodeRPC(self.content_html()) |
return encodeRPC(self.content_html()) |
Line 652 def readFieldFromXML(meta_url,parent,fie
|
Line 654 def readFieldFromXML(meta_url,parent,fie
|
|
|
return getText(field[0].childNodes) |
return getText(field[0].childNodes) |
|
|
|
def readFieldFromXML_xpath(meta_url,xpath): |
|
"""xpath auf meta_url""" |
|
#logging.debug("try to parse:"+meta_url) |
|
#logging.debug("Xtry to parse xpath:"+xpath) |
|
doc = amara.parse(meta_url) |
|
#logging.debug("have:"+doc.xml()) |
|
node= doc.xml_xpath(xpath) |
|
if node is None: |
|
return None |
|
|
|
return unicode(node[0]) |
|
|
def urlopen(url): |
def urlopen(url): |
"""urlopen mit timeout""" |
"""urlopen mit timeout""" |
Line 787 def ECHO_rerenderLinksMD(self,obj=None,t
|
Line 799 def ECHO_rerenderLinksMD(self,obj=None,t
|
if entry[1].meta_type == 'ECHO_resource': |
if entry[1].meta_type == 'ECHO_resource': |
try: |
try: |
entry[1].ECHO_getResourceMD(template="no",overwrite="yes") |
entry[1].ECHO_getResourceMD(template="no",overwrite="yes") |
|
logging.debug("ECHO_rerenderLinksMD: gotMD") |
if "title" in types: |
if "title" in types: |
entry[1].generate_title() |
entry[1].generate_title() |
|
logging.debug("ECHO_rerenderLinksMD: generatedTitle") |
if "label" in types: |
if "label" in types: |
entry[1].generate_label() |
entry[1].generate_label() |
ret+="OK:"+entry[0]+"-- "+entry[1].getTitle().decode('utf-8')+"-- "+entry[1].getTitle().decode('utf-8')+"<br>" |
logging.debug("ECHO_rerenderLinksMD: generatedLabel") |
|
ret+="OK:"+entry[0]+"-- "+self.unicodify(entry[1].getTitle())+"-- "+self.unicodify(entry[1].getTitle())+"<br>" |
except: |
except: |
ret+="Error:"+entry[0]+"<br>" |
|
|
|
|
ret+="Error:"+entry[0]+"<br>" |
|
logging.debug("ECHO_rerenderLinksMD: error") |
|
logging.debug("%s %s"%(sys.exc_info()[0],sys.exc_info()[1])) |
|
|
|
|
|
|
return "<html><body>"+ret+"Rerenderd all links to resources in: "+self.title+"</html></body>" |
return "<html><body>"+ret+"Rerenderd all links to resources in: "+self.title+"</html></body>" |
|
|
def reloadMetaDataFromStorage(self,RESPONSE=None): |
|
"""copy metadata from the storage to ECHO""" |
|
ret="" |
|
resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) |
|
if RESPONSE is not None: |
|
RESPONSE.setHeader("Content-Type", type) |
|
RESPONSE.write("<html><body>\n") |
|
|
|
for resource in resources: |
|
x=str(resource[1].copyIndex_meta2echo_resource())+"<br>" |
|
if RESPONSE is not None: |
|
RESPONSE.write(x+"\n") |
|
|
|
ret+=x |
def getRDFDescription(self,linkURL,urn=None,nameDef=None,typeName=None,ap=""): |
|
"""rdf""" |
|
|
if RESPONSE is not None: |
ret="" |
#RESPONSE.redirect('./manage_main') |
about="""<rdf:Description rdf:about="%s">""" |
RESPONSE.write( "</html></body>") |
name="""<echonavigation:name>%s</echonavigation:name>""" |
|
link="""<echonavigation:link xlink:href="%s">%s</echonavigation:link>""" |
|
clickable="""<echonavigation:linkClickable>%s</echonavigation:linkClickable>""" |
|
#link="""<echonavigation:link rdf:about="%s"/>""" |
|
type="""<echonavigation:type>%s</echonavigation:type>""" |
|
|
return ret |
#xlink="""<echonavigation:xlink xlink:href="%s"/>""" |
|
|
def getRDFDescription(self,linkURL,urn=None,nameDef=None,typeName=None): |
if ap=="": |
"""rdf""" |
ap2="" |
|
else: |
|
ap2 = """<mpiwg:archive-path>%s</mpiwg:archive-path>"""%ap |
|
|
ret="" |
|
about="""<RDF:Description RDF:about="%s">""" |
|
name="""<ECHONAVIGATION:name>%s</ECHONAVIGATION:name>""" |
|
link="""<ECHONAVIGATION:link xlink:href="%s">%s</ECHONAVIGATION:link>""" |
|
clickable="""<ECHONAVIGATION:linkClickable>%s</ECHONAVIGATION:linkClickable>""" |
|
#link="""<ECHONAVIGATION:link RDF:about="%s"/>""" |
|
type="""<ECHONAVIGATION:type>%s</ECHONAVIGATION:type>""" |
|
#xlink="""<ECHONAVIGATION:xlink xlink:href="%s"/>""" |
|
if not urn: |
if not urn: |
#urn="urn:"+re.sub('/',':',self.absolute_url()) |
#urn="urn:"+re.sub('/',':',self.absolute_url()) |
urn=self.absolute_url() |
urn=self.absolute_url() |
Line 858 def getRDFDescription(self,linkURL,urn=N
|
Line 863 def getRDFDescription(self,linkURL,urn=N
|
else: |
else: |
type2=type%typeName |
type2=type%typeName |
|
|
#ret=about2+"\n"+name2+"\n"+link2+"\n"+type2+"\n"+clickable2+"\n</RDF:Description>" |
|
ret=about2+"\n"+name2+"\n"+type2+"\n"+clickable2+"\n</RDF:Description>" |
|
|
#ret=about2+"\n"+name2+"\n"+link2+"\n"+type2+"\n"+clickable2+"\n</rdf:Description>" |
|
try: |
|
ret=about2+"\n"+name2+"\n"+type2+"\n"+clickable2+"\n"+ap2+"\n</rdf:Description>" |
|
except: |
|
ret=self.unicodify(about2)+"\n"+self.unicodify(name2)+"\n"+self.unicodify(type2)+"\n"+self.unicodify(clickable2)+"\n"+self.unicodify(ap2)+"\n</rdf:Description>" |
|
|
return ret |
return ret |
|
|
def getCopyrightsFromForm(self,argv): |
def getCopyrightsFromForm(self,argv): |
Line 1128 def writeMetadata(url,metadict,project=N
|
Line 1139 def writeMetadata(url,metadict,project=N
|
|
|
return dom.toxml(encoding='utf-8') |
return dom.toxml(encoding='utf-8') |
|
|
def readMetadata(url): |
|
"""Methode zum Auslesen der Metadateninformation zu einer Resource |
|
Vorerst noch Typ bib""" |
|
|
|
metadict={} |
|
|
|
try: |
|
geturl="" |
|
for line in urlopen(url).readlines(): |
|
geturl=geturl+line |
|
|
|
|
|
except: |
|
return (None,"Cannot open: "+url) |
|
|
|
try: |
|
dom=xml.dom.minidom.parseString(geturl) |
|
except: |
|
return (None,"Cannot parse: "+url+"<br>"+geturl) |
|
|
|
metanode=dom.getElementsByTagName('bib') |
|
metadict['bib_type']='Book' |
|
if len(metanode)==0: |
|
metanode=dom.getElementsByTagName('archimedes') |
|
metadict['bib_type']='Archimedes' |
|
|
|
|
|
if not len(metanode)==0: |
|
metacontent=metanode[0].childNodes |
|
|
|
try: |
|
metadict['bib_type']=getText(dom.getElementsByTagName('bib')[0].attributes['type'].childNodes) |
|
except: |
|
"""nothing""" |
|
|
|
for node in metacontent: |
|
try: |
|
#print urllib.unquote(getText(node.childNodes)),getText(node.childNodes) |
|
#metadict[re.sub('-','_',node.tagName.lower())]=urllib.unquote(getText(node.childNodes)) |
|
metadict[re.sub('-','_',node.tagName.lower())]=getText(node.childNodes) |
|
|
|
except: |
|
"""nothing""" |
|
|
|
return (metadict,"") |
|
|
|
|
|
class MapArea(SimpleItem): |
class MapArea(SimpleItem): |