summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2010-02-07 09:57:26 -0600
committerDan McGee <dan@archlinux.org>2010-02-08 21:01:15 -0600
commit8c077a4caa73c7e4a5e148195f1d6d3cdae572cf (patch)
treec69b42fdf68773894baf45b1f1feefe1f20eb849 /packages
parentf445754db57f37dcb1821a9330aa238632457146 (diff)
downloadarchweb-8c077a4caa73c7e4a5e148195f1d6d3cdae572cf.tar.gz
archweb-8c077a4caa73c7e4a5e148195f1d6d3cdae572cf.zip
Add OpenSearch support to the site
Implements FS#14185. It is a bit more complex than listed there as I wanted to not hardcode the URLs in the descriptor file; to do this we need to make it a template and fill some things in. We also need to serve the file using the correct mime type. Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'packages')
-rw-r--r--packages/views.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/packages/views.py b/packages/views.py
index a514617d..910af94a 100644
--- a/packages/views.py
+++ b/packages/views.py
@@ -3,7 +3,7 @@ from django import forms
from django.core.mail import send_mail
from django.shortcuts import render_to_response
from django.template import loader, Context, RequestContext
-from django.http import HttpResponseRedirect
+from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import get_object_or_404
from django.contrib.auth.models import User
from django.contrib.auth.decorators import permission_required
@@ -15,6 +15,18 @@ from archweb.main.models import Package, PackageFile
from archweb.main.models import Arch, Repo, Signoff
from archweb.main.utils import make_choice
+def opensearch(request):
+ if request.is_secure():
+ d = "https://%s" % request.META['HTTP_HOST']
+ else:
+ d = "http://%s" % request.META['HTTP_HOST']
+ response = HttpResponse(mimetype='application/opensearchdescription+xml')
+ t = loader.get_template('packages/opensearch.xml')
+ c = Context({
+ 'domain': d,
+ })
+ response.write(t.render(c))
+ return response
@permission_required('main.change_package')
def update(request):