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()
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)
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' )
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 = {}
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')
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
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)
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 )
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()
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)
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()
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)
def push_message(self, message): BufferingBot.push_message(self, message) self.dump_buffer()
def flood_control(self): if BufferingBot.flood_control(self): self.dump_buffer()