Diff for /ECHO_content/ECHO_helpers.py between versions 1.97 and 1.103.2.2

version 1.97, 2009/04/14 16:31:27 version 1.103.2.2, 2012/01/16 18:57:50
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#"              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"""              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 170  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 189  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 323  class ECHO_basis: Line 324  class ECHO_basis:
     def getOverview(self):      def getOverview(self):
         """map overview graphics"""          """map overview graphics"""
         #return self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['overview'])[0][1]          #return self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['overview'])[0][1]
         if self.hasOverview():          return getattr(self, 'overview', None)
             return getattr(self, 'overview')  
         return None  
   
     def getMapAreas(self):      def getMapAreas(self):
         """returns the list of MapAreas"""          """returns the list of MapAreas"""
Line 653  def readFieldFromXML(meta_url,parent,fie Line 652  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 788  def ECHO_rerenderLinksMD(self,obj=None,t Line 797  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  
   
             if RESPONSE is not None:  
                     #RESPONSE.redirect('./manage_main')  
                     RESPONSE.write( "</html></body>")  
   
             return ret  
           
 def getRDFDescription(self,linkURL,urn=None,nameDef=None,typeName=None,ap=""):  def getRDFDescription(self,linkURL,urn=None,nameDef=None,typeName=None,ap=""):
             """rdf"""              """rdf"""
                           
             ret=""              ret=""
             about="""<RDF:Description RDF:about="%s">"""              about="""<rdf:Description rdf:about="%s">"""
             name="""<ECHONAVIGATION:name>%s</ECHONAVIGATION:name>"""              name="""<echonavigation:name>%s</echonavigation:name>"""
             link="""<ECHONAVIGATION:link xlink:href="%s">%s</ECHONAVIGATION:link>"""              link="""<echonavigation:link xlink:href="%s">%s</echonavigation:link>"""
             clickable="""<ECHONAVIGATION:linkClickable>%s</ECHONAVIGATION:linkClickable>"""              clickable="""<echonavigation:linkClickable>%s</echonavigation:linkClickable>"""
             #link="""<ECHONAVIGATION:link RDF:about="%s"/>"""              #link="""<echonavigation:link rdf:about="%s"/>"""
             type="""<ECHONAVIGATION:type>%s</ECHONAVIGATION:type>"""              type="""<echonavigation:type>%s</echonavigation:type>"""
                           
             #xlink="""<ECHONAVIGATION:xlink xlink:href="%s"/>"""                    #xlink="""<echonavigation:xlink xlink:href="%s"/>"""      
                           
             if ap=="":              if ap=="":
                 ap2=""                  ap2=""
             else:              else:
                 ap2 = """<MPIWG:archive-path>%s</MPIWG:archive-path>"""%ap                  ap2 = """<mpiwg:archive-path>%s</mpiwg:archive-path>"""%ap
                           
             if not urn:              if not urn:
                     #urn="urn:"+re.sub('/',':',self.absolute_url())                      #urn="urn:"+re.sub('/',':',self.absolute_url())
Line 867  def getRDFDescription(self,linkURL,urn=N Line 862  def getRDFDescription(self,linkURL,urn=N
                     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"+ap2+"\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 1137  def writeMetadata(url,metadict,project=N Line 1137  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):

Removed from v.1.97  
changed lines
  Added in v.1.103.2.2


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