Esempio n. 1
0
File: fleet.py Progetto: code2u/jsb
def fleet_add(bot, ievent):
    """ arguments: <name> <type> <server>|<botjid> <nick>|<passwd> - add a newly created bot to the fleet. """
    try:
        name, type, server, nick = ievent.rest.split()
    except ValueError: ievent.missing("<name> <type> <server>|<botjid> <nick>|<passwd>") ; return
    type = type.lower()
    fleet = getfleet()
    bot = fleet.byname(name)
    if bot: event.reply("%s bot already exists" % name) ; return
    cfg = Config('fleet' + os.sep + stripname(name) + os.sep + 'config')
    cfg.disable = 0
    if type == "irc":
        cfg.port = 6667
        cfg.server = server
        cfg.nick = nick
    elif type in ["xmpp", "sxmpp"]:
        cfg.port = 4442
        cfg.host = server
        try: n, serv = cfg.host.split("@")
        except (ValueError, TypeError): pass
        cfg.server = serv
        cfg.password = nick
    cfg.save()
    bot = fleet.makebot(type, name, cfg)
    fleet.addbot(bot)
    if bot:
        ievent.reply('enabled and started %s bot - %s' % (name, cfg.filename))
        start_new_thread(bot.start, ())
    else: ievent.reply("can't make %s bot" % cfg.name)
Esempio n. 2
0
def makeircconfig(type=None, opts=None, botname=None):
    """ make config file based on options. """
    if not opts: botname = botname or "default-irc"
    else:
        if not botname: botname = opts.name or "default-irc"
    botname = stripname(botname)
    cfg = Config('fleet' + os.sep + botname + os.sep + 'config')
    cfg.type = 'irc'
    cfg.botname = botname
    if not opts:
        cfg.password = ""
        cfg.ssl = False
        cfg.port = 6667
        cfg.server = "localhost"
        cfg.owner = []
        cfg.ipv6 = False
        return cfg
    if opts.password: cfg.password = opts.password
    if opts.ssl: cfg.ssl = True
    if opts.nossl: cfg.ssl = False
    if opts.port: cfg.port = opts.port
    else: cfg.port = 6667
    if opts.server: cfg.server = opts.server
    else: cfg.server = cfg.server or "localhost"
    if not cfg.owner: cfg.owner = []
    if opts.owner and opts.owner not in cfg.owner: cfg.owner.append(opts.owner)
    if opts.ipv6: cfg.ipv6 = opts.ipv6
    return cfg
Esempio n. 3
0
def fleet_add(bot, ievent):
    """ add a fleet bot. """
    try:
        name, type, server, nick = ievent.rest.split()
    except ValueError:
        ievent.missing("<name> <type> <server>|<botjid> <nick>|<passwd>")
        return
    bots = ievent.rest.split()
    fleet = getfleet()
    bot = fleet.byname(name)
    if bot:
        event.reply("%s bot already exists" % name)
        return
    cfg = Config('fleet' + os.sep + stripname(name) + os.sep + 'config')
    cfg.disable = 0
    if type == "irc":
        cfg.port = 6667
        cfg.server = server
        cfg.nick = nick
    elif type in ["xmpp", "sxmpp"]:
        cfg.port = 4442
        cfg.host = server
        try:
            n, serv = cfg.host.split("@")
        except (ValueError, TypeError):
            pass
        cfg.server = serv
        cfg.password = nick
    cfg.save()
    bot = fleet.makebot(type, name, cfg)
    ievent.reply('enabled and started %s bot - %s' % (name, cfg.filename))
    start_new_thread(bot.start, ())
