Exemplo n.º 1
0
def add_bridge(bot, command, args_array, bridge):
    parser = ArgumentParser(prog=command)
    parser.add_argument('xmpp_room_jid', type=str)
    parser.add_argument('irc_chan', type=str)
    parser.add_argument('irc_server', type=str)
    parser.add_argument('--mode',
                        choices=Bridge.modes,
                        default=Bridge.modes[0])
    parser.add_argument('--say-level',
                        choices=say_levels.levels,
                        default=say_levels.levels[1])
    parser.add_argument('--irc-port', type=int, default=6667)
    try:
        args = parser.parse_args(args_array)
    except Exception as e:
        return '\n' + e.args[1]

    bot.new_bridge(args.xmpp_room_jid,
                   args.irc_chan,
                   args.irc_server,
                   args.mode,
                   args.say_level,
                   irc_port=args.irc_port)

    return 'Bridge added.'
Exemplo n.º 2
0
def bridges(bot, command, args_array, bridge):
    parser = ArgumentParser(prog=command)
    parser.add_argument('--show-mode', default=False, action='store_true')
    parser.add_argument('--show-say-level', default=False, action='store_true')
    parser.add_argument('--show-participants',
                        default=False,
                        action='store_true')
    try:
        args = parser.parse_args(args_array)
    except Exception as e:
        return '\n' + e.args[1]
    ret = 'List of bridges:'
    for i, b in enumerate(bot.bridges):
        ret += '\n' + str(i + 1) + ' - ' + str(b)
        if args.show_mode:
            ret += ' - mode=' + b.mode
        if args.show_say_level:
            ret += ' - say_level=' + str(b.say_level)
        if args.show_participants:
            xmpp_participants_nicknames = b.get_participants_nicknames_list(
                protocols=['xmpp'])
            ret += '\nparticipants on XMPP (' + str(
                len(xmpp_participants_nicknames)) + '): ' + ' '.join(
                    xmpp_participants_nicknames)
            irc_participants_nicknames = b.get_participants_nicknames_list(
                protocols=['irc'])
            ret += '\nparticipants on IRC (' + str(
                len(irc_participants_nicknames)) + '): ' + ' '.join(
                    irc_participants_nicknames)
        if b.irc_connection == None:
            ret += ' - this bridge is stopped, use "restart-bridges ' + str(
                i + 1) + '" to restart it'
    return ret
Exemplo n.º 3
0
def connections(bot, command, args_array, bridge):
    parser = ArgumentParser(prog=command)
    parser.add_argument('--verbose', '-v', default=False, action='store_true')
    parser.add_argument('--sort', '-s', default=False, action='store_true')
    try:
        args = parser.parse_args(args_array)
    except Exception as e:
        return '\n' + e.args[1]
    return irc_connections(bot, 'irc-connections', args_array,
                           bridge) + '\n' + xmpp_connections(
                               bot, 'xmpp-connections', args_array, bridge)
Exemplo n.º 4
0
def stop_bridges(bot, command, args_array, bridge):
    parser = ArgumentParser(prog=command)
    parser.add_argument('bridge_id', nargs='+')
    try:
        args = parser.parse_args(args_array)
    except Exception as e:
        return '\n' + e.args[1]

    found_bridges, ret = _find_bridges(bot, args.bridge_id)
    for found_bridge in found_bridges:
        found_bridge.stop()

    return ret + 'Bridges stopped.'
Exemplo n.º 5
0
def change_bridges_mode(bot, command, args_array, bridge):
    parser = ArgumentParser(prog=command)
    parser.add_argument('bridge_id', nargs='+')
    parser.add_argument('new_mode', choices=Bridge.modes)
    try:
        args = parser.parse_args(args_array)
    except Exception as e:
        return '\n' + e.args[1]

    found_bridges, ret = _find_bridges(bot, args.bridge_id)
    for found_bridge in found_bridges:
        r = found_bridge.change_mode(args.new_mode)
        if r:
            ret += r + '\n'

    if ret:
        return ret
    return 'Modes changed.'
Exemplo n.º 6
0
def xmpp_connections(bot, command, args_array, bridge):
    parser = ArgumentParser(prog=command)
    parser.add_argument('--verbose', '-v', default=False, action='store_true')
    parser.add_argument('--sort', '-s', default=False, action='store_true')
    try:
        args = parser.parse_args(args_array)
    except Exception as e:
        return '\n' + e.args[1]
    n = len(bot.xmpp_connections)
    if args.verbose:
        ret = 'List of XMPP connections (' + str(n) + '):'
        nicknames = bot.xmpp_connections.keys()
        if args.sort:
            nicknames.sort()
        for nickname in nicknames:
            ret += '\n\t' + nickname
    else:
        ret = 'Number of XMPP connections: ' + str(n)
    return ret
Exemplo n.º 7
0
def restart_bridges(bot, command, args_array, bridge):
    parser = ArgumentParser(prog=command)
    parser.add_argument('bridge_id', nargs='+')
    parser.add_argument('--soft', default=False, action='store_true')
    try:
        args = parser.parse_args(args_array)
    except Exception as e:
        return '\n' + e.args[1]

    found_bridges, ret = _find_bridges(bot, args.bridge_id)

    if args.soft:
        for found_bridge in found_bridges:
            found_bridge.soft_restart()
        return ret + 'Bridges softly restarted.'

    else:
        for found_bridge in found_bridges:
            found_bridge.restart()
        return ret + 'Bridges restarted.'
Exemplo n.º 8
0
def debug(bot, command, args_array, bridge):
    parser = ArgumentParser(prog=command)
    parser.add_argument('mode', choices=['on', 'off'])
    try:
        args = parser.parse_args(args_array)
    except Exception as e:
        if len(args_array) == 0:
            if bot.debug:
                return 'Debugging is on'
            else:
                return 'Debugging is off'
        else:
            return '\n' + e.args[1]

    if args.mode == 'on':
        bot.debug = True
        return 'Debugging is now on'
    else:
        bot.debug = False
        return 'Debugging is now off'
Exemplo n.º 9
0
def irc_connections(bot, command, args_array, bridge):
    parser = ArgumentParser(prog=command)
    parser.add_argument('--verbose', '-v', default=False, action='store_true')
    parser.add_argument('--sort', '-s', default=False, action='store_true')
    try:
        args = parser.parse_args(args_array)
    except Exception as e:
        return '\n' + e.args[1]
    n = len(bot.irc.connections)
    if args.verbose:
        ret = 'List of IRC connections (' + str(n) + '):'
        if args.sort:
            connections = [str(c) for c in bot.irc.connections]
            connections.sort()
        else:
            connections = bot.irc.connections
        for c in connections:
            ret += '\n\t' + str(c)
    else:
        ret = 'Number of IRC connections: ' + str(n)
    return ret
Exemplo n.º 10
0
def add_xmpp_admin(bot, command, args_array, bridge):
    parser = ArgumentParser(prog=command)
    parser.add_argument('jid', type=str)
    parser.add_argument('--say-level',
                        choices=say_levels.levels,
                        default=say_levels.levels[1])
    try:
        args = parser.parse_args(args_array)
    except Exception as e:
        return '\n' + e.args[1]
    admin = Admin()
    admin.jid = args.jid
    admin.say_level = args.say_level
    bot.admins.append(admin)
    for b in bot.bridges:
        for p in b.participants:
            if p.real_jid != None and xmpp.protocol.JID(args.jid).bareMatch(
                    p.real_jid):
                p.bot_admin = True

    return 'XMPP admin added.'