def __init__(self, irc): self.__parent = super(RSS, self) self.__parent.__init__(irc) if world.starting: self._init_time = time.time() # To delay loading the feeds else: self._init_time = 0 # Scheme: {name: url} self.feed_names = callbacks.CanonicalNameDict() # Scheme: {url: feed} self.feeds = {} if os.path.isfile(announced_headlines_filename): with open(announced_headlines_filename) as fd: announced = load_announces_db(fd) else: announced = {} for name in self.registryValue('feeds'): self.assert_feed_does_not_exist(name) self.register_feed_config(name) try: url = self.registryValue(registry.join(['feeds', name])) except registry.NonExistentRegistryEntry: self.log.warning('%s is not a registered feed, removing.', name) continue try: self.register_feed(name, url, True, True, announced.get(name, [])) except InvalidFeedUrl: self.log.error('%s is not a valid feed, removing.', name) continue world.flushers.append(self._flush)
def __init__(self, irc): self.__parent = super(Lookup, self) self.__parent.__init__(irc) self.lookupDomains = callbacks.CanonicalNameDict() try: self.db = LookupDB() except dbi.InvalidDBError, e: self.log.exception('Error loading %s: %s', e.filename, str(e)) raise # So it doesn't get loaded without its database.
def __init__(self, irc): self.__parent = super(Trac, self) self.__parent.__init__(irc) self.tracs = callbacks.CanonicalNameDict() for name in self.registryValue('tracs'): self._addTrac(name, None) self.rpcMethods = { 'ircannouncer.notify': self._onRemoteNotify, 'ircannouncer.ping': lambda: 'OK' } self.xmlrpc = XMLRPCServer(self)
def __init__(self, irc): self.__parent = super(LHC, self) self.__parent.__init__(irc) # Schema is feed : [url, command] self.feedNames = callbacks.CanonicalNameDict() self.locks = {} self.lastRequest = {} self.cachedFeeds = {} self.gettingLockLock = threading.Lock() for name in self.registryValue('feeds'): self._registerFeed(name) try: url = self.registryValue(registry.join(['feeds', name])) except registry.NonExistentRegistryEntry: self.log.warning('%s is not a registered feed, removing.',name) continue self.makeFeedCommand(name, url) self.getFeed('http://lblogbook.cern.ch/Shift/elog.rdf') # So announced feeds don't announce on startup.