Example #1
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
Example #2
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.'
Example #3
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.'
Example #4
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'
Example #5
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'
Example #6
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)
Example #7
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)
Example #8
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.'
Example #9
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
Example #10
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.'
Example #11
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
Example #12
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.'
Example #13
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
Example #14
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.'
Example #15
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.'
Example #16
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
Example #17
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.'
Example #18
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
Example #19
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.'
Example #20
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.'