Annotation of OSAS/OSA_system/OSAS_add.py, revision 1.2

1.1       dwinter     1: #BAUSTELLE
                      2: 
                      3: 
                      4: """Methoden zum hinzufügen von Dokumenten ins Archiv"""
1.2     ! dwinter     5: import archive
1.1       dwinter     6: import os
                      7: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
                      8: from Products.PageTemplates.PageTemplate import PageTemplate
                      9: import string
                     10: import urllib
                     11: import xml.dom.minidom
                     12: 
                     13: #referencetypes=['Book','Bic','Journal Article','Manuscript','jiji']
                     14: 
                     15: import re
                     16: def add(self, no_upload=0):
                     17:         """ Add metadata or metadata and documents to the repository
                     18:         no_upload=0 kein upload sonst upload von documententen"""
                     19:         
                     20:    self.referencetypes=['Book','Journal Article','Manuscript']
                     21: 
                     22:    newtemplate=PageTemplateFile('products/OSA_system/OSAS_add_new').__of__(self)
                     23:         self.REQUEST.SESSION['path']=self.REQUEST['path']
                     24:    if no_upload==0:
                     25:        self.REQUEST.SESSION['no_upload']='yes'
                     26:    else:
                     27:        if self.REQUEST.SESSION.has_key('no_upload'):
                     28:            del self.REQUEST.SESSION['no_upload']
                     29:            
                     30:    return newtemplate()
                     31:    return self.referencetypes
                     32: 
                     33: 
                     34: 
                     35: def getISO():
                     36:         f=file('/Users/dwinter/Documents/Projekte/OSAS/OSA_system/iso639-1.inc','r').readlines()
                     37:    ret={}
                     38:    for lineraw in f:
                     39:        line=lineraw.encode('ascii','replace')
                     40:        value=string.split(line,'\t')[0].encode('ascii','replace')
                     41:        key=string.split(line,'\t')[1].encode('ascii','replace')
                     42:        
                     43:        ret[key]=value
                     44:         return ret
                     45: 
                     46: def add2(self):
                     47:    self.reftype=self.REQUEST['Reference Type']
                     48:    self.REQUEST.SESSION['reftype']=self.reftype    
                     49:    self.bibdata={'Book':['author','year','title','series editor','series title','series volume','number of pages','city','publisher','edition','number of volumes','translator','ISBN ISSN'],
                     50: 'Journal Article':['author','year','title','journal','volume','issue','pages','alternate journal','call number'],
                     51: 'Manuscript':['author','year','title','location','signature','pages','editorial remarks','description','keywords']}
                     52: 
                     53:    self.fields=self.bibdata[self.reftype]
                     54:    self.isolist=getISO()
                     55:         #listed=[ x for x in self.isolist.keys()]
                     56:    #print listed
                     57:         #sorted=listed.sort()
                     58:    #print sorted
                     59:    
                     60:    newtemplate=PageTemplateFile('products/OSA_system/OSAS_add_bibdata').__of__(self)
                     61:    return newtemplate()
                     62:    #return self.fields
                     63: 
                     64: 
                     65: def parse_query_string(str):
                     66:    queries={}
                     67:    key=""
                     68:    value=""
                     69:    tmp=""
                     70:    toggle="key"
                     71:    str=urllib.unquote(str)
                     72:    for i in str:
                     73:        if i=="=":
                     74:            key=tmp
                     75:            toggle="value"              
                     76:            tmp=""
                     77:        elif i=="&":
                     78:            queries[key]=tmp
                     79:            tmp=""
                     80:            toggle="key"
                     81:        else:
                     82:            if toggle=="key":
                     83:                if i=="+" : i="-"
                     84:            else:
                     85:                if i=="+" : i=" "
                     86:            tmp=tmp+i
                     87:    queries[key]=tmp
                     88:    return queries
                     89:    
                     90: def add3(self):
                     91:    """Foldername"""
                     92:    metadata=parse_query_string(self.REQUEST['QUERY_STRING'])
                     93:    self.REQUEST.SESSION['metadata']=metadata
                     94:    vorschlag_naming=metadata['author'][:5]+"_"+metadata['title'][:5]+"_"+metadata['year']
                     95:    self.vorschlag_naming=vorschlag_naming.decode('ascii','ignore')
                     96:    if self.REQUEST.SESSION.has_key('no_upload'):
                     97:        self.REQUEST.SESSION['folder_name']=self.REQUEST.SESSION['path']
                     98:        return add5(self)
                     99:    else:
                    100:        newtemplate=PageTemplateFile('products/OSA_system/OSAS_add_naming').__of__(self)
                    101:        return newtemplate()
                    102:    
                    103: 
                    104: def add4(self):
                    105:    self.path=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1)
                    106:    
                    107:    self.folder_name=self.REQUEST['folder_name']
                    108:    # netx has to be changed -> error if back button is used!!
                    109:    self.REQUEST.SESSION['path']=self.REQUEST.SESSION['path']+"/"+self.REQUEST['folder_name']
                    110: 
                    111: 
                    112:    self.REQUEST.SESSION['folder_name']=self.folder_name
                    113:    self.image_folder_name="pageimg"
                    114:    newtemplate=PageTemplateFile('products/OSA_system/OSAS_upload').__of__(self)
                    115:    return newtemplate()
                    116:    
                    117: def add5(self):
                    118:    """ADD INDEX.META"""
                    119:    newtemplate=PageTemplateFile('products/OSA_system/OSAS_add_metadata').__of__(self)
                    120:    return newtemplate()
                    121: 
                    122: def add6(self):
                    123:    metadata=parse_query_string(self.REQUEST['QUERY_STRING'])
                    124:    metadata['archive-path']=os.path.split(self.REQUEST.SESSION['path'])[0]
                    125:    #metadata['folder_name']=self.REQUEST.SESSION['folder_name']
                    126:    metadata['folder_name']=os.path.split(self.REQUEST.SESSION['path'])[1]
                    127:    metadata['content-type']="scanned document"
                    128:    self.reftype=self.REQUEST.SESSION['reftype']
                    129:    self.REQUEST.SESSION['add_metadata']=metadata   
                    130:    self.add_metadata=metadata
                    131:    self.metadata=self.REQUEST.SESSION['metadata']
                    132:    self.metadataprint=""
                    133:    for tag in self.metadata.keys():
                    134:        self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n"
                    135: 
                    136:    newtemplate=PageTemplateFile('products/OSA_system/index_meta').__of__(self)
                    137:    newtemplate.content_type="text/plain"
                    138:    renderxml = newtemplate()
                    139:    if self.REQUEST.SESSION.has_key('no_upload'):
                    140:        metapath=self.REQUEST.SESSION['path']+"/index.meta"
                    141:    else:
                    142:        metapath=self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']+"/index.meta"
                    143:    
                    144:    f=open(metapath,'w')
                    145:    f.writelines(renderxml)
                    146:    f.close()
                    147:    os.chmod(metapath,0644)
                    148:    if self.REQUEST.SESSION.has_key('no_upload'):
                    149:        
                    150:        #newtemplate2=PageTemplateFile('/usr/local/mpiwg/Zope/Extensions/done',"text/html").__of__(self)
                    151:        return self.REQUEST.response.redirect(self.REQUEST['URL2']+"?path="+self.REQUEST.SESSION['path'])
                    152:    else:
                    153:                 #print self.add_metadata['archive-path']
                    154:        self.viewpath=re.search(r"/mpiwg/online/(.*)",self.add_metadata['archive-path']).group(1) 
                    155:        newtemplate2=PageTemplateFile('products/OSA_system/OSAS_saved').__of__(self)
                    156:    
                    157:        
                    158:        newtemplate2.content_type="text/html"
                    159:        self.REQUEST.response.setHeader('Content-Type','text/html')
                    160:    
                    161: 
                    162:        return newtemplate2()
                    163: 
                    164: 
                    165: from time import localtime,strftime
                    166: 
                    167: def date(self):
                    168:    return strftime("%d.%m.%Y",localtime()) 
                    169: 
                    170: 
                    171: def addPresentation(self,path):
                    172:    """add presentation to the path"""
                    173:    
                    174:    dom=xml.dom.minidom.parse(path+"/index.meta")
                    175: 
                    176:    try:
                    177:        author=archive.getText(dom.getElementsByTagName('author')[0].childNodes)
                    178:    except:
                    179:        author=archive.getText(dom.getElementsByTagName('Author')[0].childNodes)
                    180:    title=archive.getText(dom.getElementsByTagName('title')[0].childNodes)
                    181:    try:
                    182:        date=archive.getText(dom.getElementsByTagName('year')[0].childNodes)
                    183:    except:
                    184:        try:
                    185:            date=archive.getText(dom.getElementsByTagName('Year')[0].childNodes)
                    186:        except:
                    187:            date=archive.getText(dom.getElementsByTagName('date')[0].childNodes)
                    188:    i=1
                    189:    while os.path.exists("%02d-presentation"%i):
                    190:        i+=1
                    191:            self.REQUEST.SESSION['presentationname']="%02d-presentation"%i
                    192:    self.REQUEST.SESSION['path']=path
                    193:    self.REQUEST.SESSION['xmlvorschlag']="""<info>
                    194:    <author>%s</author>
                    195:    <title>%s</title>
                    196:    <date>%s</date>
                    197:    <display>yes</display>
                    198: </info>"""%(author,title,date)
                    199:    
