Esempio n. 1
0
from irc import IRCBot, run_bot
from gevent import monkey
from services.lib.api import load_config, get_redis_client


monkey.patch_all()

parser = argparse.ArgumentParser(
    description='ZenIRCBot, a new and different bot',
)
parser.add_argument('-c', '--config', default='./bot.json',
                    help='The config to use. (default: %(default)s)')
opts = parser.parse_args()

config = load_config(opts.config)
pub = get_redis_client(config['redis'])


class RelayBot(IRCBot):

    def __init__(self, *args, **kwargs):
        super(RelayBot, self).__init__(*args, **kwargs)
        pub.set('zenircbot:nick', self.conn.nick)
        gevent.spawn(self.do_sub)

    def do_sub(self):
        sub = get_redis_client(config['redis'])
        self.pubsub = sub.pubsub()
        self.pubsub.subscribe('out')
        for msg in self.pubsub.listen():
Esempio n. 2
0
import gevent
import redis
import json

from irc import IRCBot, run_bot
from gevent import monkey
from services.lib.api import load_config
monkey.patch_all()

config = load_config('bot.json')
redis_config = config['redis']

r = redis.StrictRedis(host=redis_config['host'],
                      port=redis_config['port'],
                      db=redis_config['db'])


class RelayBot(IRCBot):
    def __init__(self, *args, **kwargs):
        super(RelayBot, self).__init__(*args, **kwargs)
        gevent.spawn(self.do_sub)

    def do_sub(self):
        self.pubsub = r.pubsub()
        self.pubsub.subscribe('out')
        for msg in self.pubsub.listen():
            message = json.loads(msg['data'])
            print "Got %s" % message
            if message['version'] == 1:
                if message['type'] == 'privmsg':
                    self.respond(message['data']['message'],
Esempio n. 3
0
import gevent
import redis
import json

from irc import IRCBot, run_bot
from gevent import monkey
from services.lib.api import load_config
monkey.patch_all()

config = load_config('bot.json')
redis_config = config['redis']

r = redis.StrictRedis(host=redis_config['host'], port=redis_config['port'], db=redis_config['db'])

class RelayBot(IRCBot):

    def __init__(self, *args, **kwargs):
        super(RelayBot, self).__init__(*args, **kwargs)
        gevent.spawn(self.do_sub)

    def do_sub(self):
        self.pubsub = r.pubsub()
        self.pubsub.subscribe('out')
        for msg in self.pubsub.listen():
            message = json.loads(msg['data'])
            print "Got %s" % message
            if message['version'] == 1:
                if message['type'] == 'privmsg':
                    self.respond(message['data']['message'], channel=message['data']['to'])

    def do_pub(self, nick, message, channel):
Esempio n. 4
0
from irc import IRCBot, run_bot
from gevent import monkey
from services.lib.api import load_config, get_redis_client

monkey.patch_all()

parser = argparse.ArgumentParser(
    description='ZenIRCBot, a new and different bot', )
parser.add_argument('-c',
                    '--config',
                    default='./bot.json',
                    help='The config to use. (default: %(default)s)')
opts = parser.parse_args()

config = load_config(opts.config)
pub = get_redis_client(config['redis'])


class RelayBot(IRCBot):
    def __init__(self, *args, **kwargs):
        super(RelayBot, self).__init__(*args, **kwargs)
        pub.set('zenircbot:nick', self.conn.nick)
        gevent.spawn(self.do_sub)

    def do_sub(self):
        sub = get_redis_client(config['redis'])
        self.pubsub = sub.pubsub()
        self.pubsub.subscribe('out')
        for msg in self.pubsub.listen():
            if msg['type'] != 'message':