Selaa lähdekoodia

[enh] opensearch xml added

asciimoo 12 vuotta sitten
vanhempi
commit
6bddaf5702
2 muutettua tiedostoa jossa 27 lisäystä ja 1 poistoa
  1. 1
    0
      searx/templates/base.html
  2. 26
    1
      searx/webapp.py

+ 1
- 0
searx/templates/base.html Näytä tiedosto

5
     <meta http-equiv="content-language" content="en" />
5
     <meta http-equiv="content-language" content="en" />
6
     <meta name="description" content="" />
6
     <meta name="description" content="" />
7
     <meta name="keywords" content="" />
7
     <meta name="keywords" content="" />
8
+    <link title="searx" type="application/opensearchdescription+xml" rel="search" href="/opensearch.xml"/>
8
     <title>searx {% block title %}{% endblock %}</title>
9
     <title>searx {% block title %}{% endblock %}</title>
9
     <link rel="stylesheet" href="/static/css/style.css" type="text/css" media="screen" charset="utf-8" />
10
     <link rel="stylesheet" href="/static/css/style.css" type="text/css" media="screen" charset="utf-8" />
10
     {% block styles %}
11
     {% block styles %}

+ 26
- 1
searx/webapp.py Näytä tiedosto

22
     from os.path import realpath, dirname
22
     from os.path import realpath, dirname
23
     path.append(realpath(dirname(realpath(__file__))+'/../'))
23
     path.append(realpath(dirname(realpath(__file__))+'/../'))
24
 
24
 
25
-from flask import Flask, request, flash, render_template
25
+from flask import Flask, request, flash, render_template, url_for, Response
26
 import ConfigParser
26
 import ConfigParser
27
 from os import getenv
27
 from os import getenv
28
 from searx.engines import search, engines
28
 from searx.engines import search, engines
37
 app = Flask(__name__)
37
 app = Flask(__name__)
38
 app.secret_key = cfg.get('app', 'secret_key')
38
 app.secret_key = cfg.get('app', 'secret_key')
39
 
39
 
40
+opensearch_xml = '''<?xml version="1.0" encoding="utf-8"?>
41
+<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
42
+  <ShortName>searx</ShortName>
43
+  <Description>Search searx</Description>
44
+  <InputEncoding>UTF-8</InputEncoding>
45
+  <LongName>searx meta search engine</LongName>
46
+  <Url type="text/html" method="post" template="{host}">
47
+    <Param name="q" value="{{searchTerms}}" />
48
+  </Url>
49
+</OpenSearchDescription>
50
+'''
51
+
40
 def render(template_name, **kwargs):
52
 def render(template_name, **kwargs):
41
     kwargs['engines'] = engines.keys()
53
     kwargs['engines'] = engines.keys()
42
     return render_template(template_name, **kwargs)
54
     return render_template(template_name, **kwargs)
58
         return render('results.html', results=results, q=query.decode('utf-8'))
70
         return render('results.html', results=results, q=query.decode('utf-8'))
59
     return render('index.html')
71
     return render('index.html')
60
 
72
 
73
+@app.route('/favicon.ico', methods=['GET'])
74
+def fav():
75
+    return ''
76
+
77
+@app.route('/opensearch.xml', methods=['GET'])
78
+def opensearch():
79
+    global opensearch_xml
80
+    ret = opensearch_xml.format(host=url_for('index', _external=True))
81
+    resp = Response(response=ret,
82
+                status=200,
83
+                mimetype="application/xml")
84
+    return resp
85
+
61
 if __name__ == "__main__":
86
 if __name__ == "__main__":
62
     from gevent import monkey
87
     from gevent import monkey
63
     monkey.patch_all()
88
     monkey.patch_all()