@@ -22,7 +22,7 @@ if __name__ == "__main__":
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__))+'/../'))
25−from flask import Flask, request, flash, render_template
25+from flask import Flask, request, flash, render_template, url_for, Response
26import ConfigParser
26import ConfigParser
27from os import getenv
27from os import getenv
28from searx.engines import search, engines
28from searx.engines import search, engines
@@ -37,6 +37,18 @@ cfg.read('searx.conf')
37app = Flask(__name__)
37app = Flask(__name__)
38app.secret_key = cfg.get('app', 'secret_key')
38app.secret_key = cfg.get('app', 'secret_key')
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}}" />
49+</OpenSearchDescription>
40def render(template_name, **kwargs):
52def 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,6 +70,19 @@ def index():
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')
73+@app.route('/favicon.ico', methods=['GET'])
77+@app.route('/opensearch.xml', methods=['GET'])
79+ global opensearch_xml
80+ ret = opensearch_xml.format(host=url_for('index', _external=True))
81+ resp = Response(response=ret,
83+ mimetype="application/xml")
61if __name__ == "__main__":
86if __name__ == "__main__":
62 from gevent import monkey
87 from gevent import monkey
63 monkey.patch_all()
88 monkey.patch_all()