Esempio n. 4
0
def makesxmppconfig(opts=None, botname=None, type="sxmpp"):
    """ make config file based on options. """
    if not opts: botname = botname or "default-%s" % type
    else:
        if not botname: botname = opts.name or "default-%s" % type
    botname = stripname(botname)
    from jsb.lib.config import Config, makedefaultconfig
    cfg = Config('fleet' + os.sep + botname + os.sep + 'config')
    cfg.type = type
    cfg.name = botname
    if not opts:
        cfg.user = cfg.user or ""
        cfg.host = cfg.host or ""
        cfg.password =  cfg.password or ""
        cfg.server = cfg.server or ""
        cfg.owner = cfg.owner or []
        cfg.loglevel = cfg.lowlevel or "warn" 
        cfg.nick = cfg.nick or "jsb"
        cfg.channels = []
        cfg.openfire = False
        return cfg        
    if opts.openfire: cfg.openfire = True ; logging.warn("openfire mode is enabled")
    else: cfg.openfire = False ; logging.warn("openfire mode is disabled")
    if opts.doregister: cfg.doregister = True ; logging.warn("register mode is enabled")
    else: cfg.doregister = False ; logging.warn("register mode is disabled")
    if not cfg.disable: cfg.disable = False
    if not cfg.channels: cfg.channels = []
    if opts.user: cfg.user = opts.user
    if not cfg.user: raise NoUserProvided("user is not provided .. try giving the -u option to the bot (and maybe -p as well) or run jsb-init and edit %s" % cfg.cfile)
    if opts.user:
        try: cfg.host = opts.user.split('@')[1]
        except (IndexError, ValueError): print "user is not in the nick@server format"
    if not cfg.host:
        try: cfg.host = cfg.user.split('@')[1]
        except (IndexError, ValueError): print "user is not in the nick@server format"
    if opts.password: cfg.password = opts.password
    if opts.server: cfg.server = opts.server
    else: cfg.server = cfg.server or ""
    if opts.name: cfg.jid = opts.name
    if not cfg.owner: cfg.owner = []
    if opts.owner and opts.owner not in cfg.owner: cfg.owner.append(opts.owner)
    if not cfg.owner: raise NoOwnerSet("try using the -o option or run jsb-init and edit %s" % cfg.cfile)
    if opts.nick: cfg.nick = opts.nick
    else: cfg.nick = cfg.nick or "jsb"
    if opts.channel:
        if not opts.channel in cfg.channels: cfg.channels.append(opts.channel)
    else: cfg.channels = cfg.channels or []
    return cfg
Esempio n. 5
0
def makeircconfig(opts=None, botname=None):
    """ make config file based on options. """
    if not opts: botname = botname or "default-irc"
    else:
        if not botname: botname = opts.name or "default-irc"
    botname = stripname(botname)
    from jsb.lib.config import Config
    cfg = Config('fleet' + os.sep + botname + os.sep + 'config')
    cfg.type = 'irc'
    cfg.name = botname
    if not opts:
        cfg.password = cfg.password or ""
        cfg.ssl = cfg.ssl or False
        cfg.port = cfg.port or 6667
        cfg.server = cfg.server or "localhost"
        cfg.owner = cfg.owner or []
        cfg.ipv6 = cfg.ipv6 or False
        cfg.nick = cfg.nick or "jsb"
        cfg.channels = []
        return cfg
    if not cfg.channels: cfg.channels = []
    if opts.enable:
        cfg.disable = 0
        logging.warn("enabling %s bot in %s" % (botname, cfg.cfile))
    if opts.password: cfg.password = opts.password
    if opts.ipv6: cfg.ipv6 = True
    else: cfg.ipv6 = cfg.ipv6 or False
    if opts.ssl: cfg.ssl = True
    else: cfg.ssl = cfg.ssl or False
    if opts.nossl: cfg.ssl = False
    if opts.port: cfg.port = opts.port or cfg.port or 6667
    else: cfg.port = cfg.port or 6667
    if opts.server: cfg.server = opts.server
    else: cfg.server = cfg.server or "localhost"
    if not cfg.owner: cfg.owner = []
    if opts.owner and opts.owner not in cfg.owner: cfg.owner.append(opts.owner)
    if opts.ipv6: cfg.ipv6 = opts.ipv6
    if opts.nick: cfg.nick = opts.nick
    else: cfg.nick = cfg.nick or "jsb"
    if opts.username: cfg.username = opts.username
    else: cfg.username = cfg.username or "jsonbot"
    if opts.channel:
        if not opts.channel in cfg.channels: cfg.channels.append(opts.channel)
    else: cfg.channels = cfg.channels or []
    return cfg