1.2     ! dwinter   200:    newtemplate=PageTemplateFile('products/OSA_system/addPresentation').__of__(self)
1.1       dwinter   201:    return newtemplate()
                    202: 
                    203: def addPresentation2(self):
                    204:    """add presentation """
1.2     ! dwinter   205:    folder_name=self.REQUEST['folder_name']
1.1       dwinter   206:    #print self.REQUEST['folder_name']
1.2     ! dwinter   207:    content_description=self.REQUEST['content_description']
1.1       dwinter   208: 
1.2     ! dwinter   209:    path=self.REQUEST.SESSION['path']
1.1       dwinter   210: 
                    211:    if not self.REQUEST.has_key('fileupload'):
1.2     ! dwinter   212:        xmlinfo=self.REQUEST['xmltext']
1.1       dwinter   213:        file_name="info.xml"
                    214: 
                    215:    else:
                    216:        file_name=self.REQUEST['fileupload'].filename
1.2     ! dwinter   217:        xmlinfo=self.REQUEST.form['fileupload'].read()
        !           218:        # hack Multipart auswertung funktioniert nicht ausser bei mozilla
1.1       dwinter   219:        file_name="info.xml"
1.2     ! dwinter   220:        xmlinfo=self.REQUEST['xmltext']
1.1       dwinter   221:    try:
1.2     ! dwinter   222:        os.mkdir(path+"/"+folder_name)
1.1       dwinter   223:    except:
                    224:        """nothing"""
                    225:    print "NAME:",file_name
