diff options
author | Dan McGee <dan@archlinux.org> | 2010-02-07 09:57:26 -0600 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2010-02-08 21:01:15 -0600 |
commit | 8c077a4caa73c7e4a5e148195f1d6d3cdae572cf (patch) | |
tree | c69b42fdf68773894baf45b1f1feefe1f20eb849 /packages | |
parent | f445754db57f37dcb1821a9330aa238632457146 (diff) |
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.py | 14 |
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): |