def main(): if len(sys.argv) < 4: print("Usage: python3 main.py <env> <bot_name> <file_number>") sys.exit(1) environnement = "IRC_" + sys.argv[1] bot_name = sys.argv[2] file_number = sys.argv[3] config = configparser.ConfigParser() config.read(CONFIG_FILE) if not environnement in config: print("Configuration missing") sys.exit(1) irc_config = config[environnement] server = irc_config["server"] port = irc_config["port"] nickname = irc_config["nickname"] if "master_bot" in config: client = IRCClient(irc_config, bot_name, file_number) else: client = IRCDirectClient(irc_config, bot_name, file_number) try: client.connect(server, int(port), nickname) except irc.client.ServerConnectionError as error: print(error) sys.exit(1) client.start()
def main(): global target global file cmd = config.server host_port = cmd + ":" + str(config.port) nickname = config.nickname target = config.target s = host_port.split(":", 1) server = s[0] if len(s) == 2: try: port = int(s[1]) except ValueError: print "Error: Erroneous port." raise SystemExit(1) else: port = 6667 print "Connecting to " + cmd + "..." global client client = IRCClient( target ) try: client.connect(server, port, nickname) except irc.client.ServerConnectionError, x: print x raise SystemExit(1)
def start(nickname, server, port, channels, keys): client = RustEvalbot(nickname, channels, keys) try: client.connect(server, port, nickname) except irc.client.ServerConnectionError as x: print(x) sys.exit(1) client.start()
def notify_on_irc(sender, course_key): message = "Course Published: %s" % (course_key, ) ircsettings = getattr(settings, "IRC_NOTIFIER", DEFAULT_SETTINGS) server, port, channel, nickname = itemgetter("SERVER", "PORT", "CHANNEL", "NICKNAME")(ircsettings) client = IRCNotifierClient(channel, message) client.connect(server, port, nickname) client.start()
def start(nickname, server, port, channels, keys, password): client = RustEvalbot(nickname, channels, keys, password) try: client.connect(server, port, nickname) client.connection.set_keepalive(30) except irc.client.ServerConnectionError as x: print(x) sys.exit(1) client.start()
def run(args): brain = cobe.brain.Brain("cobe.store") client = IrcClient(brain, args.encoding, args.random_replies, args.deaf, args.ignored_nicks, args.only_nicks) client.connect(args.server, args.port, args.nick, args.password) for channel in args.channel: client.join(channel) client.start()
def run(args): brain = cobe.brain.Brain("cobe.store") client = IrcClient(brain, args.ignored_nicks, args.only_nicks) client.connect(args.server, args.port, args.nick) for channel in args.channel: client.join(channel) client.start()
def start_client(client_class): client = client_class() try: nick = generate_nick() logmsg = "Starting client {0} with nick {1}" logger.info(logmsg.format(client_class.__name__, nick)) client.connect(SERVER, PORT, nick) except irc.client.ServerConnectionError as x: logger.error("Failed to start client!") logger.error(repr(x)) sys.exit(1) client.start()
def run(args): brain = cobe.brain.Brain("cobe.store") client = IrcClient(brain, args.owners, args.ignored, args.trainers, args.no_reply) client.connection.buffer_class.errors = "ignore" client.connect(args.server, args.port, args.nick, args.password, args.username, args.realname) for channel in args.channel: client.join(channel) client.start()
def main(): logging.basicConfig(level=logging.INFO) config = configparser.ConfigParser(interpolation=configparser.ExtendedInterpolation()) with open('config.cfg') as f: config.read_file(f) CTRLNICK = "bot-controller" client = IrcClient(CTRLNICK, config) if config.getboolean('core', 'ssl'): factory = connection.Factory(wrapper=ssl.wrap_socket, ipv6=config.getboolean('core', 'ipv6')) else: factory = connection.Factory(ipv6=config.getboolean('core', 'ipv6')) client.connect(config['core']['host'], config.getint('core', 'ircport'), CTRLNICK, config['auth']['serverpass'], connect_factory=factory) client.start()
def run(self): _logger.info('Starting IRC client.') self._running = True client = Client(self._channel, self._message_queue) client.connect(self._irc_host, self._irc_port, self.get_nickname()) while self._running: client.reactor.process_once(0.2) client.stop_autoconnect() client.reactor.disconnect_all() _logger.info('Stopped IRC client.')
def main(): logging.basicConfig(level=logging.INFO) config = configparser.ConfigParser( interpolation=configparser.ExtendedInterpolation()) with open('config.cfg') as f: config.read_file(f) CTRLNICK = "bot-controller" client = IrcClient(CTRLNICK, config) if config.getboolean('core', 'ssl'): factory = connection.Factory(wrapper=ssl.wrap_socket, ipv6=config.getboolean('core', 'ipv6')) else: factory = connection.Factory(ipv6=config.getboolean('core', 'ipv6')) client.connect(config['core']['host'], config.getint('core', 'ircport'), CTRLNICK, config['auth']['serverpass'], connect_factory=factory) client.start()
def establish_connection(term, session): """ Establish a connection to the IRC server. Returns IRCChat instance or False depending on whether it was successful. """ kwargs = dict() if ENABLE_SSL: from ssl import wrap_socket from irc.connection import Factory kwargs['connect_factory'] = Factory(wrapper=wrap_socket) echo(u'Connecting to {server}:{port} for channel {chan}.\r\n\r\n' 'press {key_q} or {key_esc} to abort ... ' .format(server=SERVER, port=PORT, chan=CHANNEL, key_q=term.bold(u'Q'), key_esc=term.bold(u'ESC'))) client = IRCChat(term, session) irc_handle = session.user.handle.replace(' ', '_') try: # pylint:disable=W0142 client.connect(SERVER, PORT, irc_handle, **kwargs) except irc.client.ServerConnectionError: echo(term.bold_red(u'Connection error!')) term.inkey(3) return False while True: client.reactor.process_once() event, data = session.read_events( ('irc', 'irc-quit', 'irc-connected', 'input'), timeout=0.02) if event == 'irc': # show on-connect motd data if any received echo(u'\r\n{0}'.format(data[0])) elif event == 'irc-connected': echo(u'Connected!') break elif event == 'input': session.buffer_input(data, pushback=True) inp = term.inkey(0) while inp is not None: if inp.lower() == u'q' or inp.code == term.KEY_ESCAPE: echo(u'Canceled!') return False inp = term.inkey(0) elif event == 'irc-quit': echo(term.bold_red(u'Connection failed!')) term.inkey(3) return False while True: client.reactor.process_once() event, data = session.read_events( ('irc-welcome', 'irc-quit', 'input'), timeout=0.2) if event == 'irc-quit': echo(term.bold_red(u'Connection lost!')) term.inkey(3) return False elif event == 'input': session.buffer_input(data, pushback=True) inp = term.inkey(0) while inp is not None: if inp.lower() == u'q' or inp.code == term.KEY_ESCAPE: echo(u'Canceled!') return False inp = term.inkey(0) elif event == 'irc-welcome': return client
return lines class Trending(irc.client.SimpleIRCClient): def __init__(self, channel): irc.client.SimpleIRCClient.__init__(self) self.channel = channel def on_welcome(self, *args): self.connection.join(self.channel) def on_join(self, *args): self.go() def on_disconnect(self, *args): sys.exit() def go(self): for line in get_trending('rust'): self.connection.privmsg(self.channel, line) self.connection.quit() import argparse parser = argparse.ArgumentParser() parser.add_argument('--irc', action='store_true') parser.add_argument('language') args = parser.parse_args() if args.irc: client = Trending('#rust') client.connect('irc.ozinger.org', 6667, 'rustbot') client.start() else: for line in get_trending(args.language): print(line)
def establish_connection(term, session): """ Establish a connection to the IRC server. Returns IRCChat instance or False depending on whether it was successful. """ scrollback = collections.deque(maxlen=MAX_SCROLLBACK) kwargs = dict() if ENABLE_SSL: from ssl import wrap_socket from irc.connection import Factory kwargs['connect_factory'] = Factory(wrapper=wrap_socket) if PASSWORD is not None: kwargs['password'] = PASSWORD echo(u'Connecting to {server}:{port} for channel {chan}.\r\n\r\n' 'press [{key_q}] to abort ... '.format(server=SERVER, port=PORT, chan=CHANNEL, key_q=term.bold(u'q'))) client = IRCChat(term, session) irc_handle = session.user.handle.replace(' ', '_') try: # pylint: disable=W0142 client.connect(SERVER, PORT, irc_handle, **kwargs) except irc.client.ServerConnectionError: echo(term.bold_red(u'Connection error!')) term.inkey(3) raise EOFError() while True: client.reactor.process_once() event, data = session.read_events( ('irc', 'irc-quit', 'irc-connected', 'input'), timeout=0.02) if event == 'irc': # show on-connect motd data if any received echo(u'\r\n{0}'.format(data[0])) scrollback.append(data[0]) elif event == 'irc-connected': break elif event == 'input': session.buffer_input(data, pushback=True) inp = term.inkey(0) while inp is not None: if inp.lower() == u'q' or inp.code == term.KEY_ESCAPE: echo(u'Canceled!') raise EOFError() inp = term.inkey(0) elif event == 'irc-quit': echo(term.bold_red(u'\r\nConnection failed: {0}!'.format(data))) term.inkey(3) raise EOFError() while True: client.reactor.process_once() event, data = session.read_events( ('irc', 'irc-welcome', 'irc-quit', 'input'), timeout=0.2) if event == 'irc': # show on-connect motd data if any received echo(u'\r\n{0}'.format(data[0])) scrollback.append(data[0]) if event == 'irc-quit': echo(term.bold_red(u'\r\nConnection lost: {0}!'.format(data))) term.inkey(3) raise EOFError() elif event == 'input': session.buffer_input(data, pushback=True) inp = term.inkey(0) while inp is not None: if inp.lower() == u'q' or inp.code == term.KEY_ESCAPE: echo(u'Canceled!') raise EOFError() inp = term.inkey(0) elif event == 'irc-welcome': return client, scrollback
print """ USAGE: > python yell_in_irc.py <channel> <msg> """ if __name__ == "__main__": if len(sys.argv) < 3: usage() sys.exit(1) channel = sys.argv[1] msg = sys.argv[2] client = IRCCat(channel, msg) try: client.connect( server="irc.tfbnw.net", port=6443, nickname="SI_TAKEDOWN_THE_SITE", password=None, username=None, ircname=None, localaddress="", localport=0, ssl=True) except irc.client.ServerConnectionError, x: print x sys.exit(1) client.start()