Преглед на файлове

Merge pull request #61 from matejc/optional_search_get

Optional search get
Adam Tauber преди 11 години
родител
ревизия
44d3af9fb2
променени са 5 файла, в които са добавени 30 реда и са изтрити 6 реда
  1. 9
    0
      searx/templates/preferences.html
  2. 4
    4
      searx/templates/results.html
  3. 1
    1
      searx/templates/search.html
  4. 7
    0
      searx/webapp.py
  5. 9
    1
      versions.cfg

+ 9
- 0
searx/templates/preferences.html Целия файл

44
         </p>
44
         </p>
45
     </fieldset>
45
     </fieldset>
46
     <fieldset>
46
     <fieldset>
47
+        <legend>{{ _('Method') }}</legend>
48
+        <p>
49
+        <select name='method'>
50
+            <option value="POST" {% if method == 'POST' %}selected="selected"{% endif %}>POST</option>
51
+            <option value="GET" {% if method == 'GET' %}selected="selected"{% endif %}>GET</option>
52
+        </select>
53
+        </p>
54
+    </fieldset>
55
+    <fieldset>
47
     <legend>{{ _('Currently used search engines') }}</legend>
56
     <legend>{{ _('Currently used search engines') }}</legend>
48
 
57
 
49
     <table>
58
     <table>

+ 4
- 4
searx/templates/results.html Целия файл

10
         {% if suggestions %}
10
         {% if suggestions %}
11
         <div id="suggestions"><span>{{ _('Suggestions') }}</span>
11
         <div id="suggestions"><span>{{ _('Suggestions') }}</span>
12
             {% for suggestion in suggestions %}
12
             {% for suggestion in suggestions %}
13
-            <form method="post" action="{{ url_for('index') }}">
13
+            <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
14
                 <input type="hidden" name="q" value="{{ suggestion }}">
14
                 <input type="hidden" name="q" value="{{ suggestion }}">
15
                 <input type="submit" value="{{ suggestion }}" />
15
                 <input type="submit" value="{{ suggestion }}" />
16
             </form>
16
             </form>
25
         <div id="apis">
25
         <div id="apis">
26
         {{ _('Download results') }}
26
         {{ _('Download results') }}
27
         {% for output_type in ('csv', 'json', 'rss') %}
27
         {% for output_type in ('csv', 'json', 'rss') %}
28
-        <form method="post" action="{{ url_for('index') }}">
28
+        <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
29
             <div class="left">
29
             <div class="left">
30
             <input type="hidden" name="q" value="{{ q }}" />
30
             <input type="hidden" name="q" value="{{ q }}" />
31
             <input type="hidden" name="format" value="{{ output_type }}" />
31
             <input type="hidden" name="format" value="{{ output_type }}" />
52
     {% if paging %}
52
     {% if paging %}
53
     <div id="pagination">
53
     <div id="pagination">
54
         {% if pageno > 1 %}
54
         {% if pageno > 1 %}
55
-            <form method="post" action="{{ url_for('index') }}">
55
+            <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
56
                 <div class="left">
56
                 <div class="left">
57
                 <input type="hidden" name="q" value="{{ q }}" />
57
                 <input type="hidden" name="q" value="{{ q }}" />
58
                 {% for category in selected_categories %}
58
                 {% for category in selected_categories %}
63
                 </div>
63
                 </div>
64
             </form>
64
             </form>
65
         {% endif %}
65
         {% endif %}
66
-        <form method="post" action="{{ url_for('index') }}">
66
+        <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
67
             <div class="left">
67
             <div class="left">
68
             {% for category in selected_categories %}
68
             {% for category in selected_categories %}
69
             <input type="hidden" name="category_{{ category }}" value="1"/>
69
             <input type="hidden" name="category_{{ category }}" value="1"/>

+ 1
- 1
searx/templates/search.html Целия файл

1
-<form method="post" action="{{ url_for('index') }}" id="search_form">
1
+<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" id="search_form">
2
   <div id="search_wrapper">
2
   <div id="search_wrapper">
3
     <input type="text" placeholder="{{ _('Search for...') }}" id="q" class="q" name="q" tabindex="1" autocomplete="off" {% if q %}value="{{ q }}"{% endif %}/>
3
     <input type="text" placeholder="{{ _('Search for...') }}" id="q" class="q" name="q" tabindex="1" autocomplete="off" {% if q %}value="{{ q }}"{% endif %}/>
