Diff for /ECHO_content/ECHO_collection.py between versions 1.164 and 1.165

version 1.164, 2004/08/17 15:24:38 version 1.165, 2004/08/27 22:57:57
Line 270  def getText(nodelist): Line 270  def getText(nodelist):
            rc = rc + node.data             rc = rc + node.data
     return rc      return rc
   
   def getTextFromNode(nodename):
       nodelist=nodename.childNodes
       rc = ""
       for node in nodelist:
           if node.nodeType == node.TEXT_NODE:
              rc = rc + node.data
       return rc
   
 def sendFile(self, filename, type):  def sendFile(self, filename, type):
     """sends an object or a local file (in the product) as response"""      """sends an object or a local file (in the product) as response"""
Line 666  class ECHO_fullText(ZopePageTemplate): Line 673  class ECHO_fullText(ZopePageTemplate):
         # 3 handler functions          # 3 handler functions
         def start_element(name, attrs):          def start_element(name, attrs):
             global retLex              global retLex
             print name              
             retLex+=createTag(name,attrs)              retLex+=createTag(name,attrs)
         def end_element(name):          def end_element(name):
             global retLex              global retLex
Line 689  class ECHO_fullText(ZopePageTemplate): Line 696  class ECHO_fullText(ZopePageTemplate):
         p.CharacterDataHandler = char_data          p.CharacterDataHandler = char_data
                   
         p.Parse(lemmatized.encode('utf-8'),1)          p.Parse(lemmatized.encode('utf-8'),1)
         print repr(lemmatized.encode('utf-8'))          #print repr(lemmatized.encode('utf-8'))
           
         return retLex          return retLex
           
