Diff for /OSAS/OSA_system/OSAS_add.py between versions 1.17 and 1.44

version 1.17, 2004/03/25 09:59:19 version 1.44, 2005/02/10 16:17:18
Line 1 Line 1
 #BAUSTELLE  #Neue Version Begin 5.4.2004
   
   
 """Methoden zum hinzufügen von Dokumenten ins Archiv"""  """Methoden zum hinzufügen von Dokumenten ins Archiv"""
Line 9  except: Line 9  except:
     print "archive not imported"      print "archive not imported"
           
 import os  import os
   
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 from Products.PageTemplates.PageTemplate import PageTemplate  from Products.PageTemplates.PageTemplate import PageTemplate
 import string  import string
 import urllib  import urllib
   import zLOG
 import xml.dom.minidom  import xml.dom.minidom
 from time import localtime,strftime  from time import localtime,strftime
   from Globals import package_home
 #referencetypes=['Book','Bic','Journal Article','Manuscript','jiji']  from types import *
   
 import re  import re
   def showHelp(helptext):
       """show helptext"""
       return """<html>
       <body>
       %
       </body>
       </html>"""%helptext
 def add(self, no_upload=0):  def add(self, no_upload=0):
         """ Add metadata or metadata and documents to the repository          """ Add metadata or metadata and documents to the repository
         no_upload=0 kein upload sonst upload von documententen"""          no_upload=0 kein upload sonst upload von documententen"""
                   
     self.referencetypes=['Book','Journal Article','Manuscript']          #self.referencetypes=self.ZopeFind(self,obj_metatypes=['OSAS_MetadataMapping'])
       self.referencetypes=self.ZopeFind(self)
   
     newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_new').__of__(self)      newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_new').__of__(self)
         self.REQUEST.SESSION['path']=self.REQUEST['path']          self.REQUEST.SESSION['path']=self.REQUEST['path']
Line 34  def add(self, no_upload=0): Line 44  def add(self, no_upload=0):
             del self.REQUEST.SESSION['no_upload']              del self.REQUEST.SESSION['no_upload']
                           
     return newtemplate()      return newtemplate()
     return self.referencetypes  
   
   
   
 def getISO():  def getISO():
     """ISO"""      """ISO"""
     try:      try:
         f=file('/usr/local/mpiwg/Zope/lib/python/Products/OSA_system/iso639-1.inc','r').readlines()          f=file(os.path.join(package_home(globals()),'iso639-1.inc'),'r').readlines()
         #f=file('OSA_system/iso639-1.inc','r').readlines()  
         ret={}          ret={}
         for lineraw in f:          for lineraw in f:
             line=lineraw.encode('ascii','replace')              line=lineraw.encode('ascii','replace').strip()
             value=string.split(line,'\t')[0].encode('ascii','replace')              value=string.split(line,'\t')[0].encode('ascii','replace')
             key=string.split(line,'\t')[1].encode('ascii','replace')              key=string.split(line,'\t')[1].encode('ascii','replace')
             ret[key]=value              ret[key]=value
Line 53  def getISO(): Line 62  def getISO():
         ret={}          ret={}
         return ret          return ret
   
   
 def add2(self):  def add2(self):
     self.reftype=self.REQUEST['Reference Type']      self.reftype=self.REQUEST['Reference Type']
     self.REQUEST.SESSION['reftype']=self.reftype          self.REQUEST.SESSION['reftype']=self.reftype    
     self.bibdata={'Book':['author','year','title','series editor','series title','series volume','number of pages','city','publisher','edition','number of volumes','translator','ISBN ISSN'],      self.bibdata={}
 'Journal Article':['author','year','title','journal','volume','issue','pages','alternate journal','call number'],      for referenceType in self.referencetypes:
 'Manuscript':['author','year','title','location','signature','pages','editorial remarks','description','keywords']}          #print referenceType
           if referenceType[1].title == self.reftype: 
               self.bibdata[referenceType[1].title]=referenceType[1].fields
               self.bibdata['data']=referenceType[1]
     self.fields=self.bibdata[self.reftype]      self.fields=self.bibdata[self.reftype]
       
     self.isolist=getISO()      self.isolist=getISO()
     tmp=getISO().keys()      tmp=getISO().keys()
     tmp.sort()      tmp.sort()