Esempio n. 6
0
def fleet_add(bot, ievent):
    """ arguments: <name> <type> <server>|<botjid> <nick>|<jabberpasswd> [<ircpass>] - add a newly created bot to the fleet. """
    try:
        name, type, server, nick, password = ievent.rest.split()
    except ValueError:
        try:
            name, type, server, nick = ievent.rest.split()
            password = ""
        except ValueError:
            ievent.missing(
                "<name> <type> <server>|<botjid> <nick>|<jabberpass> [<ircpasswd>]"
            )
            return
    type = type.lower()
    fleet = getfleet()
    bot = fleet.byname(name)
    if bot:
        ievent.reply("%s bot already exists" % name)
        return
    cfg = Config('fleet' + os.sep + stripname(name) + os.sep + 'config')
    cfg.disable = 0
    if type == "irc":
        cfg.port = 6667
        cfg.server = server
        cfg.nick = nick
        cfg.password = password
    elif type in ["xmpp", "sxmpp"]:
        cfg.port = 4442
        cfg.host = server
        try:
            n, serv = cfg.host.split("@")
        except (ValueError, TypeError):
            pass
        cfg.server = serv
        cfg.password = nick
    cfg.save()
    bot = fleet.makebot(type, name, cfg)
    fleet.addbot(bot)
    if bot:
        ievent.reply('enabled and started %s bot - %s' % (name, cfg.filename))
        start_new_thread(bot.start, ())
    else:
        ievent.reply("can't make %s bot" % cfg.name)
Esempio n. 7
0
def makeircconfig(opts=None, botname=None):
    """ make config file based on options. """
    if not opts: botname = botname or "default-irc"
    else:
        if not botname: botname = opts.name or "default-irc"
    botname = stripname(botname)
    from jsb.lib.config import Config
    cfg = Config('fleet' + os.sep + botname + os.sep + 'config')
    cfg.type = 'irc'
    cfg.name = botname
    if not opts:
        cfg.password = cfg.password or ""
        cfg.ssl = cfg.ssl or False
        cfg.port = cfg.port or 6667
        cfg.server = cfg.server or "localhost"
        cfg.owner = cfg.owner or []
        cfg.ipv6 = cfg.ipv6 or False
        cfg.nick = cfg.nick or "jsb"
        cfg.channels = []
        return cfg          
    if not cfg.channels: cfg.channels = []
    if not cfg.disable: cfg.disable = False
    if opts.password: cfg.password = opts.password
    if opts.ipv6: cfg.ipv6 = True
    else: cfg.ipv6 = cfg.ipv6 or False
    if opts.ssl: cfg.ssl = True
    else: cfg.ssl = cfg.ssl or False
    if opts.nossl: cfg.ssl = False
    if opts.port: cfg.port = opts.port or cfg.port or 6667
    else: cfg.port = cfg.port or 6667
    if opts.server: cfg.server = opts.server
    else: cfg.server = cfg.server or "localhost"
    if not cfg.owner: cfg.owner = []
    if opts.owner and opts.owner not in cfg.owner: cfg.owner.append(opts.owner)
    if opts.ipv6: cfg.ipv6 = opts.ipv6
    if opts.nick: cfg.nick = opts.nick
    else: cfg.nick = cfg.nick or "jsb"
    if opts.username: cfg.username = opts.username
    else: cfg.username = cfg.username or "jsonbot"
    if opts.channel:
        if not opts.channel in cfg.channels: cfg.channels.append(opts.channel)
    else: cfg.channels = cfg.channels or []
    return cfg
Esempio n. 8
0
File: opts.py Progetto: code2u/jsb
def makesxmppconfig(opts=None, botname=None):
    """ make config file based on options. """
    if not opts: botname = botname or "default-sxmpp"
    else:
        if not botname: botname = opts.name or "default-sxmpp"
    botname = stripname(botname)
    cfg = Config('fleet' + os.sep + botname + os.sep + 'config')
    cfg.type = "sxmpp"
    cfg.name = botname
    if not opts:
        cfg.user = cfg.user or ""
        cfg.host = cfg.host or ""
        cfg.password =  cfg.passord or ""
        cfg.server = cfg.server or ""
        cfg.owner = cfg.owner or []
        cfg.loglevel = cfg.lowlevel or "warn" 
        cfg.nick = cfg.nick or "jsb"
        cfg.channels = []
        return cfg        
    if not cfg.disable: cfg.disable = False
    if not cfg.channels: cfg.channels = []
    if opts.user: cfg.user = opts.user
    else: cfg.user = cfg.user or "*****@*****.**" % cfg.uuid
    if opts.user:
        try: cfg.host = opts.user.split('@')[1]
        except (IndexError, ValueError): print "user is not in the nick@server format"
    if not cfg.host:
        try: cfg.host = cfg.user.split('@')[1]
        except (IndexError, ValueError): print "user is not in the nick@server format"
    if opts.password: cfg.password = opts.password
    if opts.server: cfg.server = opts.server
    else: cfg.server = cfg.server or ""
    if opts.name: cfg.jid = opts.name
    if not cfg.owner: cfg.owner = []
    if opts.owner and opts.owner not in cfg.owner: cfg.owner.append(opts.owner)
    if opts.nick: cfg.nick = opts.nick
    else: cfg.nick = cfg.nick or "jsb"
    if opts.channel:
        if not opts.channel in cfg.channels: cfg.channels.append(opts.channel)
    else: cfg.channels = cfg.channels or []
    return cfg
