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