Diff for /ECHO_content/ECHO_language.py between versions 1.1 and 1.7

version 1.1, 2004/11/24 15:17:41 version 1.7, 2006/09/14 14:31:53
Line 1 Line 1
 """Methoden fuer Language Technologies"""  """Methoden fuer Language Technologies"""
 def donatus(txt2):  
     import xmlrpclib  
   
     server = xmlrpclib.ServerProxy("http://archimedes.fas.harvard.edu/cgi-bin/donatus-rpc")  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
   from Products.ECHO_content.analyseAndTag.analyseAndTag import DonatusFile
   from OFS.SimpleItem import SimpleItem
   from OFS.Folder import Folder
   import xml.parsers
   import os.path
   from Globals import package_home
   
     txt=txt2.encode('utf-8')  class ECHO_language:
     bin=xmlrpclib.Binary(txt)          """language methods"""
   
           
           def tagLex(self,nr="1",id=None):
               """gerateword tags"""
   
     ret=server.donatus.analyze(bin)  
   
               df=DonatusFile(txt=self.getPage(_pn=nr,_id=id),baseUri=self.baseUri)
                   
     return ret['morphData'].data              return df.convertedXML()
               #return DonatusFile(txt=self.getPage(_pn=nr)).convertedXML()
   
   class Collection(SimpleItem):
   
 def donatusVariant2Lemma(morphData):           def __init__(self,id):
     """creates hash variant -> morphdata"""               """initialise"""
     ret={}               self.id=id
     dom=xml.dom.minidom.parseString(morphData)               self.entries=[]
     lemmas=dom.getElementsByTagName('lemma')               
     for lemma in lemmas:           
         variants=lemma.getElementsByTagName('variant')           def getEntries(self):
         for variant in variants:               """get the entries"""
             atr=variant.getAttribute('form')               return self.entries
             if ret.has_key(atr):           
                 ret[atr].append=lemma.getAttribute('form')           def deleteEntry(self,nr):
                """delete an entry"""
                del(self.entries[nr])
              
                
            def appendEntry(self,fn,id,type):
                """append an entry"""
                #check if last entry is complete
                createNew=False
                print "Here",fn,id,type
                if len(self.entries)==0: #noch gar kein Eintrag
                    createNew=True
             else:              else:
                 ret[atr]=[lemma.getAttribute('form')]                   entry=self.entries[-1]
                    if entry.get('master',None) and entry.get('slave',None):
                        createNew=True
                if createNew:
   
                    self.entries.append({})
                    entry=self.entries[-1]
                if type=="master":
                    entry['master']=(fn,id)
                elif type=="slave":
                    entry['slave']=(fn,id)
                
                self.entries[-1]=entry 
                
   class ECHO_linkCreator(Folder):
        """creator for links"""
        
        meta_type="ECHO_linkCreator"
        
   
                    
                        
        def getCollectionEntries(self,collection):
            col=getattr(self,collection,None)
            if not col:
                return []
          
            return col.getEntries()
        
            
        def index_html(self,collection=None):
            """show create links"""
            if not collection:
                return "no collection"
            
                 
            pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ECHO_linkCreator_main')).__of__(self)
            
            col=getattr(self,collection,None)
            if not col:
                return []
          
            masterUrl=getattr(col,'masterUrl','')
            slaveUrl=getattr(col,'slaveUrl','')
            
            return pt(collection=collection,masterUrl=masterUrl,slaveUrl=slaveUrl)
        
        def addEntry(self,collection,fn,id,type,fromurl=None,RESPONSE=None):
            """add an entry"""
            print "hello"
            col=getattr(self, collection,None)
            if not col:
                self._setObject(collection,Collection(collection))
                col=getattr(self, collection)
            print "XXXXX2",col  
            col.appendEntry(fn,id,type)
            
            if fromurl and RESPONSE:
                RESPONSE.redirect(fromurl)
        def removeEntry(self,collection,nr,RESPONSE=None):
            """remove an entry"""
            col=getattr(self, collection,None)
            col.deleteEntry(nr)
            
            if RESPONSE:
                RESPONSE.redirect(self.absolute_url()+"?collection="+collection)
            
        def setUrls(self,collection,masterUrl,slaveUrl,RESPONSE=None):
            """set the urls for the document viewer"""
            col=getattr(self, collection,None)
            setattr(col,'masterUrl',masterUrl)
            setattr(col,'slaveUrl',slaveUrl)
            
            if RESPONSE:
                RESPONSE.redirect(self.absolute_url()+"?collection="+collection)
            
            
            #self.index_html(collection)
            
   def manage_addECHO_linkCreatorForm(self,RESPONSE=None):
       """Form for adding"""
       manage_addECHO_linkCreator(self,RESPONSE)
   
   def manage_addECHO_linkCreator(self,RESPONSE=None):
       """Add an ECHO_main"""
       id='linkCreator'
       self._setObject(id,ECHO_linkCreator(id))
       
     
       if RESPONSE is not None:
           RESPONSE.redirect('manage_main')      
            
            
            
            
            
            
            
            
            
            
            
            
            
   
     return ret  

Removed from v.1.1  
changed lines
  Added in v.1.7


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