4
     <input type="submit" value="search" id="search_submit" />
4
     <input type="submit" value="search" id="search_submit" />

+ 7
- 0
searx/webapp.py Целия файл

123
     if not 'autocomplete' in kwargs:
123
     if not 'autocomplete' in kwargs:
124
         kwargs['autocomplete'] = autocomplete
124
         kwargs['autocomplete'] = autocomplete
125
 
125
 
126
+    kwargs['method'] = request.cookies.get('method', 'POST')
127
+
126
     return render_template(template_name, **kwargs)
128
     return render_template(template_name, **kwargs)
127
 
129
 
128
 
130
 
291
         selected_categories = []
293
         selected_categories = []
292
         locale = None
294
         locale = None
293
         autocomplete = ''
295
         autocomplete = ''
296
+        method = 'POST'
294
         for pd_name, pd in request.form.items():
297
         for pd_name, pd in request.form.items():
295
             if pd_name.startswith('category_'):
298
             if pd_name.startswith('category_'):
296
                 category = pd_name[9:]
299
                 category = pd_name[9:]
305
                                             pd in (x[0] for
308
                                             pd in (x[0] for
306
                                                    x in language_codes)):
309
                                                    x in language_codes)):
307
                 lang = pd
310
                 lang = pd
311
+            elif pd_name == 'method':
312
+                method = pd
308
             elif pd_name.startswith('engine_'):
313
             elif pd_name.startswith('engine_'):
309
                 engine_name = pd_name.replace('engine_', '', 1)
314
                 engine_name = pd_name.replace('engine_', '', 1)
310
                 if engine_name in engines:
315
                 if engine_name in engines:
344
                 max_age=cookie_max_age
349
                 max_age=cookie_max_age
345
             )
350
             )
346
 
351
 
352
+        resp.set_cookie('method', method, max_age=cookie_max_age)
353
+
347
         return resp
354
         return resp
348
     return render('preferences.html',
355
     return render('preferences.html',
349
                   locales=settings['locales'],
356
                   locales=settings['locales'],

+ 9
- 1
versions.cfg Целия файл

1
 [versions]
1
 [versions]
2
+Babel = 1.3
2
 Flask = 0.10.1
3
 Flask = 0.10.1
3
 Flask-Babel = 0.9
4
 Flask-Babel = 0.9
4
 Jinja2 = 2.7.2
5
 Jinja2 = 2.7.2
14
 flake8 = 2.1.0
15
 flake8 = 2.1.0
15
 itsdangerous = 0.23
16
 itsdangerous = 0.23
16
 mccabe = 0.2.1
17
 mccabe = 0.2.1
18
+mock = 1.0.1
17
 pep8 = 1.4.6
19
 pep8 = 1.4.6
18
 plone.testing = 4.0.8
20
 plone.testing = 4.0.8
19
 pyflakes = 0.7.3
21
 pyflakes = 0.7.3
22
+pytz = 2013b
20
 pyyaml = 3.10
23
 pyyaml = 3.10
21
 requests = 2.2.0
24
 requests = 2.2.0
22
 robotframework-debuglibrary = 0.3
25
 robotframework-debuglibrary = 0.3
24
 robotframework-selenium2library = 1.5.0
27
 robotframework-selenium2library = 1.5.0
25
 robotsuite = 1.4.2
28
 robotsuite = 1.4.2
26
 selenium = 2.39.0
29
 selenium = 2.39.0
30
+speaklater = 1.3
27
 unittest2 = 0.5.1
31
 unittest2 = 0.5.1
28
 waitress = 0.8.8
32
 waitress = 0.8.8
29
 zc.recipe.testrunner = 2.0.0
33
 zc.recipe.testrunner = 2.0.0
72
 
76
 
73
 # Required by:
77
 # Required by:
74
 # zope.testrunner==4.4.1
78
 # zope.testrunner==4.4.1
75
-six = 1.5.2
79
+six = 1.6.1
76
 
80
 
77
 # Required by:
81
 # Required by:
78
 # collective.recipe.omelette==0.16
82
 # collective.recipe.omelette==0.16
93
 # Required by:
97
 # Required by:
94
 # zc.recipe.testrunner==2.0.0
98
 # zc.recipe.testrunner==2.0.0
95
 zope.testrunner = 4.4.1
99
 zope.testrunner = 4.4.1
100
+
101
+# Required by:
102
+# searx==0.3.0
103
+python-dateutil = 2.2