Mercurial > hg > MetaDataProvider
diff MetaDataFolder.py @ 12:7f0e2b656e5c
more work for non-bib metadata
author | casties |
---|---|
date | Fri, 29 Jul 2011 18:28:06 +0200 |
parents | a29665fa9c62 |
children | 281d223aa361 |
line wrap: on
line diff
--- a/MetaDataFolder.py Fri Jul 29 14:45:13 2011 +0200 +++ b/MetaDataFolder.py Fri Jul 29 18:28:06 2011 +0200 @@ -6,8 +6,11 @@ import urlparse import logging +import xml.etree.ElementTree as ET + from MetaDataMapping import MetaDataMapping from MetaData import MetaData +from SrvTxtUtils import getHttpData, getText def normalizeBibField(bt, underscore=True): """returns normalised bib type for looking up mappings""" @@ -77,18 +80,22 @@ {'label':'Main Config','action':'changeMetaDataFolderForm'}, ) - def __init__(self,id,title='',metaDataServerUrl=''): + metaDataServerUrl = "http://digilib.mpiwg-berlin.mpg.de/digitallibrary/servlet/Texter?fn=%s" + """URL of metadata server. %s replaced by file path.""" + + def __init__(self,id,title='',metaDataServerUrl=None): """initialize a new instance""" self.id = id self.title = title - self.metaDataServerUrl = metaDataServerUrl + if metaDataServerUrl: + self.metaDataServerUrl = metaDataServerUrl def getMDFromPathOrUrl(self,path): """returns contents of metadata file from server as text""" if not path: logging.error("getMDFromPathOrUrl: empty path!") - return "" + return None parsedurl = urlparse.urlparse(path) if parsedurl[0] != "": @@ -106,6 +113,15 @@ md = getHttpData(url) return md + def getDomFromPathOrUrl(self, path): + """returns DOM of metadata file at given path""" + dom = None + data = self.getMDFromPathOrUrl(path) + if data: + dom = ET.fromstring(data) + + return dom + def getXmlPathData(self, xmlpath, path=None, dom=None): """returns contents of element at xmlpath as dict""" logging.error("getXmlPathData(%s)"%xmlpath) @@ -120,10 +136,18 @@ logging.error("getXmlPathData: MetaData element at '%s' not found!"%xmlpath) return None + def getResourceData(self, path=None, dom=None): + """returns contents of resource tag as dict""" + return self.getXmlPathData('resource', path=path, dom=dom) + def getTexttoolData(self, path=None, dom=None): """returns contents of texttool tag as dict""" return self.getXmlPathData('resource/meta/texttool', path=path, dom=dom) + def getAccessData(self, path=None, dom=None): + """returns contents of access tag as dict""" + return self.getXmlPathData('resource/meta/access-conditions/access', path=path, dom=dom) + def getBibData(self, path=None, dom=None): """returns contents of bib tag as dict""" return self.resource.meta.bib.getData(path=path, dom=dom)