1.2     ! dwinter   226:    f=open(path+"/"+folder_name+"/"+file_name,"w")
        !           227:    f.write(xmlinfo)
1.1       dwinter   228:    f.close()
1.2     ! dwinter   229:    os.chmod(path+"/"+folder_name,0755)
        !           230:    os.chmod(path+"/"+folder_name+"/"+file_name,0644)
        !           231:    addDirsToIndexMeta(path,folder_name,content_description,'presentation')
1.1       dwinter   232:    
1.2     ! dwinter   233:    return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
1.1       dwinter   234: 
                    235: def addText(self,path):
                    236:    """add fulltext to the path"""
                    237:    self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing text files
                    238:    self.REQUEST.SESSION['path']=path
1.2     ! dwinter   239:    newtemplate=PageTemplateFile('products/OSA_system/addText').__of__(self)
1.1       dwinter   240:    return newtemplate()
                    241: 
                    242: def addText2(self):
1.2     ! dwinter   243:    folder_name=self.REQUEST['folder_name']
1.1       dwinter   244:    #print self.REQUEST['folder_name']
1.2     ! dwinter   245:    content_description=self.REQUEST['content_description']
        !           246:    path=self.REQUEST.SESSION['path']
        !           247:    file_name=self.REQUEST['fileupload'].filename
        !           248:    filedata=self.REQUEST.form['fileupload'].read()
        !           249:    os.mkdir(path+"/"+folder_name)
        !           250:    f=open(path+"/"+folder_name+"/"+file_name,"w")
        !           251:    f.write(filedata)
