Ejemplo n.º 1
0
    def __init__(self, config_file_name):
        self.config = None
        self.config_file_name = config_file_name
        self.buffer_file_name = os.path.join(FEEDEX_ROOT, 'buffer.yml')
        self.version = -1
        self.config_timestamp = -1
        self.silent = False
        self.load()

        server = self.config['server']
        nickname = self.config['nickname']
        BufferingBot.__init__(self, [server], nickname,
            username="******",
            realname="FeedEx the feed bot",
            buffer_timeout=-1, # don't use timeout
            use_ssl=self.config.get('use_ssl', False))

        logging.info("Loading buffer...")
        if os.access(self.buffer_file_name, os.F_OK):
            for message in yaml.load(open(self.buffer_file_name, 'rb')):
                self.push_message(message)

        self.initialized = False
        self.connection.add_global_handler('welcome', self._on_connected)

        self.feeds = defaultdict(list)
        self.feed_iter = itertools.cycle(self.feeds)
        self.handlers = []
        self.frequent_fetches = {}

        self.reload_feed()

        self._check_config_file()
Ejemplo n.º 2
0
 def process_message(self, message):
     if self.test_mode:
         logging.info(time.strftime('%m %d %H:%M:%S'), self.network.name,
             self.network.decode(self.connection.get_nickname())[0],
             message.command, *message.arguments)
         if message.command not in ['join']:
             return
     BufferingBot.process_message(self, message)
Ejemplo n.º 3
0
	def __init__( self, target_chans ):
		server = ( bot_irc_server, bot_irc_port )
		BufferingBot.__init__( self, [server], bot_irc_nickname,
			username = '******', realname = 'iidx_log_bot',
			buffer_timeout = -1, use_ssl = bot_use_ssl )

		self.target_chans = target_chans
		self.connection.add_global_handler( 'welcome', self._on_connected )
		logging.info( 'init end' )
Ejemplo n.º 4
0
 def __init__(self, network, nickname, realname, reconnection_interval=60,
              use_ssl=False, buffer_timeout=10.0, test_mode=False):
     self.ext_buffers = set()
     self.network = network
     self.test_mode = test_mode
     BufferingBot.__init__(self, network.server_list, nickname,
         username=b'uniko', realname=b'Uniko the bot',
         reconnection_interval=reconnection_interval, use_ssl=use_ssl,
         codec=network, buffer_timeout=buffer_timeout, passive=True)
     self.handlers = {}
     self.handler_wrapper = {}
Ejemplo n.º 5
0
    def __init__(self, target_chans):
        server = (bot_irc_server, bot_irc_port)
        BufferingBot.__init__(self, [server],
                              bot_irc_nickname,
                              username='******',
                              realname='toe_market_bot',
                              buffer_timeout=-1,
                              use_ssl=bot_use_ssl)

        self.target_chans = target_chans
        self.connection.add_global_handler('welcome', self._on_connected)
        logging.info('init end')
Ejemplo n.º 6
0
 def flood_control(self):
     if BufferingBot.flood_control(self):
         return True
     if not self.ext_buffers:
         return False
     self.pop_buffer(min(self.ext_buffers))
     return True
Ejemplo n.º 7
0
 def pop_buffer(self, message_buffer):
     message = message_buffer.peek()
     if message.command in ['privmsg']:
         target = message.arguments[0]
         chan = target.lower()
         if irc.client.is_channel(chan):
             if chan not in [_.lower() for _ in self.channels]:
                 logging.info('joinning into... %s' % chan)
                 self.connection.join(chan)
     return BufferingBot.pop_buffer(self, message_buffer)
Ejemplo n.º 8
0
	def pop_buffer( self, message_buffer ):
		message = message_buffer.peek()
		if message.command in ['privmsg']:
			target = message.arguments[0]
			chan = target.lower()
			if irc.client.is_channel( chan ):
				if chan not in [_.lower() for _ in self.channels]:
					logging.info( 'joinning into... %s' % chan )
					self.connection.join( chan )
		return BufferingBot.pop_buffer( self, message_buffer )
