version 1.27, 2007/06/08 18:10:22
|
version 1.31, 2007/06/29 15:44:40
|
Line 18 import sys
|
Line 18 import sys
|
import cgi |
import cgi |
import urllib |
import urllib |
import logging |
import logging |
|
import math |
|
|
import urlparse |
import urlparse |
|
|
Line 31 def getInt(number, default=0):
|
Line 32 def getInt(number, default=0):
|
try: |
try: |
return int(number) |
return int(number) |
except: |
except: |
return default |
return int(default) |
|
|
def getTextFromNode(nodename): |
def getTextFromNode(nodename): |
"""get the cdata content of a node""" |
"""get the cdata content of a node""" |
Line 338 class documentViewer(Folder):
|
Line 339 class documentViewer(Folder):
|
bibmap=metaData.generateMappingForType(bibtype) |
bibmap=metaData.generateMappingForType(bibtype) |
# if there is no mapping bibmap is empty (mapping sometimes has empty fields) |
# if there is no mapping bibmap is empty (mapping sometimes has empty fields) |
if len(bibmap) > 0 and len(bibmap['author'][0]) > 0: |
if len(bibmap) > 0 and len(bibmap['author'][0]) > 0: |
|
try: |
docinfo['author']=getTextFromNode(dom.xpath("//bib/%s"%bibmap['author'][0])[0]) |
docinfo['author']=getTextFromNode(dom.xpath("//bib/%s"%bibmap['author'][0])[0]) |
|
except: pass |
|
try: |
docinfo['title']=getTextFromNode(dom.xpath("//bib/%s"%bibmap['title'][0])[0]) |
docinfo['title']=getTextFromNode(dom.xpath("//bib/%s"%bibmap['title'][0])[0]) |
|
except: pass |
|
try: |
docinfo['year']=getTextFromNode(dom.xpath("//bib/%s"%bibmap['year'][0])[0]) |
docinfo['year']=getTextFromNode(dom.xpath("//bib/%s"%bibmap['year'][0])[0]) |
|
except: pass |
logging.debug("documentViewer (getbibinfofromindexmeta) using mapping for %s"%bibtype) |
logging.debug("documentViewer (getbibinfofromindexmeta) using mapping for %s"%bibtype) |
try: |
try: |
docinfo['lang']=getTextFromNode(dom.xpath("//bib/lang")[0]) |
docinfo['lang']=getTextFromNode(dom.xpath("//bib/lang")[0]) |
Line 418 class documentViewer(Folder):
|
Line 425 class documentViewer(Folder):
|
textUrl=getTextFromNode(textUrls[0]) |
textUrl=getTextFromNode(textUrls[0]) |
if urlparse.urlparse(textUrl)[0]=="": #keine url |
if urlparse.urlparse(textUrl)[0]=="": #keine url |
textUrl=os.path.join(archivePath,textUrl) |
textUrl=os.path.join(archivePath,textUrl) |
|
# fix URLs starting with /mpiwg/online |
|
if textUrl.startswith("/mpiwg/online"): |
|
textUrl = textUrl.replace("/mpiwg/online",'',1) |
|
|
docinfo['textURL'] = textUrl |
docinfo['textURL'] = textUrl |
|
|
Line 425 class documentViewer(Folder):
|
Line 435 class documentViewer(Folder):
|
docinfo = self.getBibinfoFromIndexMeta(url,docinfo=docinfo,dom=dom) # get info von bib tag |
docinfo = self.getBibinfoFromIndexMeta(url,docinfo=docinfo,dom=dom) # get info von bib tag |
|
|
if presentationUrls and (len(presentationUrls)>0): # ueberschreibe diese durch presentation informationen |
if presentationUrls and (len(presentationUrls)>0): # ueberschreibe diese durch presentation informationen |
# presentation url ergiebt sich ersetzen von index.meta in der url der fŸr die Metadaten |
# presentation url ergiebt sich ersetzen von index.meta in der url der fuer die Metadaten |
# durch den relativen Pfad auf die presentation infos |
# durch den relativen Pfad auf die presentation infos |
presentationUrl=url.replace('index.meta',getTextFromNode(presentationUrls[0])) |
presentationUrl=url.replace('index.meta',getTextFromNode(presentationUrls[0])) |
docinfo = self.getBibinfoFromTextToolPresentation(presentationUrl,docinfo=docinfo,dom=dom) |
docinfo = self.getBibinfoFromTextToolPresentation(presentationUrl,docinfo=docinfo,dom=dom) |
Line 438 class documentViewer(Folder):
|
Line 448 class documentViewer(Folder):
|
"""gets the bibliographical information from the preseantion entry in texttools |
"""gets the bibliographical information from the preseantion entry in texttools |
""" |
""" |
dom=self.getPresentationInfoXML(url) |
dom=self.getPresentationInfoXML(url) |
|
try: |
docinfo['author']=getTextFromNode(dom.xpath("//author")[0]) |
docinfo['author']=getTextFromNode(dom.xpath("//author")[0]) |
|
except: |
|
pass |
|
try: |
docinfo['title']=getTextFromNode(dom.xpath("//title")[0]) |
docinfo['title']=getTextFromNode(dom.xpath("//title")[0]) |
|
except: |
|
pass |
|
try: |
docinfo['year']=getTextFromNode(dom.xpath("//date")[0]) |
docinfo['year']=getTextFromNode(dom.xpath("//date")[0]) |
|
except: |
|
pass |
return docinfo |
return docinfo |
|
|
def getDocinfoFromImagePath(self,path,docinfo=None): |
def getDocinfoFromImagePath(self,path,docinfo=None): |
Line 495 class documentViewer(Folder):
|
Line 514 class documentViewer(Folder):
|
pageinfo['cols'] = cols |
pageinfo['cols'] = cols |
grpsize = cols * rows |
grpsize = cols * rows |
pageinfo['groupsize'] = grpsize |
pageinfo['groupsize'] = grpsize |
start = getInt(start, default=(int(current / grpsize) * grpsize +1)) |
start = getInt(start, default=(math.ceil(float(current)/float(grpsize))*grpsize-(grpsize-1))) |
|
# int(current / grpsize) * grpsize +1)) |
pageinfo['start'] = start |
pageinfo['start'] = start |
pageinfo['end'] = start + grpsize |
pageinfo['end'] = start + grpsize |
if docinfo is not None: |
if docinfo is not None: |