1.1       dwinter   252:    f.close()
1.2     ! dwinter   253:    os.chmod(path+"/"+folder_name,0755)
        !           254:    os.chmod(path+"/"+folder_name+"/"+file_name,0644)
        !           255:    addDirsToIndexMeta(path,folder_name,content_description,'fulltext')
1.1       dwinter   256: 
1.2     ! dwinter   257:    return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
1.1       dwinter   258: 
                    259: def addTextExternal(self,path,texturl,version):
                    260:    """hinzufügen eines externen textes"""
                    261:    try: #neue text version einlesen
                    262:        texttemp=urllib.urlopen(texturl).readlines()
                    263:        text=""
                    264:        for line in texttemp:
                    265:            text=text+line
                    266:    except: #fehler beim lesen des textes
                    267:        return "ERROR: cannot read: %s"%texturl
                    268:    if TextExternalError(text): #kein xml header
                    269:        return "ERROR: cannot read: %s"%texturl, "received:",text 
                    270:    textpath=getNewTextPath(path) #erzeuge neuen Ornder für den Text
                    271:    splitted=string.split(texturl,"/")
                    272:    name=splitted[len(splitted)-1] #Name des XML-files
                    273:    try:
                    274:        writefile=file(path+"/"+textpath+"/"+name,"w")
                    275:    except:
                    276:        return"ERROR: cannot write: %s"%path+"/"+textpath+"/"+name
                    277:    writefile.write(text)
                    278:    writefile.close()
                    279:    os.chmod(path+"/"+textpath+"/"+name,0644)
                    280: 
                    281:    #add new file to XML
                    282:    dom=xml.dom.minidom.parse(path+"/index.meta")
                    283:    node=dom.getElementsByTagName('resource')[0] #getNode
                    284: 
                    285:    subnode=dom.createElement('dir')
                    286:    
                    287:    namenode=dom.createElement('name')
                    288:    namenodetext=dom.createTextNode(textpath)
                    289:    namenode.appendChild(namenodetext)
                    290:    subnode.appendChild(namenode)
                    291:        
                    292:    descriptionnode=dom.createElement('description')
                    293:    descriptionnodetext=dom.createTextNode('archimedes text:'+version)
                    294:    descriptionnode.appendChild(descriptionnodetext)
                    295:    subnode.appendChild(descriptionnode)
                    296: 
                    297:    contentnode=dom.createElement('content-type')
                    298:    contentnodetext=dom.createTextNode('fulltext')
                    299:    contentnode.appendChild(contentnodetext)
                    300:    subnode.appendChild(contentnode)
                    301:    
                    302:    node.appendChild(subnode)
                    303: 
                    304:    writefile=file(path+"/index.meta","w")
                    305:    writefile.write(dom.toxml().encode('utf-8'))
                    306:    writefile.close()
                    307: 
                    308:    #change texttool tag
                    309:    dom=xml.dom.minidom.parse(path+"/index.meta")
                    310:    node=dom.getElementsByTagName('meta')[0] #getNode
                    311: 
                    312:    try: #texttool existiert schon
                    313:        subnode=node.getElementsByTagName('texttool')[0]
                    314:    except: #wenn nicht Fehler ausgeben
                    315:        return "ERROR:no presentation configured yet, user Web Front End to do so!"
                    316:    
                    317: 
                    318:    try:
                    319:        texttoolnodelist=subnode.getElementsByTagName('text')
                    320:    
                    321:        if not len(texttoolnodelist)==0: #texttool tag existiert schon, dann löschen
                    322:            subsubnode=subnode.removeChild(texttoolnodelist[0])
                    323:            subsubnode.unlink()
                    324:    except:
                    325:        """nothing"""
                    326:    # text neu anlegen
                    327:    textfoldernode=dom.createElement('text')
                    328:    textfoldernodetext=dom.createTextNode(textpath+"/"+name)
                    329:    textfoldernode.appendChild(textfoldernodetext)
                    330:    subnode.appendChild(textfoldernode)
                    331: 
                    332:    #index.meta ausgeben
                    333:    writefile=file(path+"/index.meta","w")
                    334:    writefile.write(dom.toxml().encode('utf-8'))
                    335:    writefile.close()
                    336:    
                    337:    #registrieren
                    338:    print urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()
                    339:    
                    340:    return "DONE:"+textpath+"/"+name
                    341: 
                    342: def TextExternalError(text):
                    343:    firsts=text[0:10]
                    344:    print firsts
                    345:    try:
                    346:        match=re.search(r".*<?xml.*",firsts)
                    347:    except:
                    348:        return 1
                    349:    return 0
                    350: 
                    351: def getNewTextPath(path):
                    352:    i=1
                    353:    while os.path.exists(path+"/fulltext%i"%i):
                    354:        i+=1
                    355:    os.mkdir(path+"/fulltext%i"%i)
                    356:    os.chmod(path+"/fulltext%i"%i,0755)
                    357:    return "fulltext%i"%i
                    358: 
                    359: def addImages(self,path):
                    360:    """Imagesfolder to the path"""
                    361:    self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing pageimages files
                    362:    self.REQUEST.SESSION['path']=path
                    363:    newtemplate=PageTemplateFile('products/OSA_system/OSAS_addImages').__of__(self)
                    364:    return newtemplate()
                    365: 
                    366: def addImages2(self):
