Exemplo n.º 1
0
def search(search_domain, fmt=None):
    """Handle redirect from form submit."""
    domain = tools.parse_post_data(search_domain)

    if domain is None:
        return handle_invalid_domain(search_domain)

    if fmt is None:
        if features.enable_async_search():
            return flask.redirect('/search?ed={}'.format(search_domain))
        else:
            return html_render(domain)
    elif fmt == 'json':
        return json_render(domain)
    elif fmt == 'csv':
        return csv_render(domain)
    else:
        flask.abort(400, 'Unknown export format: {}'.format(fmt))
Exemplo n.º 2
0
def search_async():
    """New endpoint supporting async search."""
    encoded_domain_parameter = flask.request.args.get('ed')

    domain_parameter = tools.parse_domain(encoded_domain_parameter)
    if domain_parameter is None:
        return handle_invalid_domain(encoded_domain_parameter)

    if not features.enable_async_search():
        return flask.redirect('/search/{}'.format(encoded_domain_parameter))

    return flask.render_template(
        'www/search.html',
        domain=domain_parameter,
        exports={
            'json': 'json',
            'csv': 'csv'
        },
        allow_email_subs=features.enable_emails(),
    )
Exemplo n.º 3
0
def search_post():
    """Handle form submit."""
    try:
        post_data = flask.request.form['domains']
    except KeyError:
        app.logger.info('Missing "domains" key from POST: {}'.format(
            flask.request.form))
        return flask.redirect('/error/2')

    if post_data is None or post_data.strip() == '':
        app.logger.info('No data in "domains" key in POST')
        return flask.redirect('/error/2')

    search_parameter = tools.encode_domain(post_data)

    if search_parameter is None:
        app.logger.info('Invalid POST Unicode data:{}'.format(repr(post_data)))
        return flask.redirect('/error/0')

    if features.enable_async_search():
        return flask.redirect('/search?ed={}'.format(search_parameter))
    else:
        return flask.redirect('/search/{}'.format(search_parameter))