예제 #1
0
def show_help(commands):
    print("CloudMapper {}".format(__version__))
    print("usage: {} [{}] [...]".format(sys.argv[0],
                                        "|".join(sorted(commands.keys()))))
    for command, module in sorted(commands.items()):
        print("  {}: {}".format(command, module.__description__))
    exit(-1)
예제 #2
0
def selectDefaultInterface():
    global config
    commands = {
        'ip' :      "ip route show | grep default | awk '{print $5}' | head -1",
        'ifconfig': "route -n | grep 0.0.0.0 | grep 'UG' | awk '{print $8}' | head -1",
    }

    for k, v in commands.items():
        out = shell(v)
        if len(out) > 0:
            Logger.dbg('Default interface lookup command returned:\n{}'.format(out))
            config['interface'] = out
            return out

    return ''
예제 #3
0
def init():
    global api, updater, config
    init_logs()
    load_config()
    api = twitter.Api(consumer_key=config["twitter"]["consumerKey"],
                      consumer_secret=config["twitter"]["consumerSecret"],
                      access_token_key=config["twitter"]["accessTokenKey"],
                      access_token_secret=config["twitter"]["accessTokenSecret"],
                      tweet_mode="extended")
    updater = Updater(config["telegram"]["token"], use_context=True)
    queue = updater.job_queue
    queue.run_repeating(jobs.main_job, interval=60, first=0)
    for cmd, callback in commands.items():
        handler = CommandHandler(cmd, callback)
        updater.dispatcher.add_handler(handler)
    updater.start_polling()
예제 #4
0
def get_bot(token):
    assert type(token) == str
    assert len(token) > 0
    return telegram.Bot(token)


def get_updater(token):
    return Updater(token=token)


if __name__ == '__main__':
    logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level = logging.INFO)

    redis_config = config_reader.get_redis_address_from_config(default_config_filename)
    redis_client = redis.StrictRedis(host=redis_config['ip'],
                                     port=redis_config['port'],
                                     db=0)

    token = config_reader.get_token_from_config(default_config_filename)
    bot = get_bot(token)
    updater = get_updater(token)

    commands = commands.get_commands(redis_client)

    dispatcher = updater.dispatcher
    for name, func in commands.items():
        handler = CommandHandler(name, func)
        dispatcher.add_handler(handler)

    updater.start_polling()