def handle(self, *args, **options): self.session_key = options['session_key'][0] # get django session using session_key from commandline try: session = Session.objects.get(session_key=self.session_key) except Session.DoesNotExist: print("Session with session_key %s not found" % self.session_key) sys.exit(1) # connect to IRC config = { 'nick': session.get_decoded()['nickname'], 'autojoins': ['#alveos'], 'host': 'ircd.tyknet.dk', 'port': 6697, 'ssl': True, 'timeout': 30, 'includes': [ 'irc3.plugins.core', 'irc3.plugins.human', 'alveos.irc', ], 'django_session_key': self.session_key, 'reply_channel': session.get_decoded()['reply_channel'], } irc3.IrcBot(**config).run(forever=True)
def do_work(): """ Run irc3 module code, wait for events on IRC and wait for messages in OutgoingIrcMessage """ if hasattr(settings, "IRCBOT_CHANNELS"): logger.error( "settings.IRCBOT_CHANNELS is deprecated. Please define settings.IRCBOT_PUBLIC_CHANNEL and use team channels for the rest.", ) return False config = { "nick": settings.IRCBOT_NICK, "autojoins": [], "host": settings.IRCBOT_SERVER_HOSTNAME, "port": settings.IRCBOT_SERVER_PORT, "ssl": settings.IRCBOT_SERVER_USETLS, "timeout": 30, "flood_burst": 2, "flood_rate": 1, "flood_rate_delay": 2, "includes": ["ircbot.irc3module"], } logger.debug("Connecting to IRC with the following config: %s" % config) try: irc3.IrcBot(**config).run(forever=True) except Exception as E: logger.exception("Got exception inside irc3.IrcBot.run()") raise E
def do_work(): """ Run irc3 module code, wait for events on IRC and wait for messages in OutgoingIrcMessage """ if hasattr(settings, 'IRCBOT_CHANNELS'): logger.error( "settings.IRCBOT_CHANNELS is deprecated. Please define settings.IRCBOT_PUBLIC_CHANNEL and use team channels for the rest." ) return False config = { 'nick': settings.IRCBOT_NICK, 'autojoins': [], 'host': settings.IRCBOT_SERVER_HOSTNAME, 'port': settings.IRCBOT_SERVER_PORT, 'ssl': settings.IRCBOT_SERVER_USETLS, 'timeout': 30, 'flood_burst': 2, 'flood_rate': 1, 'flood_rate_delay': 2, 'includes': [ 'ircbot.irc3module', ], } logger.debug("Connecting to IRC with the following config: %s" % config) try: irc3.IrcBot(**config).run(forever=True) except Exception as E: logger.exception("Got exception inside do_work for %s" % self.workermodule) raise E
def activate(self): super().activate() self.connection = MockConnection(self) self.dispatcher = self.plugins.command_dispatcher self.prefix = self.config.get_plugin_config( "command_dispatcher")["command_prefix"] self.server = self.config.get_plugin_config(self.name)["server"] self.channel = self.config.get_plugin_config(self.name)["channel"] self.username = self.config.get_plugin_config(self.name)["username"] self.sc = self.config.get_plugin_config(self.name)["strip_colors"] self.bot = irc3.IrcBot(nick=self.username, autojoins=[self.channel], host=self.server) self.bot.log = self.logger self.bot.include("irc3.plugins.core") self.bot.include("irc3.plugins.userlist") x = irc3.event(irc3.rfc.PRIVMSG, self.forward) x.compile(None) y = irc3.event(r"^:\S+ 353 [^&#]+(?P<channel>\S+) :(?P<nicknames>.*)", self.name_check) y.compile(None) self.bot.attach_events(x) self.bot.attach_events(y) self.bot.create_connection() self.ops = set() asyncio.ensure_future(self.update_ops())
def __init__(self, irc_server): self.irc_server = irc_server self.irc_server.irc_connection_thread = self threading.Thread.__init__(self) self._bot = None config = dict( nick=vectron_config.irc_bot_nickname, host=irc_server.host, port=irc_server.port, ssl=irc_server.ssl, async=False, ssl_verify='CERT_NONE', includes=[ 'irc3.plugins.core', 'irc3.plugins.command', 'irc3.plugins.userlist', 'vectronbot_irc_plugin', ], username= ('Telegram IRC bridge based on irc3 http://irc3.readthedocs.io ' 'and https://github.com/python-telegram-bot/python-telegram-bot' ), url='https://localhost/', ctcp=dict( version='TGIRC 0.1', userinfo='{realname}', time='{now:%c}', )) self._bot = irc3.IrcBot(**config) self._bot.set_t_callback(self.t_callback) self._bot.set_token_callback(self.token_callback) self._bot.irc_connection = self
def main(): loop = asyncio.get_event_loop() config = dict( autojoins=['#irc3'], host='irc.freenode.net', port=7000, ssl=True, timeout=30, includes=[ 'irc3.plugins.core', 'irc3.plugins.human', __name__, # this register this module ], loop=loop) # instanciate two bot irc3.IrcBot(nick='bobirc', **config).run(forever=False) irc3.IrcBot(nick='jackyrc', **config).run(forever=False) loop.run_forever()
def main(): # logging configuration logging.config.dictConfig(irc3.config.LOGGING) # instanciate a bot irc3.IrcBot( nick='irc3', autojoins=['#irc3'], host='irc.undernet.org', port=6667, ssl=False, includes=[ 'irc3.plugins.core', 'irc3.plugins.command', 'irc3.plugins.human', __name__, # this register MyPlugin ]).run()
def handle(self, *args, **options): self.output('IRC bot worker running...') # connect to IRC config = { 'nick': settings.IRCBOT_NICK, 'autojoins': [settings.IRCBOT_SCHEDULE_ANNOUNCE_CHANNEL], 'host': settings.IRCBOT_SERVER_HOSTNAME, 'port': settings.IRCBOT_SERVER_PORT, 'ssl': settings.IRCBOT_SERVER_USETLS, 'timeout': 30, 'includes': [ 'ircbot.irc3module', ], } irc3.IrcBot(**config).run(forever=True)
def run(self): self.loop = asyncio.new_event_loop() self.setup = dict(autojoins=[], host='irc.twitch.tv', port=6667, username=cfg["Username"], password=cfg["OauthPass"], nick=cfg["Username"], ssl=False, includes=[__name__, 'irc3.plugins.userlist'], loop=self.loop) self.bot = irc3.IrcBot(**self.setup) rec = {"BOT": self.bot, "LOOP": self.loop, "CLI-ID": cfg["Client-ID"]} pluginmanager.addresource("TWITCH", rec) self.initlock.release() self.bot.run(forever=True)
def activate(self): self.enabled = self.config.get_plugin_config(self.name)["enabled"] if not self.enabled: return super().activate() self.dispatcher = self.plugins.command_dispatcher self.prefix = self.config.get_plugin_config("command_dispatcher")[ "command_prefix"] self.command_prefix = self.config.get_plugin_config(self.name)[ "command_prefix"] self.server = self.config.get_plugin_config(self.name)["server"] self.channel = self.config.get_plugin_config(self.name)["channel"] self.username = self.config.get_plugin_config(self.name)["username"] self.sc = self.config.get_plugin_config(self.name)["strip_colors"] self.bot = irc3.IrcBot(nick=self.username, autojoins=[self.channel], host=self.server) self.bot.log = self.logger self.bot.include("irc3.plugins.core") self.bot.include("irc3.plugins.userlist") x = irc3.event(irc3.rfc.PRIVMSG, self.forward) x.compile(None) y = irc3.event(r"^:\S+ 353 [^&#]+(?P<channel>\S+) :(?P<nicknames>.*)", self.name_check) y.compile(None) z = irc3.event(irc3.rfc.JOIN_PART_QUIT, self.announce_irc_join) z.compile(None) self.bot.attach_events(x) self.bot.attach_events(y) self.bot.attach_events(z) self.bot.create_connection() self.discord_active = link_plugin_if_available(self, 'discord_bot') if self.discord_active: self.discord = self.plugins['discord_bot'] if link_plugin_if_available(self, "chat_manager"): self.chat_manager = self.plugins['chat_manager'] self.ops = set() self.connection = MockConnection(self) asyncio.ensure_future(self.update_ops())
def activate(self): super().activate() self.protocol = MockProtocol(self) self.bot = irc3.IrcBot(nick=temp_username, autojoins=[temp_channel], host=temp_server) self.bot.log = self.logger self.bot.include('irc3.plugins.core') self.bot.include('irc3.plugins.userlist') x = irc3.event(irc3.rfc.PRIVMSG, self.forward) x.compile(None) y = irc3.event(r'^:\S+ 353 [^&#]+(?P<channel>\S+) :(?P<nicknames>.*)', self.name_check) y.compile(None) self.bot.add_event(x) self.bot.add_event(y) self.bot.create_connection() self.ops = set() asyncio.Task(self.update_ops())
def on_load(self): config = self.server.config self.config = irc = config.irc self.command_modes = unpack_modes(irc.command_modes) self.chat_modes = unpack_modes(irc.chat_modes) self.channel = irc.channel.lower() if not self.channel.startswith('#'): self.channel = '#' + self.channel plugins = ['irc3.plugins.core', 'irc3.plugins.autojoins', __name__] bot = irc3.IrcBot(nick=irc.nickname, autojoins=[self.channel], host=irc.server, port=irc.port, ssl=irc.ssl, ssl_verify=irc.ssl_verify, includes=plugins, script=self) bot.create_connection()
def do_work(): """ Run irc3 module code, wait for events on IRC and wait for messages in OutgoingIrcMessage """ config = { 'nick': settings.IRCBOT_NICK, 'autojoins': list(set(settings.IRCBOT_CHANNELS.values())), 'host': settings.IRCBOT_SERVER_HOSTNAME, 'port': settings.IRCBOT_SERVER_PORT, 'ssl': settings.IRCBOT_SERVER_USETLS, 'timeout': 30, 'includes': [ 'ircbot.irc3module', ], } logger.debug("Connecting to IRC with the following config: %s" % config) try: irc3.IrcBot(**config).run(forever=True) except Exception as E: logger.exception("Got exception inside do_work for %s" % self.workermodule) raise
def __init__(self, irc_server, vectronconfig): self._vectronconfig = vectronconfig self.irc_server = irc_server self.irc_server.irc_connection_thread = self threading.Thread.__init__(self) self._bot = None self.irc_bot_nickname = vectronconfig['irc_bot_nickname'] config = dict( nick=self.irc_bot_nickname, host=irc_server.host, port=irc_server.port, ssl=irc_server.ssl, conf_async=False, ssl_verify='CERT_NONE', includes=['irc3.plugins.core', 'irc3.plugins.command', 'irc3.plugins.userlist', 'vectronbot_irc_plugin'] ) self._bot = irc3.IrcBot(**config) self._bot.set_t_callback(self.t_callback) self._bot.set_token_callback(self.token_callback) self._bot.irc_connection = self
def run(config_file='config.ini', debug=False): config = configparser.ConfigParser() config.read(config_file) if 'gumiya' not in config: sys.exit('Error: Invalid config, missing [gumiya] section') gumiya_config = config['gumiya'] loop = asyncio.get_event_loop() bancho_queue = asyncio.Queue(loop=loop) config_common = { 'irc3.plugins.command': { 'hash': '#', 'cmd': '!', 'guard': 'irc3.plugins.command.mask_based_policy', }, 'irc3.plugins.command.masks': { 'hash': '#', '*': 'view', }, } if debug: config_common['debug'] = True twitch_config = dict( host='irc.chat.twitch.tv', port=6667, includes=[ 'irc3.plugins.core', 'irc3.plugins.autocommand', 'irc3.plugins.command', 'irc3.plugins.log', 'gumiyabot.twitch', ], autocommands=[ 'CAP REQ :twitch.tv/membership', 'CAP REQ :twitch.tv/commands', 'CAP REQ :twitch.tv/tags', ], nick=gumiya_config['twitch_username'], password=gumiya_config['twitch_password'], osu_api_key=gumiya_config['osu_api_key'], tillerino_api_key=gumiya_config.get('tillerino_api_key', fallback=''), bancho_nick=gumiya_config['bancho_username'], twitch_channel=gumiya_config['twitch_channel'], ) twitch_config.update(config_common) bancho_config = dict( host='irc.ppy.sh', port=6667, includes=[ 'irc3.plugins.core', 'irc3.plugins.command', 'irc3.plugins.log', 'gumiyabot.bancho', ], nick=gumiya_config['bancho_username'], password=gumiya_config['bancho_password'], ) bancho_config.update(config_common) twitch_bot = irc3.IrcBot(loop=loop, bancho_queue=bancho_queue, **twitch_config) twitch_bot.run(forever=False) bancho_bot = irc3.IrcBot(loop=loop, bancho_queue=bancho_queue, connection=BanchoConnection, **bancho_config) bancho_bot.run(forever=False) loop.run_forever()
if __name__ == '__main__': # logging configuration logdict = irc3.config.LOGGING.copy() for k,v in logdict['formatters'].items(): v['format'] = '%(asctime)s ' + v['format'] logging.config.dictConfig(logdict) # instanciate a bot bot = irc3.IrcBot( nick='wikibugs', autojoins=list(channels.keys()), host='irc.freenode.net', port=7000, ssl=True, password=irc_password, realname="pywikibugs2", userinfo="Wikibugs v2.0, https://tools.wmflabs.org/wikibugs/", url="https://tools.wmflabs.org/wikibugs/", includes=[ 'irc3.plugins.core', 'irc3.plugins.ctcp', __name__, # this register MyPlugin ], verbose=True, ctcp={'version': 'pywikibugs %s running on irc3 {version}. See {url} for more details.' % __version__, 'userinfo': '{userinfo}', 'ping': 'PONG'} ) asyncio.Task(redisrunner(bot)) bot.run()
except Exception as e: import traceback bot.log.critical(traceback.format_exc()) yield from asyncio.sleep(1) if __name__ == '__main__': # logging configuration logdict = irc3.config.LOGGING.copy() for k,v in logdict['formatters'].items(): v['format'] = '%(asctime)s ' + v['format'] logging.config.dictConfig(logdict) # instanciate a bot bot = irc3.IrcBot( nick='wikibugs', autojoins=list(channels.keys()), host='irc.freenode.net', port=7000, ssl=True, password=irc_password, realname="pywikibugs2", userinfo="Wikibugs v2.0, https://tools.wmflabs.org/wikibugs/", url="https://tools.wmflabs.org/wikibugs/", includes=[ 'irc3.plugins.core', __name__, # this register MyPlugin ], verbose=True) asyncio.Task(redisrunner(bot)) bot.run()
args = parser.parse_args() config = irc3.utils.parse_config('bot', 'bot.ini') plugins = [ 'harvester.harvester', 'irc3.plugins.logger', ] if args.debug: config['nick'] = "harvester_debug" config['autojoins'] = ['#brotherBot'] config['harvested_channels'] = ['#brotherBot'] plugins.pop() # remove logging from debugging bot = irc3.IrcBot(**config) for p in plugins: bot.include(p) bot.run() urls = [ 'https://bpaste.net/show/426fe62985e3', 'https://bpaste.net/raw/426fe62985e3', 'http://cubeupload.com/im/YhUxlj.jpg', 'http://i.cubeupload.com/YhUxlj.jpg', 'http://dpaste.com/2E0H71M', 'http://dpaste.com/2E0H71M.txt', 'https://github.com/iIIustrious/3301code/blob/master/xor.c', 'https://github.com/iIIustrious/3301code/blob/master/xor.c', 'https://github.com/iIIustrious/3301code', 'https://gyazo.com/fc12a9bb2a4b92d1debef49b8279371f',