def __init__(self): m = Message() self.index = Index(Dispatcher.urldb) self.gnome = GNOME() if not Dispatcher.urldb: csv.register_dialect('urldb', delimiter=' ', quotechar='"', lineterminator='\n', quoting=csv.QUOTE_MINIMAL) m.debug("Opening urldb") db = open('urldb', 'r') reader = csv.reader(db, dialect='urldb') for fields in reader: if len(fields) == 0: continue if fields[0][0] == '#': continue if len(fields) != 3: m.warn("expecting 3 fields %s" % fields) continue obs_name = string.strip(fields[0]) regex = string.strip(fields[1]) url = string.strip(fields[2]) # obs_name => (regex, url, tags) entry = (self.resolve_regex(obs_name, regex), self.resolve_url(obs_name, url), []) # autotag packages with a gnome.org url as 'GNOME' if entry[1].find('gnome.org') != -1: entry[2].append('GNOME') m.debug("inserting %s => (%s,%s,%s)" % (obs_name, entry[0], entry[1], entry[2])) if Dispatcher.urldb.has_key(obs_name): m.warn("Duplicate entry for %s, ignoring" % obs_name) elif entry[0].find('DEFAULT') != -1: m.warn("Could not resolve regex for %s, ignoring" % obs_name) elif entry[1].find('DEFAULT') != -1: m.warn("Could not resolve url for %s, ignoring" % obs_name) else: Dispatcher.urldb[obs_name] = entry m.debug("urldb parsed")