Beispiel #1
0
def new_tab(args):
    prefix, window_id = parse_prefix_and_window_id(args.prefix_window_id)
    search_query = ' '.join(args.query)
    brotab_logger.info('Opening search for "%s", prefix "%s", window_id "%s"',
                search_query, prefix, window_id)
    url = "https://www.google.com/search?q=%s" % quote_plus(search_query)
    api = MultipleMediatorsAPI(create_clients(args.target_hosts))
    api.open_urls([url], prefix, window_id)
Beispiel #2
0
def close_tabs(args):
    # Try stdin if arguments are empty
    tab_ids = args.tab_ids
    if len(args.tab_ids) == 0:
        tab_ids = split_tab_ids(read_stdin().strip())

    brotab_logger.info('Closing tabs: %s', tab_ids)
    api = MultipleMediatorsAPI(create_clients(args.target_hosts))
    tabs = api.close_tabs(tab_ids)
Beispiel #3
0
def query_tabs(args):
    brotab_logger.info('Querying tabs: %s', args)
    d = vars(args)
    if d['info'] is not None:
        queryInfo = d['info']
    else:
        queryInfo = {k: v for k, v in d.items() if v is not None and k not in ['func', 'info']}
    api = MultipleMediatorsAPI(create_clients(args.target_hosts))
    for tab in api.query_tabs(queryInfo):
        print(tab)
Beispiel #4
0
def list_tabs(args):
    """
    Use this to show duplicates:
        bt list | sort -k3 | uniq -f2 -D | cut -f1 | bt close
    """
    brotab_logger.info('Listing tabs')
    api = MultipleMediatorsAPI(create_clients(args.target_hosts))
    tabs = api.list_tabs([])
    message = '\n'.join(tabs) + '\n'
    sys.stdout.buffer.write(message.encode('utf8'))
Beispiel #5
0
def get_words(args):
    # return tab.execute({javascript: "
    # [...new Set(document.body.innerText.match(/\w+/g))].sort().join('\n');
    # "})
    import time
    start = time.time()
    logger.info('Get words from tabs: %s', args.tab_ids)
    api = MultipleMediatorsAPI(create_clients())
    words = api.get_words(args.tab_ids)
    print('\n'.join(words))
    delta = time.time() - start
Beispiel #6
0
def get_words(args):
    # return tab.execute({javascript: "
    # [...new Set(document.body.innerText.match(/\w+/g))].sort().join('\n');
    # "})
    start = time.time()
    brotab_logger.info('Get words from tabs: %s, match_regex=%s, join_with=%s',
                args.tab_ids, args.match_regex, args.join_with)
    api = MultipleMediatorsAPI(create_clients(args.target_hosts))
    words = api.get_words(args.tab_ids, args.match_regex, args.join_with)
    print('\n'.join(words))
    delta = time.time() - start
Beispiel #7
0
def close_tabs(args):
    #urls = [line.strip() for line in sys.stdin.readlines()]

    # Try stdin if arguments are empty
    tab_ids = args.tab_ids
    # print(read_stdin())
    if len(args.tab_ids) == 0:
        tab_ids = split_tab_ids(read_stdin().strip())

    logger.info('Closing tabs: %s', tab_ids)
    #api = MultipleMediatorsAPI([SingleMediatorAPI('f')])
    api = MultipleMediatorsAPI(create_clients(args))
    tabs = api.close_tabs(tab_ids)
Beispiel #8
0
def open_urls(args):
    """
    curl -X POST 'http://*****:*****@urls.txt'
    curl -X POST 'http://*****:*****@urls.txt' -F 'window_id=749'

    where urls.txt containe one url per line (not JSON)
    """
    prefix, window_id = parse_prefix_and_window_id(args.prefix_window_id)
    urls = [line.strip() for line in sys.stdin.readlines()]
    brotab_logger.info('Opening URLs from stdin, prefix "%s", window_id "%s": %s',
                prefix, window_id, urls)
    api = MultipleMediatorsAPI(create_clients(args.target_hosts))
    api.open_urls(urls, prefix, window_id)
Beispiel #9
0
def list_tabs(args):
    """
    Use this to show duplicates:
        bt list | sort -k3 | uniq -f2 -D | cut -f1 | bt close
    """
    logger.info('Listing tabs')
    api = MultipleMediatorsAPI(create_clients(args))
    tabs = api.list_tabs([])
    #print('\n'.join([tab.encode('utf8') for tab in tabs]))
    # print(u'\n'.join(tabs).encode('utf8'))
    # print(u'\n'.join(tabs))

    message = '\n'.join(tabs) + '\n'
    sys.stdout.buffer.write(message.encode('utf8'))
Beispiel #10
0
def get_text(args):
    logger.info('Get text from tabs')
    api = MultipleMediatorsAPI(create_clients(args))
    tabs = api.get_text([], args.delimiter_regex, args.replace_with)

    if args.cleanup:
        pattern = re.compile(r'\s+')
        old_tabs = tabs
        tabs = []
        for line in old_tabs:
            tab_id, title, url, text = line.split('\t')
            text = re.sub(pattern, ' ', text)
            tabs.append('\t'.join([tab_id, title, url, text]))

    message = '\n'.join(tabs) + '\n'
    if args.tsv is None:
        sys.stdout.buffer.write(message.encode('utf8'))
    else:
        with open(args.tsv, 'w') as file_:
            file_.write(message)
Beispiel #11
0
def return_tabs():
    logger.info('Listing tabs')
    api = MultipleMediatorsAPI(create_clients())
    tabs = api.list_tabs([])
    return tabs
Beispiel #12
0
def show_windows(args):
    brotab_logger.info('Showing windows')
    api = MultipleMediatorsAPI(create_clients(args.target_hosts))
    tabs = api.list_tabs([])
    _print_available_windows(tabs)
Beispiel #13
0
def get_html(args):
    brotab_logger.info('Get html from tabs')
    api = MultipleMediatorsAPI(create_clients(args.target_hosts))
    return get_text_or_html(api.get_html, args)
Beispiel #14
0
def move_tabs(args):
    logger.info('Moving tabs')
    api = MultipleMediatorsAPI(create_clients(args))
    api.move_tabs([])
Beispiel #15
0
def activate_tab(prefix):
    api = MultipleMediatorsAPI(create_clients())
    api.activate_tab([prefix], True)
Beispiel #16
0
def activateFocus_tab(args):
    logger.info('Activating tab: %s', args.tab_id)
    #api = MultipleMediatorsAPI([SingleMediatorAPI('f')])
    api = MultipleMediatorsAPI(create_clients(args))
    api.activateFocus_tab(args.tab_id)
Beispiel #17
0
def move_tabs(args):
    brotab_logger.info('Moving tabs')
    api = MultipleMediatorsAPI(create_clients(args.target_hosts))
    api.move_tabs([])
Beispiel #18
0
def get_api():
    clients = create_clients()
    return MultipleMediatorsAPI(clients)
Beispiel #19
0
def close_tab(prefix):
    # Try stdin if arguments are empty
    logger.info('Closing tabs: %s', prefix)
    api = MultipleMediatorsAPI(create_clients())
    api.close_tabs([prefix])
Beispiel #20
0
def activate_tab(args):
    brotab_logger.info('Activating tab: %s', args.tab_id)
    api = MultipleMediatorsAPI(create_clients(args.target_hosts))
    api.activate_tab(args.tab_id, args.focused)