1.2     ! dwinter   367:    
1.1       dwinter   368:    self.image_folder_name=self.REQUEST['folder_name']
                    369:    #print self.REQUEST['folder_name']
                    370:    self.content_description=self.REQUEST['content_description']
                    371:    #self.path=self.REQUEST.SESSION['path']
                    372:    
                    373:    
                    374:    self.content_type='images'
                    375:    addDirsToIndexMeta(self.REQUEST.SESSION['path'],self.image_folder_name,self.content_description,self.content_type)
                    376:    self.REQUEST.SESSION['path']=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1)
                    377:    newtemplate=PageTemplateFile('products/OSA_system/OSAS_upload2').__of__(self)
                    378:    return newtemplate()
1.2     ! dwinter   379:    
1.1       dwinter   380: 
                    381: 
                    382: def addDirsToIndexMeta(path,folder_name,content_description,content_type):
                    383:    #f=file(path+"/index.meta",r)
                    384:    dom=xml.dom.minidom.parse(path+"/index.meta")
                    385:    node=dom.getElementsByTagName('resource')[0] #getNode
                    386: 
                    387:    subnode=dom.createElement('dir')
                    388:    
                    389:    namenode=dom.createElement('name')
                    390:    namenodetext=dom.createTextNode(folder_name)
                    391:    namenode.appendChild(namenodetext)
                    392:    subnode.appendChild(namenode)
                    393:        
                    394:    descriptionnode=dom.createElement('description')
                    395:    descriptionnodetext=dom.createTextNode(content_description)
                    396:    descriptionnode.appendChild(descriptionnodetext)
                    397:    subnode.appendChild(descriptionnode)
                    398: 
                    399:    contentnode=dom.createElement('content-type')
                    400:    contentnodetext=dom.createTextNode(content_type)
                    401:    contentnode.appendChild(contentnodetext)
                    402:    subnode.appendChild(contentnode)
                    403:    
                    404:    node.appendChild(subnode)
                    405: 
                    406:    writefile=file(path+"/index.meta","w")
                    407:    writefile.write(dom.toxml().encode('utf-8'))
                    408:    writefile.close()
                    409: 
                    410: def combineTextImage(self,path):
                    411:    """gibt input formular zur erstellung des texttools meta tag aus"""
                    412:    files = os.listdir(path)
                    413:    
                    414:    texts=[]
                    415:    imagefolders=[]
                    416:    presentationfolders=[]
                    417:    
                    418:    for filename in files:
                    419:        
                    420:        if archive.isdigilib2(path+"/"+filename):
                    421:            imagefolders.append(filename)
                    422:            
                    423:        if archive.isFullText(path,filename):
                    424:            texts.append(filename)
                    425:        if archive.isPresentation(path,filename):
                    426:            presentationfolders.append(filename)
                    427:    
                    428:    dom=xml.dom.minidom.parse(path+"/index.meta")
                    429:    try:
                    430:        filelanguage=archive.getText(dom.getElementsByTagName('lang')[0].childNodes)
                    431:    except:
                    432:        filelanguage=""
                    433:    self.REQUEST.SESSION['isolist']=getISO()
                    434:    self.REQUEST.SESSION['path']=path
                    435:    self.REQUEST.SESSION['texts']=texts
                    436:    self.REQUEST.SESSION['imagefolders']=imagefolders
                    437:    self.REQUEST.SESSION['presentationfolders']=presentationfolders
                    438:    self.REQUEST.SESSION['filelanguage']=filelanguage
