Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
 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.
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 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.