Add a view to download the torrent available for a given release
Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
4d52242f4b
commit
b642c93aff
@ -11,11 +11,18 @@
|
|||||||
(r'^iso/overview/$', 'iso_overview', {}, 'releng-iso-overview'),
|
(r'^iso/overview/$', 'iso_overview', {}, 'releng-iso-overview'),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
releases_patterns = patterns('releng.views',
|
||||||
|
(r'^$',
|
||||||
|
ReleaseListView.as_view(), {}, 'releng-release-list'),
|
||||||
|
(r'^(?P<version>[-.\w]+)/$',
|
||||||
|
ReleaseDetailView.as_view(), {}, 'releng-release-detail'),
|
||||||
|
(r'^(?P<version>[-.\w]+)/torrent/$',
|
||||||
|
'release_torrent', {}, 'releng-release-torrent'),
|
||||||
|
)
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
(r'^feedback/', include(feedback_patterns)),
|
(r'^feedback/', include(feedback_patterns)),
|
||||||
(r'^releases/$',
|
(r'^releases/', include(releases_patterns)),
|
||||||
ReleaseListView.as_view(), {}, 'releng-release-list'),
|
|
||||||
(r'^releases/(?P<version>[-.\w]+)/$',
|
|
||||||
ReleaseDetailView.as_view(), {}, 'releng-release-detail'),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# vim: set ts=4 sw=4 et:
|
# vim: set ts=4 sw=4 et:
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
|
from base64 import b64decode
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db.models import Count, Max
|
from django.db.models import Count, Max
|
||||||
from django.http import Http404
|
from django.http import Http404, HttpResponse
|
||||||
from django.shortcuts import get_object_or_404, redirect, render
|
from django.shortcuts import get_object_or_404, redirect, render
|
||||||
from django.views.generic import DetailView, ListView
|
from django.views.generic import DetailView, ListView
|
||||||
|
|
||||||
@ -224,4 +226,16 @@ class ReleaseDetailView(DetailView):
|
|||||||
slug_field = 'version'
|
slug_field = 'version'
|
||||||
slug_url_kwarg = 'version'
|
slug_url_kwarg = 'version'
|
||||||
|
|
||||||
|
|
||||||
|
def release_torrent(request, version):
|
||||||
|
release = get_object_or_404(Release, version=version)
|
||||||
|
if not release.torrent_data:
|
||||||
|
raise Http404
|
||||||
|
data = b64decode(release.torrent_data)
|
||||||
|
response = HttpResponse(data, content_type='application/x-bittorrent')
|
||||||
|
# TODO: this is duplicated from Release.iso_url()
|
||||||
|
filename = 'archlinux-%s-dual.iso.torrent' % release.version
|
||||||
|
response['Content-Disposition'] = 'attachment; filename=%s' % filename
|
||||||
|
return response
|
||||||
|
|
||||||
# vim: set ts=4 sw=4 et:
|
# vim: set ts=4 sw=4 et:
|
||||||
|
Loading…
Reference in New Issue
Block a user