Line 104  def add3(self): Line 117  def add3(self):
     """Foldername"""      """Foldername"""
     metadata=parse_query_string(self.REQUEST['QUERY_STRING'])      metadata=parse_query_string(self.REQUEST['QUERY_STRING'])
     self.REQUEST.SESSION['metadata']=metadata      self.REQUEST.SESSION['metadata']=metadata
     vorschlag_naming=metadata['author'][:5]+"_"+metadata['title'][:5]+"_"+metadata['year']      vorschlag=[]
   
       if metadata.has_key('author'):
           vorschlag.append(metadata['author'][:5])
       if metadata.has_key('title'):
           vorschlag.append(metadata['title'][:5])
       if metadata.has_key('year'):
           vorschlag.append(metadata['year'])
       
           
       vorschlag_naming=string.join(vorschlag,"_")
       
           
     self.vorschlag_naming=unicode(vorschlag_naming,'ascii','ignore')      self.vorschlag_naming=unicode(vorschlag_naming,'ascii','ignore')
     if self.REQUEST.SESSION.has_key('no_upload'):      if self.REQUEST.SESSION.has_key('no_upload'):
         self.REQUEST.SESSION['folder_name']=self.REQUEST.SESSION['path']          self.REQUEST.SESSION['folder_name']=self.REQUEST.SESSION['path']
