Beispiel #1
0
    def __init__(self):
        self.app: Client = Client("bot",
                                  app_version=self.app_version,
                                  device_model=self.device_model,
                                  api_id=os.getenv("API_ID"),
                                  api_hash=os.getenv("API_HASH"),
                                  bot_token=os.getenv("TOKEN"),
                                  plugins=None,
                                  system_version=self.system_version)

        self.irc: IrcBot = IrcBot.from_config(
            dict(
                nick=os.getenv("IRC_NICKNAME"),
                autojoins=[os.getenv("IRC_CHANNEL")],
                username=os.getenv("IRC_NICKNAME"),
                realname=os.getenv("IRC_INFO"),
                sasl_username=os.getenv("IRC_NICKNAME"),
                sasl_password=os.getenv("IRC_PASSWORD"),
                host='irc.libera.chat',
                port=6697,
                ssl=True,
                debug=True,
                includes=[
                    'irc3.plugins.command',
                    'irc3.plugins.logger',
                    'bot.irc_plugins.irc2tg',
                ],
            ))

        self.start_time: datetime = datetime.utcnow()
Beispiel #2
0
    def __init__(self, broadcast_msg):
        self.broadcast_msg = broadcast_msg

        config = self.defaults.copy()
        config.update(inspect.getmembers(self))

        self.c = IrcBot(**config)
        self.c.recv_msg = self.recv_msg
        self.c.recv_event = self.recv_event

        self.c.include('echobot.ircplugin')
        self.c.run(forever=False)
Beispiel #3
0
def main():
    """Initializes a new irc3 bot."""
    bot = IrcBot.from_config(conf)
    bot.version = get_version_from_file('Makefile')
    observer = Observer()
    observer.schedule(
        ReloadEventHandler(bot, conf),
        path.dirname(path.abspath(__file__)),
        recursive=True
    )
    observer.start()

    try:
        bot.run(forever=True)
    except KeyboardInterrupt:
        observer.stop()
Beispiel #4
0
def main():
    from roboto import model, http, loop, disc, config, commands

    # Parse & load config file
    config.update(parse_config('bot', "config.ini"))

    # Connect & Init DB
    model.init_db(config)

    # Load IRC Bot
    irc_bot = IrcBot.from_config(config, loop=loop)
    irc_bot.run(forever=False)

    # HTTP Server for playlist
    http.setup()

    # Start background task queue processor
    asyncio.ensure_future(commands.dispatcher.task_consumer(), loop=loop)

    # Start discord client
    disc.dc.run(config.get("discord_token"))
Beispiel #5
0
class IRCClient(object):
    defaults = dict(
        nick='echobot',
        realname='echobot',
        userinfo='echobot IRC client',
    )

    events = {"JOIN": 'joined',
              "PART": 'dramaparted',
              "QUIT": 'ragequit'}

    def __init__(self, broadcast_msg):
        self.broadcast_msg = broadcast_msg

        config = self.defaults.copy()
        config.update(inspect.getmembers(self))

        self.c = IrcBot(**config)
        self.c.recv_msg = self.recv_msg
        self.c.recv_event = self.recv_event

        self.c.include('echobot.ircplugin')
        self.c.run(forever=False)

    def format_msg(self, mask, event, target, data):
        return '<{0}> {1}'.format(mask.nick, data)

    def recv_msg(self, mask, event, target, data):
        self.broadcast_msg(self.format_msg(mask, event, target, data))

    def format_event(self, mask, event, channel, data):
        fmt = '*** {0} has {1} {2}'.format(mask.nick, self.events[event], channel)
        if data:
            fmt += ' ({0})'.format(data)
        return fmt

    def recv_event(self, mask, event, channel, data):
        self.broadcast_msg(self.format_event(mask, event, channel, data))

    @asyncio.coroutine
    def send_msg(self, msg):
        for channel in irc3.utils.as_list(getattr(self, 'autojoins', [])):
            self.c.privmsg(channel, msg)
Beispiel #6
0
from irc3 import IrcBot

IrcBot.from_argv('config.ini')
Beispiel #7
0
from irc3 import IrcBot, utils
import sys
from threading import Thread

CFG = utils.parse_config('ipdb', 'ipdb.ini')

IRC_CFG = {
    **utils.parse_config('bot', 'irclib/config.ini'),
    **CFG['irc'], 'autojoins': [CFG['adminChannel']]
}

bot = server = None

if __name__ == "__main__":
    bot = IrcBot(**IRC_CFG)
    bot.include('irc3.plugins.command')
    bot.include('irclib.plugins.ipdb')
    # bot.run()
    bot_thread = Thread(target=bot.run)
    bot_thread.daemon = True
    bot_thread.start()
    while 1:
        raw_input = input('INPUT:')
        try:
            eval(raw_input)
        except:
            print("Unexpected error:", sys.exc_info()[0])
Beispiel #8
0
from irc3 import IrcBot

IrcBot.from_argv('config-dev.ini')