From 8abf4ab993cd4a81dc97f85fb8a30a6c875221f7 Mon Sep 17 00:00:00 2001 From: Thomas Pointhuber Date: Thu, 20 Mar 2014 10:28:24 +0100 Subject: adding initial code for backend-part of autocompleter including test-code --- searx/webapp.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'searx/webapp.py') diff --git a/searx/webapp.py b/searx/webapp.py index 2f6aa4abe..e818ae710 100644 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -221,6 +221,24 @@ def about(): return render('about.html') +@app.route('/autocompleter', methods=['GET', 'POST']) +def autocompleter(): + """Return autocompleter results""" + request_data = {} + + if request.method == 'POST': + request_data = request.form + else: + request_data = request.args + + # TODO fix XSS-vulnerability, remove test code + autocompleter.querry = request_data.get('q') + autocompleter.results = [autocompleter.querry] + + return Response(json.dumps(autocompleter.results), + mimetype='application/json') + + @app.route('/preferences', methods=['GET', 'POST']) def preferences(): """Render preferences page. -- cgit v1.2.3 From cc7f3cb61798463036a886ae5f0ccd06aca5e625 Mon Sep 17 00:00:00 2001 From: Thomas Pointhuber Date: Thu, 20 Mar 2014 15:39:17 +0100 Subject: initial implemention of autocompletion in opensearch.xml --- searx/webapp.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'searx/webapp.py') diff --git a/searx/webapp.py b/searx/webapp.py index e818ae710..3034b2153 100644 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -233,10 +233,17 @@ def autocompleter(): # TODO fix XSS-vulnerability, remove test code autocompleter.querry = request_data.get('q') - autocompleter.results = [autocompleter.querry] - - return Response(json.dumps(autocompleter.results), - mimetype='application/json') + autocompleter.results = [] + + if autocompleter.querry: + autocompleter.results = [autocompleter.querry + "-searx",autocompleter.querry + " asfded",autocompleter.querry + " asdf"] + + if request_data.get('format') == 'x-suggestions': + return Response(json.dumps([autocompleter.querry,autocompleter.results]), + mimetype='application/json') + else: + return Response(json.dumps(autocompleter.results), + mimetype='application/json') @app.route('/preferences', methods=['GET', 'POST']) -- cgit v1.2.3 From c8cf95aa56590800c4f2d39a39d0a70537e7382e Mon Sep 17 00:00:00 2001 From: Thomas Pointhuber Date: Fri, 21 Mar 2014 11:11:31 +0100 Subject: deactivate autocompleter by default --- searx/webapp.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'searx/webapp.py') diff --git a/searx/webapp.py b/searx/webapp.py index 3034b2153..b60b889e5 100644 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -120,12 +120,18 @@ def index(): """ if not request.args and not request.form: - return render('index.html') + return render( + 'index.html', + client=settings['client'] + ) try: search = Search(request) except: - return render('index.html') + return render( + 'index.html', + client=settings['client'] + ) # TODO moar refactor - do_search integration into Search class search.results, search.suggestions = do_search(search.query, @@ -206,6 +212,7 @@ def index(): return render( 'results.html', results=search.results, + client=settings['client'], q=search.request_data['q'], selected_categories=search.categories, paging=search.paging, @@ -231,12 +238,14 @@ def autocompleter(): else: request_data = request.args - # TODO fix XSS-vulnerability, remove test code + # TODO fix XSS-vulnerability autocompleter.querry = request_data.get('q') autocompleter.results = [] - if autocompleter.querry: - autocompleter.results = [autocompleter.querry + "-searx",autocompleter.querry + " asfded",autocompleter.querry + " asdf"] + if settings['client']['autocompleter']: + #TODO remove test code and add real autocompletion + if autocompleter.querry: + autocompleter.results = [autocompleter.querry + " result-1",autocompleter.querry + " result-2",autocompleter.querry + " result-3",autocompleter.querry + " result-4"] if request_data.get('format') == 'x-suggestions': return Response(json.dumps([autocompleter.querry,autocompleter.results]), @@ -344,7 +353,7 @@ def opensearch(): # chrome/chromium only supports HTTP GET.... if request.headers.get('User-Agent', '').lower().find('webkit') >= 0: method = 'get' - ret = render('opensearch.xml', method=method, host=get_base_url()) + ret = render('opensearch.xml', method=method, host=get_base_url(),client=settings['client']) resp = Response(response=ret, status=200, mimetype="application/xml") -- cgit v1.2.3 From 71c6124f7b86282f1b0d5cb45c6d9df0f71ba398 Mon Sep 17 00:00:00 2001 From: Thomas Pointhuber Date: Fri, 21 Mar 2014 11:29:10 +0100 Subject: fix little bug to allow webapp.py without client var --- searx/webapp.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'searx/webapp.py') diff --git a/searx/webapp.py b/searx/webapp.py index b60b889e5..6a6ebddb2 100644 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -122,7 +122,7 @@ def index(): if not request.args and not request.form: return render( 'index.html', - client=settings['client'] + client=settings.get('client', None) ) try: @@ -130,7 +130,7 @@ def index(): except: return render( 'index.html', - client=settings['client'] + client=settings.get('client', None) ) # TODO moar refactor - do_search integration into Search class @@ -212,7 +212,7 @@ def index(): return render( 'results.html', results=search.results, - client=settings['client'], + client=settings.get('client', None), q=search.request_data['q'], selected_categories=search.categories, paging=search.paging, -- cgit v1.2.3 From a76525d1f3256105d45ee0a0f1301a8cc0b2e4c6 Mon Sep 17 00:00:00 2001 From: Thomas Pointhuber Date: Fri, 21 Mar 2014 12:19:48 +0100 Subject: add client var to all render pages --- searx/webapp.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'searx/webapp.py') diff --git a/searx/webapp.py b/searx/webapp.py index 6a6ebddb2..ab5806381 100644 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -225,7 +225,10 @@ def index(): @app.route('/about', methods=['GET']) def about(): """Render about page""" - return render('about.html') + return render( + 'about.html', + client=settings.get('client', None) + ) @app.route('/autocompleter', methods=['GET', 'POST']) @@ -320,6 +323,7 @@ def preferences(): ) return resp return render('preferences.html', + client=settings.get('client', None), locales=settings['locales'], current_locale=get_locale(), current_language=lang or 'all', @@ -334,7 +338,11 @@ def stats(): """Render engine statistics page.""" global categories stats = get_engines_stats() - return render('stats.html', stats=stats) + return render( + 'stats.html', + stats=stats, + client=settings.get('client', None) + ) @app.route('/robots.txt', methods=['GET']) -- cgit v1.2.3