Esempio n. 9
0
def makexmppconfig(type, opts=None, botname=None):
    """ make config file based on options. """
    if not opts: botname = botname or "default-sxmpp"
    else:
        if not botname: botname = opts.name or "default-sxmpp"
    botname = stripname(botname)
    cfg = Config('fleet' + os.sep + botname + os.sep + 'config')
    cfg.type = "sxmpp"
    cfg.botname = botname
    if not opts:
        cfg.user = ""
        cfg.host = ""
        cfg.password = ""
        cfg.server = ""
        cfg.jid = ""
        cfg.owner = []
        cfg.loglevel = "warn"
        return cfg
    if opts.user: cfg.user = opts.user
    else: cfg.user = cfg.user or "*****@*****.**" % cfg.uuid
    if opts.user:
        try:
            cfg.host = opts.user.split('@')[1]
        except ValueError:
            print "user is not in the nick@server format"
    if not cfg.host:
        try:
            cfg.host = cfg.user.split('@')[1]
        except ValueError:
            print "user is not in the nick@server format"
    if opts.password: cfg.password = opts.password
    if opts.server: cfg.server = opts.server
    else: cfg.server = cfg.server or "localhost"
    if opts.name: cfg.jid = opts.name
    if not cfg.owner: cfg.owner = []
    if opts.owner and opts.owner not in cfg.owner: cfg.owner.append(opts.owner)
    return cfg
Esempio n. 10
0
def makesxmppconfig(opts=None, botname=None, type="sxmpp"):
    """ make config file based on options. """
    if not opts: botname = botname or "default-%s" % type
    else:
        if not botname: botname = opts.name or "default-%s" % type
    botname = stripname(botname)
    from jsb.lib.config import Config, makedefaultconfig
    cfg = Config('fleet' + os.sep + botname + os.sep + 'config')
    cfg.type = type
    cfg.name = botname
    if not opts:
        cfg.user = cfg.user or ""
        cfg.host = cfg.host or ""
        cfg.password = cfg.password or ""
        cfg.server = cfg.server or ""
        cfg.owner = cfg.owner or []
        cfg.loglevel = cfg.lowlevel or "warn"
        cfg.nick = cfg.nick or "jsb"
        cfg.channels = []
        cfg.openfire = False
        return cfg
    if opts.openfire:
        cfg.openfire = True
        logging.warn("openfire mode is enabled")
    else:
        cfg.openfire = False
        logging.warn("openfire mode is disabled")
    if opts.doregister:
        cfg.doregister = True
        logging.warn("register mode is enabled")
    else:
        cfg.doregister = False
        logging.warn("register mode is disabled")
    if opts.enable:
        cfg.disable = 0
        logging.warn("enabling %s bot in %s" % (botname, cfg.cfile))
    if not cfg.channels: cfg.channels = []
    if opts.user: cfg.user = opts.user
    if not cfg.user:
        raise NoUserProvided(
            "user is not provided .. try giving the -u option to the bot (and maybe -p as well) or run jsb-init and edit %s"
            % cfg.cfile)
    if opts.user:
        try:
            cfg.host = opts.user.split('@')[1]
        except (IndexError, ValueError):
            print "user is not in the nick@server format"
    if not cfg.host:
        try:
            cfg.host = cfg.user.split('@')[1]
        except (IndexError, ValueError):
            print "user is not in the nick@server format"
    if opts.password: cfg.password = opts.password
    if opts.server: cfg.server = opts.server
    else: cfg.server = cfg.server or ""
    if opts.name: cfg.jid = opts.name
    if not cfg.owner: cfg.owner = []
    if opts.owner and opts.owner not in cfg.owner: cfg.owner.append(opts.owner)
    if not cfg.owner:
        raise NoOwnerSet(
            "try using the -o option or run jsb-init and edit %s" % cfg.cfile)
    if opts.nick: cfg.nick = opts.nick
    else: cfg.nick = cfg.nick or "jsb"
    if opts.channel:
        if not opts.channel in cfg.channels: cfg.channels.append(opts.channel)
    else: cfg.channels = cfg.channels or []
    return cfg