Line 115  def add3(self): Line 140  def add3(self):
           
   
 def add4(self):  def add4(self):
   
     self.path=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1)      self.path=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1)
           
     self.folder_name=self.REQUEST['folder_name']      self.folder_name=self.REQUEST['folder_name']
     # netx has to be changed -> error if back button is used!!      # next has to be changed -> error if back button is used!!
     self.REQUEST.SESSION['path']=self.REQUEST.SESSION['path']+"/"+self.REQUEST['folder_name']      self.REQUEST.SESSION['folder_name']=self.folder_name
       #return self.REQUEST['submit']
   
       try:    
               #os.popen('mkdir '+self.REQUEST.SESSION['path'])
           os.mkdir(os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name']))
           os.chmod(os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name']),0775)
   
       except:
   
           """nothing"""
   
       if self.REQUEST['submit']=="upload images":
           self.REQUEST.SESSION['path']=os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name'])
   
   
     self.REQUEST.SESSION['folder_name']=self.folder_name  
     self.image_folder_name="pageimg"      self.image_folder_name="pageimg"
     newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_upload').__of__(self)      newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_upload').__of__(self)
           
     return newtemplate()      return newtemplate()
           
       elif self.REQUEST['submit']=="upload pdf":
           os.mkdir(os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name']))
           return addPdf(self,os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name']))
       else:
           os.mkdir(os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name']))
           return addText(self,os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name']))
       
       
 def add5(self):  def add5(self):
     """ADD INDEX.META"""      """ADD INDEX.META"""
       try:
           os.chmod(self.REQUEST.SESSION['path'],0775)
       except:
           pass
   
     newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_metadata').__of__(self)      newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_metadata').__of__(self)
     return newtemplate()      return newtemplate()
   
Line 144  def add6(self): Line 196  def add6(self):
     self.metadata=self.REQUEST.SESSION['metadata']      self.metadata=self.REQUEST.SESSION['metadata']
     self.metadataprint=""      self.metadataprint=""
     for tag in self.metadata.keys():      for tag in self.metadata.keys():
           if tag!="":
         self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n"          self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n"
   
     newtemplate=PageTemplateFile('Products/OSA_system/zpt/index_meta').__of__(self)      newtemplate=PageTemplateFile('Products/OSA_system/zpt/index_meta').__of__(self)
     newtemplate.content_type="text/plain"      newtemplate.content_type="text/plain"
     renderxml = newtemplate()      renderxml = newtemplate(encode='utf-8')
       
           
     if self.REQUEST.SESSION.has_key('no_upload'):      if self.REQUEST.SESSION.has_key('no_upload'):
         metapath=self.REQUEST.SESSION['path']+"/index.meta"          metapath=self.REQUEST.SESSION['path']+"/index.meta"
     else:      else:
         metapath=self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']+"/index.meta"          metapath=self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']+"/index.meta"
           
     f=open(metapath,'w')      f=open(metapath,'w')
     f.writelines(renderxml)      try:
           f.write(renderxml.encode('utf-8'))
       except:
           f.write(unicode(renderxml,'latin-1').encode('utf-8'))
           #f.write(renderxml)
   
     f.close()      f.close()
     os.chmod(metapath,0664)      os.chmod(metapath,0664)
     os.popen('chmod -R 0775 %s'%self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name'])       os.popen('chmod -R 0775 %s'%self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']) 
Line 166  def add6(self): Line 226  def add6(self):
     else:      else:
                 #print self.add_metadata['archive-path']                  #print self.add_metadata['archive-path']
         self.viewpath=re.search(r"/mpiwg/online/(.*)",self.add_metadata['archive-path']).group(1)           self.viewpath=re.search(r"/mpiwg/online/(.*)",self.add_metadata['archive-path']).group(1) 
         newtemplate2=PageTemplateFile('Products/OSA_system/zpt/OSAS_saved').__of__(self)  
       
                   
       if (self.REQUEST.SESSION.has_key('no_upload')) and (self.REQUEST.SESSION['no_upload']=="text"):
               """text upload"""
               return 1
       else:   
               newtemplate2=PageTemplateFile('Products/OSA_system/zpt/OSAS_saved').__of__(self)
         newtemplate2.content_type="text/html"          newtemplate2.content_type="text/html"
         self.REQUEST.response.setHeader('Content-Type','text/html')          self.REQUEST.response.setHeader('Content-Type','text/html')
       
   
         return newtemplate2()          return newtemplate2()
   
   
   
   
 def date(self):  def date(self):
     return strftime("%d.%m.%Y",localtime())       return strftime("%d.%m.%Y",localtime()) 
   
Line 194  def addPresentation(self,path): Line 254  def addPresentation(self,path):
         try:          try:
             author=archive.getText(dom.getElementsByTagName('Author')[0].childNodes)              author=archive.getText(dom.getElementsByTagName('Author')[0].childNodes)
         except:          except:
               try:
             author=archive.getText(dom.getElementsByTagName('Editor')[0].childNodes)              author=archive.getText(dom.getElementsByTagName('Editor')[0].childNodes)
                           except:
                   author=""
       try:
     title=archive.getText(dom.getElementsByTagName('title')[0].childNodes)      title=archive.getText(dom.getElementsByTagName('title')[0].childNodes)
       except:
           title=""
           
     try:      try:
         date=archive.getText(dom.getElementsByTagName('year')[0].childNodes)          date=archive.getText(dom.getElementsByTagName('year')[0].childNodes)
     except:      except:
         try:          try:
             date=archive.getText(dom.getElementsByTagName('Year')[0].childNodes)              date=archive.getText(dom.getElementsByTagName('Year')[0].childNodes)
         except:          except:
               try:
             date=archive.getText(dom.getElementsByTagName('date')[0].childNodes)              date=archive.getText(dom.getElementsByTagName('date')[0].childNodes)
               except:
                   date=""
     i=1      i=1
     while os.path.exists("%02d-presentation"%i):      while os.path.exists(path+"/%02d-presentation"%i):
         i+=1          i+=1
         self.REQUEST.SESSION['presentationname']="%02d-presentation"%i          self.REQUEST.SESSION['presentationname']="%02d-presentation"%i
     self.REQUEST.SESSION['path']=path      self.REQUEST.SESSION['path']=path
     self.REQUEST.SESSION['xmlvorschlag']="""<info>  
       tmpTxt="""<?xml version="1.0" encoding="UTF-8"?>
       <info>
     <author>%s</author>      <author>%s</author>
     <title>%s</title>      <title>%s</title>
     <date>%s</date>      <date>%s</date>
     <display>yes</display>      <display>yes</display>
 </info>"""%(author,title,date)  </info>"""%(author,title,date)
           
       self.REQUEST.SESSION['xmlvorschlag']=tmpTxt.encode('utf-8')
       
     newtemplate=PageTemplateFile('Products/OSA_system/zpt/addPresentation').__of__(self)      newtemplate=PageTemplateFile('Products/OSA_system/zpt/addPresentation').__of__(self)
     return newtemplate()      return newtemplate()
   
Line 245  def addPresentation2(self): Line 318  def addPresentation2(self):
     f=open(path+"/"+folder_name+"/"+file_name,"w")      f=open(path+"/"+folder_name+"/"+file_name,"w")
     f.write(xmlinfo)      f.write(xmlinfo)
     f.close()      f.close()
       try:
           os.chmod(path+"/"+folder_name,0775)
       except:
           """NO"""
   
       os.chmod(path+"/"+folder_name+"/"+file_name,0664)
       addDirsToIndexMeta(path,folder_name,content_description,'presentation')
       
       return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
   
   
   def addPdf(self,path,folder=None):
       """add fulltext to the path"""
       self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing text files
       self.REQUEST.SESSION['pathnew']=path
       newtemplate=PageTemplateFile('Products/OSA_system/zpt/addPdf').__of__(self)
       return newtemplate()
   
   def addPdf2(self):
       """addtext"""
       folder_name="pdf" # foldername fixed
       
       if self.REQUEST['file_name']=="":
           file_name=self.REQUEST['fileupload'].filename
       else:
           file_name=self.REQUEST['file_name']
           
       #print self.REQUEST['folder_name']
       content_description=self.REQUEST['content_description']
       path=self.REQUEST.SESSION['pathnew']
   
       filedata=self.REQUEST.form['fileupload'].read()
       try:
           os.mkdir(path+"/"+folder_name)
       except:
           """nothing"""
       f=open(path+"/"+folder_name+"/"+file_name,"w")
       f.write(filedata)
       f.close()
     os.chmod(path+"/"+folder_name,0755)      os.chmod(path+"/"+folder_name,0755)
     os.chmod(path+"/"+folder_name+"/"+file_name,0644)      os.chmod(path+"/"+folder_name+"/"+file_name,0644)
     addDirsToIndexMeta(path,folder_name,content_description,'presentation')      addDirsToIndexMeta(path,folder_name,content_description,'pdf')
           
     return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)      return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
   
 def addText(self,path):  def addText(self,path,folder=None):
     """add fulltext to the path"""      """add fulltext to the path"""
     self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing text files      self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing text files
     self.REQUEST.SESSION['path']=path      self.REQUEST.SESSION['pathnew']=path
     newtemplate=PageTemplateFile('Products/OSA_system/zpt/addText').__of__(self)      newtemplate=PageTemplateFile('Products/OSA_system/zpt/addText').__of__(self)
     return newtemplate()      return newtemplate()
   
 def addText2(self):  def addText2(self):
       """addtext"""
     folder_name=self.REQUEST['folder_name']      folder_name=self.REQUEST['folder_name']
     #print self.REQUEST['folder_name']      #print self.REQUEST['folder_name']
     content_description=self.REQUEST['content_description']      content_description=self.REQUEST['content_description']
     path=self.REQUEST.SESSION['path']      path=self.REQUEST.SESSION['pathnew']
     file_name=self.REQUEST['fileupload'].filename      file_name=self.REQUEST['fileupload'].filename
     filedata=self.REQUEST.form['fileupload'].read()      filedata=self.REQUEST.form['fileupload'].read()
     os.mkdir(path+"/"+folder_name)      os.mkdir(path+"/"+folder_name)
Line 321  def addTextExternal(self,path,texturl,ve Line 434  def addTextExternal(self,path,texturl,ve
     node.appendChild(subnode)      node.appendChild(subnode)
   
     writefile=file(path+"/index.meta","w")      writefile=file(path+"/index.meta","w")
     writefile.write(dom.toxml().encode('utf-8'))      writefile.write(dom.toxml(encoding="UTF-8"))
     writefile.close()      writefile.close()
   
     #change texttool tag      #change texttool tag
Line 350  def addTextExternal(self,path,texturl,ve Line 463  def addTextExternal(self,path,texturl,ve
   
     #index.meta ausgeben      #index.meta ausgeben
     writefile=file(path+"/index.meta","w")      writefile=file(path+"/index.meta","w")
     writefile.write(dom.toxml().encode('utf-8'))      writefile.write(dom.toxml(encoding="UTF-8"))
     writefile.close()      writefile.close()
           
     #registrieren      #registrieren
Line 423  def addDirsToIndexMeta(path,folder_name, Line 536  def addDirsToIndexMeta(path,folder_name,
     node.appendChild(subnode)      node.appendChild(subnode)
   
     writefile=file(path+"/index.meta","w")      writefile=file(path+"/index.meta","w")
     writefile.write(dom.toxml().encode('utf-8'))      writefile.write(dom.toxml(encoding='UTF-8'))
     writefile.close()      writefile.close()
   
 def readArchimedesXML(folder):  def readArchimedesXML(folder):
Line 540  def combineTextImage2(self,path): Line 653  def combineTextImage2(self,path):
             xsltnode.appendChild(xsltnodetext)              xsltnode.appendChild(xsltnodetext)
             subnode.appendChild(xsltnode)              subnode.appendChild(xsltnode)
                           
       if self.REQUEST.has_key('digiliburlprefix'):
           if not self.REQUEST['digiliburlprefix']=="":
               xsltnode=dom.createElement('digiliburlprefix')
               xsltnodetext=dom.createTextNode(self.REQUEST['digiliburlprefix'])
               xsltnode.appendChild(xsltnodetext)
               subnode.appendChild(xsltnode)
               
     node.appendChild(subnode)      node.appendChild(subnode)
           
     try:      try:
         node2=node.getElementsByTagName('bib')[0]          node2=node.getElementsByTagName('bib')[0]
         subs=node2.getElementsByTagName('lang')          subs=node2.getElementsByTagName('lang')
         for sub in subs:          for sub in subs:
             print "X",sub  
             node2.removeChild(sub)              node2.removeChild(sub)
     except:      except:
         """nothing"""          """nothing"""
Line 554  def combineTextImage2(self,path): Line 673  def combineTextImage2(self,path):
         main=dom.getElementsByTagName('bib')[0]          main=dom.getElementsByTagName('bib')[0]
         node=dom.createElement('lang')          node=dom.createElement('lang')
         textnode=dom.createTextNode(self.REQUEST['lang'])          textnode=dom.createTextNode(self.REQUEST['lang'])
         print "LANG:",lang  
         node.appendChild(textnode)          node.appendChild(textnode)
         main.appendChild(node)          main.appendChild(node)
     except:      except:
Line 577  def combineTextImage2(self,path): Line 695  def combineTextImage2(self,path):
             """nothing"""              """nothing"""
                           
     writefile=file(path+"/index.meta","w")      writefile=file(path+"/index.meta","w")
     writefile.write(dom.toxml().encode('utf-8'))      writefile.write(dom.toxml(encoding="UTF-8"))
     writefile.close()      writefile.close()
           
           
   
     urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()      urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()
     #return urllib.quote("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path)  
     os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/thumb 90 >> /tmp/sc.out &"% re.sub('/mpiwg/online/','',self.REQUEST['path']+"/"+self.REQUEST['image']))  
           
     #return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+self.REQUEST['path'])      if self.REQUEST.has_key('image'): # falls bilder
           path=re.sub('//','/',self.REQUEST['path']) # falls '//' im Pfad
           dlpath = re.sub('/mpiwg/online/','',path)+"/"+self.REQUEST['image']
   
           zLOG.LOG('OSas',zLOG.INFO,"ssh archive@nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat -src=/mpiwg/online -dest=/mpiwg/temp/online/scaled/thumb -dir=%s -scaleto=90 -sync >> /tmp/sc.out &"%dlpath )
           ret=os.popen("ssh archive@nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat -src=/mpiwg/online -dest=/mpiwg/temp/online/scaled/thumb -dir=%s -scaleto=90 -sync >> /tmp/sc.out &"%dlpath ).read()
           zLOG.LOG('OSAS (combine)',zLOG.INFO,ret)
   
   
   
       else: # falls keine Bilder (bug in reg.cgi info file ersetzen)
           f=file("/tmp/tmp_info.xml","w")
           tmp=patchedInfoXML(self.REQUEST['path'])
           f.write(tmp.encode('utf-8'))
           f.close()
           splitted=path.split("/")
           fn=splitted[len(splitted)-1]
           remotePath="archive@nausikaa2.rz-berlin.mpg.de:/usr/local/share/archimedes/web/docs/proj/echo/1/docs/"+fn+"/info.xml"
           os.popen("scp /tmp/tmp_info.xml %s"%remotePath)
   
   def patchedInfoXML(path):
       dom=xml.dom.minidom.parse(path+"/index.meta")
       
       ret="<info>\n"
       ret+="<remotetext>%s</remotetext>\n"%archive.getText(dom.getElementsByTagName('text')[0].childNodes)
       ret+="<pagebreak>%s</pagebreak>\n"%archive.getText(dom.getElementsByTagName('pagebreak')[0].childNodes)
       ret+="<display>%s</display>\n"%archive.getText(dom.getElementsByTagName('display')[0].childNodes)
       try:
           ret+="<toptemplate>%s</toptemplate>\n"%archive.getText(dom.getElementsByTagName('toptemplate')[0].childNodes)
       except:
           """not"""
       try:
           ret+="<thumbtemplate>%s</thumbtemplate>\n"%archive.getText(dom.getElementsByTagName('thumbtemplate')[0].childNodes)
       except:
           """not"""
       try:
           ret+="<startpage>%s</startpage>\n"%archive.getText(dom.getElementsByTagName('startpage')[0].childNodes)
       except:
           """not"""
           
       ret+="<lang>%s</lang>\n"%archive.getText(dom.getElementsByTagName('lang')[0].childNodes)
       try:
           ret+="<author>%s</author>\n"%archive.getText(dom.getElementsByTagName('author')[0].childNodes)
       except:
           """not"""
       try:
           ret+="<title>%s</title>\n"%archive.getText(dom.getElementsByTagName('title')[0].childNodes)
       except:
           """not"""
           
       ret+="</info>"
   
       return ret

Removed from v.1.17  
changed lines
  Added in v.1.44


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