Ejemplo n.º 9
0
    def __init__(self, config_file_name):
        self.config = None
        self.config_file_name = config_file_name
        self.config_timestamp = self._get_config_time()
        self.config = self._get_config_data()

        server = self.config['server']
        nickname = self.config['nickname']
        BufferingBot.__init__(self, [server], nickname,
            username=b'inkblot')

        self.plugins = []

        self.handlers = collections.defaultdict(list)

        self.load_plugins()

        self.connection.add_global_handler('welcome', self._on_connected)

        self.version = self.config['version']
        self._check_config_file()
Ejemplo n.º 10
0
 def pop_buffer(self, message_buffer):
     message = message_buffer.peek()
     if message.timestamp > time.time():
         # 미래에 보여줄 것은 미래까지 기다림
         # TODO: ignore_time이면 이 조건 무시
         return False
     if self.silent:
         return self.process_message(message_buffer.pop())
     if message.command in ['privmsg']:
         target = message.arguments[0]
         chan = target.lower()
         if irc.client.is_channel(chan):
             if chan not in [_.lower() for _ in self.channels]:
                 self.connection.join(chan)
     return BufferingBot.pop_buffer(self, message_buffer)
Ejemplo n.º 11
0
    def __init__(self, config_file_name):
        self.config = None
        self.config_file_name = config_file_name
        self.buffer_file_name = os.path.join(FEEDEX_ROOT, 'buffer.yml')
        self.version = -1
        self.config_timestamp = -1
        self.silent = False
        self.load()

        server = self.config['server']
        nickname = self.config['nickname']
        BufferingBot.__init__(
            self,
            [server],
            nickname,
            username="******",
            realname="FeedEx the feed bot",
            buffer_timeout=-1,  # don't use timeout
            use_ssl=self.config.get('use_ssl', False))

        logging.info("Loading buffer...")
        if os.access(self.buffer_file_name, os.F_OK):
            for message in yaml.load(open(self.buffer_file_name, 'rb')):
                self.push_message(message)

        self.initialized = False
        self.connection.add_global_handler('welcome', self._on_connected)

        self.feeds = defaultdict(list)
        self.feed_iter = itertools.cycle(self.feeds)
        self.handlers = []
        self.frequent_fetches = {}

        self.reload_feed()

        self._check_config_file()
Ejemplo n.º 12
0
 def pop_buffer(self, message_buffer):
     message = message_buffer.peek()
     if message.timestamp > time.time():
         # 미래에 보여줄 것은 미래까지 기다림
         # TODO: ignore_time이면 이 조건 무시
         return False
     if self.silent:
         return self.process_message(message_buffer.pop())
     if message.command in ['privmsg']:
         target = message.arguments[0]
         chan = target.lower()
         if irc.client.is_channel(chan):
             if chan not in [_.lower() for _ in self.channels]:
                 self.connection.join(chan)
     return BufferingBot.pop_buffer(self, message_buffer)
Ejemplo n.º 13
0
 def process_message(self, message):
     logging.info('%s %s', message.command, ' '.join(message.arguments))
     if self.silent:
         return True
     return BufferingBot.process_message(self, message)
Ejemplo n.º 14
0
 def push_message(self, message):
     BufferingBot.push_message(self, message)
     self.dump_buffer()
Ejemplo n.º 15
0
 def process_message(self, message):
     logging.info('%s %s', message.command, ' '.join(message.arguments))
     if self.silent:
         return True
     return BufferingBot.process_message(self, message)
Ejemplo n.º 16
0
 def flood_control(self):
     if BufferingBot.flood_control(self):
         self.dump_buffer()
Ejemplo n.º 17
0
 def push_message(self, message):
     BufferingBot.push_message(self, message)
     self.dump_buffer()
Ejemplo n.º 18
0
 def flood_control(self):
     if BufferingBot.flood_control(self):
         self.dump_buffer()