1.2     ! dwinter   439:    newtemplate=PageTemplateFile('products/OSA_system/ImageandText').__of__(self)
1.1       dwinter   440:    return newtemplate()
                    441:    
                    442: 
                    443: 
                    444: def combineTextImage2(self,path):
                    445:    """erstellt bzw. ändert texttool meta tag"""
                    446:    dom=xml.dom.minidom.parse(path+"/index.meta")
                    447:    node=dom.getElementsByTagName('meta')[0] #getNode
                    448: 
                    449: 
                    450:    subnodelist=node.getElementsByTagName('texttool')
                    451:    if not len(subnodelist)==0: #texttool tag existiert schon, dann löschen
                    452:        subnode=node.removeChild(subnodelist[0])
                    453:        subnode.unlink()
                    454: 
                    455:    subnode=dom.createElement('texttool') #neu erzeugen
                    456: 
                    457:    
                    458:    presentfile=os.listdir(path+"/"+self.REQUEST['presentation'])[0]
                    459:    
                    460: 
                    461:    displaynode=dom.createElement('display')
                    462:    displaynodetext=dom.createTextNode('yes')
                    463:    displaynode.appendChild(displaynodetext)
                    464:    subnode.appendChild(displaynode)
                    465:    
                    466:    if self.REQUEST.has_key('image'):   
                    467:        namenode=dom.createElement('image')
                    468:        namenodetext=dom.createTextNode(self.REQUEST['image'])
                    469:        namenode.appendChild(namenodetext)
                    470:        subnode.appendChild(namenode)
                    471:        
                    472:    if self.REQUEST.has_key('text'):            
                    473:        textfile=os.listdir(path+"/"+self.REQUEST['text'])[0]
                    474:        textfoldernode=dom.createElement('text')
                    475:        textfoldernodetext=dom.createTextNode(self.REQUEST['text']+"/"+textfile)
                    476:        textfoldernode.appendChild(textfoldernodetext)
                    477:        subnode.appendChild(textfoldernode)
                    478: 
                    479:    if self.REQUEST.has_key('pagebreak'):   
                    480:        pagebreaknode=dom.createElement('pagebreak')
                    481:        pagebreaknodetext=dom.createTextNode(self.REQUEST['pagebreak'])
                    482:        pagebreaknode.appendChild(pagebreaknodetext)
                    483:        subnode.appendChild(pagebreaknode)
                    484: 
                    485:    if self.REQUEST.has_key('presentation'):    
                    486:        presentationnode=dom.createElement('presentation')
                    487:        presentationnodetext=dom.createTextNode(self.REQUEST['presentation']+"/"+presentfile)
                    488:        presentationnode.appendChild(presentationnodetext)
                    489:        subnode.appendChild(presentationnode)
                    490:    
                    491:    node.appendChild(subnode)
                    492: 
                    493:    # node=dom.getElementsByTagName('lang')[0] #getNode
                    494: 
                    495:    writefile=file(path+"/index.meta","w")
                    496:    writefile.write(dom.toxml().encode('utf-8'))
                    497:    writefile.close()
                    498:    
                    499:    
                    500: 
1.2     ! dwinter   501:    urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()
1.1       dwinter   502:    #return urllib.quote("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path)
                    503:    os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/thumb 90 &"% re.sub('mpiwg/online/','',self.REQUEST['path']+"/"+self.REQUEST['image']))
1.2     ! dwinter   504:    return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+self.REQUEST['path'])
1.1       dwinter   505:    

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