Line 797  class ECHO_resource(Folder,Persistent): Line 804  class ECHO_resource(Folder,Persistent):
         """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="echo:collectionroot")+"\n"          ret+=self.getRDF(urn="echo:colllectionroot")+"\n"
   
         ret+="""</RDF:RDF>"""          ret+="""</RDF:RDF>"""
             return ret               return ret 
Line 2934  def manage_addECHO_userFolderForm(self): Line 2941  def manage_addECHO_userFolderForm(self):
     """add a user folder form"""      """add a user folder form"""
     return manage_addECHO_userFolder(self)      return manage_addECHO_userFolder(self)
   
   def getEdges(seqs,urn):
       """edges"""
       ret=[]
       #print urn,seqs
       for seqsList in seqs[urn]:
           
           try:
               for seq in seqsList:
                   ret+=seq.getElementsByTagName("RDF:li")
           except:
                   ret+=seqsList.getElementsByTagName("RDF:li")
       return ret
   
   def createSubs(self,seqs,descrs,urn):
       """create subs"""
       for edge in getEdges(seqs,urn):
           cn=createNode(self,descrs[edge.getAttribute('RDF:resource')])
           if cn[0]=="CDLI_group":
               #print "HHHHHH",cn[1],seqs,descrs,cn[2]
               createSubs(cn[1],seqs,descrs,cn[2])
   def getEdges2(seqs,urn):
       """edges"""
       ret=[]
       #print urn,seqs
   
       return seqs[urn]
   
   def createSubs2(self,seqs,descrs,urn,level=0):
       """create subs"""
       
       for edge in getEdges2(seqs,urn):
           print "urnXX",urn.encode('utf-8'),level
           cn=createNode2(self,descrs,edge)
           if cn[0]=="CDLI_group":
   
               createSubs2(cn[1],seqs,descrs,cn[2],level+1)
               print "urnddonesubs",urn.encode('utf-8')
           print "urndonenode",urn.encode('utf-8')
       return
   
   def createNode2(self,descrs,node):
       name=descrs[node]['name']
       type=descrs[node]['type']
       urn=node
       print "    will create",node.encode('utf-8')
       id=re.sub('[^a-zA-Z0-9]','',name).encode('ascii','ignore')
       #print "id",id
       #print type
       #self.REQUEST.RESPONSE.write("<p>%s<p>\n"%id)
       if type=="CDLI_group":
           
           try:
               manage_addECHO_collection(self,id,name,name,"","","","","")
           
           except:
               self.REQUEST.RESPONSE.write("<p>Error%s</p>\n"%id)
               
           self.REQUEST.RESPONSE.write("<p>Creates:%s</p>\n"%getattr(self,id).absolute_url())
           
           return type,getattr(self,id),urn
   
       if type=="CDLI_item":
           try:
               manage_addECHO_resource(self,id,name,name,"","",urn,"","")
           except:
               self.REQUEST.RESPONSE.write("<p>Error%s</p>\n"%id)
           self.REQUEST.RESPONSE.write("<p>Creates:%s</p>\n"%getattr(self,id).absolute_url())
           
           
       return "XX"
   
   def createNode(self,nodes):
       for node in nodes:
           name=getTextFromNode(node.getElementsByTagName("ECHONAVIGATION:name")[0])
           type=getTextFromNode(node.getElementsByTagName("ECHONAVIGATION:type")[0])
           urn=node.getAttribute("RDF:about")
           
           id=re.sub('[^a-zA-Z0-9]','',name).encode('ascii','ignore')
           #print "id",id
           #print type
           self.REQUEST.RESPONSE.write("<p>%s</p>\n"%id)
           if type=="CDLI_group":
               print self.getId()
           
               manage_addECHO_collection(self,id,name,name,"","","","","")
               print "done::::",getattr(self,id)
               return type,getattr(self,id),urn
   
           if type=="CDLI_item":
               manage_addECHO_resource(self,id,name,name,"","",urn,"","")
           return "XX"
           
           
   
 class ECHO_root(Folder,Persistent,Implicit):  class ECHO_root(Folder,Persistent,Implicit):
     """ECHO Root Folder"""      """ECHO Root Folder"""
   
Line 2941  class ECHO_root(Folder,Persistent,Implic Line 3042  class ECHO_root(Folder,Persistent,Implic
           
     meta_type="ECHO_root"      meta_type="ECHO_root"
           
       def getTablet(self,item):
           read=urllib.urlopen("http://enlil.museum.upenn.edu/cgi-bin/cdlget.plx?item=%s&project=ncdl"%item).read()
           
               read=re.sub("\[search\]","search",read)
           
           return read[read.find("<body>")+6:read.rfind("</body>")]
   
       def generateFromRDF2(self):
           """generate from RDF2"""
           global seqs
           seqs={}
           global descrs
           descrs={}
           global key
           key=""
           global value
           value=""
           def start_element(name,attrs):
   
               global seqs
               global descrs
               global key
               global value
               seq=""
               if name=="RDF:Seq":
                   key=attrs.get('RDF:about')
                   try: # teste ob liste
                       x=seqs[key][0]
                   except:
   
                       seqs[key]=[]
   
               
               elif name=="RDF:Description":
                   key=attrs.get('RDF:about')
                   
   
               elif name=="RDF:li":
                   name=attrs.get('RDF:resource')
                   seqs[key].append(name)
   
               elif name=="ECHONAVIGATION:type":
                   value="type"
   
               elif name=="ECHONAVIGATION:name":
                   value="name"
               elif name=="ECHONAVIGATION:linkClickable":
                   value="linkClickable"
                   
           def end_element(name):
                   """nothing"""
                   key=""
                   value=""
   
           def char_data(data):
               """nothing"""
   
               data=re.sub("\n","",data)
               try:
                   if descrs[key].has_key(value):
                       descrs[key][value]+=data
                   else:
                       descrs[key][value]=data
               except:
   
                   descrs[key]={}
                   descrs[key][value]=data
                   
           p = xml.parsers.expat.ParserCreate()
           
           p.StartElementHandler = start_element
           p.EndElementHandler = end_element
           p.CharacterDataHandler = char_data
           fileName="/Users/dwinter/Documents/Projekte/CDLI/test11.rdf"
           
           p.ParseFile(file(fileName))
           self.REQUEST.RESPONSE.write("<html><body><h1>Start</h1>")
           createSubs2(self,seqs,descrs,"/Cuneiform Corpus")
           self.REQUEST.RESPONSE.write("<h1>done</h1></body></html>")
           print "done"
   
           
           return "done"
       
       def generateFromRDF(self):
           """generate Structure from rdf"""
           dom=xml.dom.minidom.parse("/Users/dwinter/Documents/Projekte/CDLI/test10.rdf")
           seqs={}
           descrs={}
           for seq in dom.getElementsByTagName("RDF:Seq"):
              key=seq.getAttribute('RDF:about')
              try:
                  seqs[key].append(seq)
              except:
                  seqs[key]=[seq]
   
           
           for descr in dom.getElementsByTagName("RDF:Description"):
              key=descr.getAttribute('RDF:about')
              try:
                  descrs[key].append(descr)
              except:
                  descrs[key]=[descr]
           createSubs(self,seqs,descrs,"echo:collectionroot")
           
           
           
     def changeWeightsInCollection(self):      def changeWeightsInCollection(self):
         """change all lables of a collection"""          """change all lables of a collection"""
         ret=""          ret=""

Removed from v.1.164  
changed lines
  Added in v.1.165


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