def process (self): title = self.__options.get("title") if title and not (self.__options.has_key("metadata") and self.__options["metadata"].has_key("title")): if self.__options.has_key("metadata"): self.__options["metadata"].update({ "title": title }) else: self.__options["metadata"] = { "title": title } return URLDoc.process(self)
def myformat (pathname): if pathname.endswith(".webloc"): try: import MacOS from Carbon import Res except: note(3, "can't import MacOS or Res") return False url = None title = None try: rf = Res.FSpOpenResFile(pathname, 0) except MacOS.Error, e: if e.args[0] == -39: # not a resource file note(3, "file %s not a resource file", pathname) return False else: raise else: for i in range(1, Res.Count1Types() + 1): typ = Res.Get1IndType(i) for j in range(1, Res.Count1Resources(typ) + 1): res = Res.Get1IndResource(typ, j) id_, typ2, name = res.GetResInfo() if typ == 'url ': url = res.data if typ == 'urln': title = res.data if url and title: break Res.CloseResFile(rf) if url: result = URLDoc.myformat(url) if type(result) == type({}): result['real-url'] = url if title: result['title'] = title return result
def __init__(self, doc, options): URLDoc.__init__(self, doc, options) self.__options = options