forked from 0x2620/pandora
use new media urls
This commit is contained in:
parent
015d05f945
commit
fe45b30345
10 changed files with 84 additions and 67 deletions
|
|
@ -343,7 +343,7 @@ class Item(models.Model):
|
|||
poster = os.path.abspath(os.path.join(settings.MEDIA_ROOT, poster))
|
||||
if os.path.exists(poster):
|
||||
posters.append({
|
||||
'url': '/%s/poster.pandora.jpg' % self.itemId,
|
||||
'url': '/%s/poster.jpg' % self.itemId,
|
||||
'width': 640,
|
||||
'height': 1024,
|
||||
'source': settings.URL,
|
||||
|
|
@ -379,7 +379,7 @@ class Item(models.Model):
|
|||
'index': p,
|
||||
'position': f['position'],
|
||||
'selected': p == pos,
|
||||
'url': '/%s/frame/poster/%d.jpg' %(self.itemId, p),
|
||||
'url': '/%s/frameposter%d.jpg' %(self.itemId, p),
|
||||
'height': f['height'],
|
||||
'width': f['width']
|
||||
})
|
||||
|
|
|
|||
|
|
@ -5,17 +5,26 @@ from django.conf.urls.defaults import *
|
|||
|
||||
|
||||
urlpatterns = patterns("item.views",
|
||||
(r'^(?P<id>[A-Z0-9].*)/frame/(?P<size>\d+)/(?P<position>[0-9\.,]+).jpg$', 'frame'),
|
||||
(r'^(?P<id>[A-Z0-9].*)/frame/poster/(?P<position>\d+).jpg$', 'poster_frame'),
|
||||
(r'^(?P<id>[A-Z0-9].*)/(?P<oshash>[a-f0-9]+)/(?P<profile>.*\.(?P<format>webm|ogv|mp4))$', 'video'),
|
||||
(r'^(?P<id>[A-Z0-9][A-Za-z0-9]+)/torrent/(?P<filename>.*?)$', 'torrent'),
|
||||
(r'^(?P<id>[A-Z0-9].*)/(?P<profile>.*\.(?P<format>webm|ogv|mp4))$', 'video'),
|
||||
(r'^(?P<id>[A-Z0-9].*)/poster\.(?P<size>\d+)\.jpg$', 'poster'),
|
||||
(r'^(?P<id>[A-Z0-9].*)/poster\.(?P<size>large)\.jpg$', 'poster'),
|
||||
(r'^(?P<id>[A-Z0-9].*)/poster\.pandora\.jpg$', 'poster_local'),
|
||||
(r'^(?P<id>[A-Z0-9].*)/poster\.jpg$', 'poster'),
|
||||
(r'^(?P<id>[A-Z0-9].*)/icon\.(?P<size>\d+)\.jpg$', 'icon'),
|
||||
(r'^(?P<id>[A-Z0-9].*)/icon\.jpg$', 'icon'),
|
||||
(r'^(?P<id>[A-Z0-9].*)/timelines/(?P<timeline>.+)\.(?P<size>\d+)\.(?P<position>\d+)\.png$', 'timeline'),
|
||||
(r'^(?P<id>[A-Z0-9].*)/timeline\.(?P<size>\d+)\.png$', 'timeline_overview'),
|
||||
#frames
|
||||
(r'^(?P<id>[A-Z0-9].+)/frame(?P<size>\d+)p(?P<position>[\d\.]+)\.jpg$', 'frame'),
|
||||
|
||||
#timelines
|
||||
(r'^(?P<id>[A-Z0-9].+)/timeline(?P<size>\d+)p(?P<position>\d+)\.png$', 'timeline'),
|
||||
(r'^(?P<id>[A-Z0-9].+)/timeline(?P<size>\d+)p\.png$', 'timeline_overview'),
|
||||
|
||||
#video
|
||||
(r'^(?P<id>[A-Z0-9].+)/(?P<profile>\d+p)(?P<index>\d*)\.(?P<format>webm|ogv|mp4)$', 'video'),
|
||||
|
||||
#torrent
|
||||
(r'^(?P<id>[A-Z0-9][A-Za-z0-9]+)/torrent/(?P<filename>.+?)$', 'torrent'),
|
||||
|
||||
#icon
|
||||
(r'^(?P<id>[A-Z0-9].+)/icon(?P<size>\d*)\.jpg$', 'icon'),
|
||||
|
||||
#poster
|
||||
(r'^(?P<id>[A-Z0-9].+)/poster(?P<size>\d+)\.jpg$', 'poster'),
|
||||
(r'^(?P<id>[A-Z0-9].+)/poster\.jpg$', 'poster_local'),
|
||||
(r'^(?P<id>[A-Z0-9].+)/frameposter(?P<position>\d+).jpg$', 'poster_frame'),
|
||||
|
||||
|
||||
)
|
||||
|
|
|
|||
|
|
@ -573,8 +573,9 @@ def image_to_response(item, image, size=None):
|
|||
if not os.path.exists(path):
|
||||
image_size = max(image.width, image.height)
|
||||
if size > image_size:
|
||||
return redirect('/%s/icon.jpg' % item.itemId)
|
||||
extract.resize_image(image.path, path, size=size)
|
||||
path = image.path
|
||||
else:
|
||||
extract.resize_image(image.path, path, size=size)
|
||||
else:
|
||||
path = image.path
|
||||
return HttpFileResponse(path, content_type='image/jpeg')
|
||||
|
|
@ -587,17 +588,13 @@ def poster_local(request, id):
|
|||
|
||||
def poster(request, id, size=None):
|
||||
item = get_object_or_404(models.Item, itemId=id)
|
||||
if size == 'large':
|
||||
size = None
|
||||
if item.poster:
|
||||
return image_to_response(item, item.poster, size)
|
||||
else:
|
||||
if not size:
|
||||
size='large'
|
||||
poster_path = os.path.join(settings.STATIC_ROOT, 'png/posterDark.48.png')
|
||||
response = HttpFileResponse(poster_path, content_type='image/jpeg')
|
||||
response['Cache-Control'] = 'no-cache'
|
||||
return response
|
||||
response = HttpFileResponse(poster_path, content_type='image/jpeg')
|
||||
response['Cache-Control'] = 'no-cache'
|
||||
return response
|
||||
|
||||
|
||||
def icon(request, id, size=None):
|
||||
|
|
@ -608,12 +605,9 @@ def icon(request, id, size=None):
|
|||
raise Http404
|
||||
|
||||
|
||||
def timeline(request, id, timeline, size, position):
|
||||
def timeline(request, id, size, position):
|
||||
item = get_object_or_404(models.Item, itemId=id)
|
||||
if timeline == 'strip':
|
||||
timeline = '%s.%s.%04d.png' %(item.timeline_prefix[:-8] + 'strip', size, int(position))
|
||||
else:
|
||||
timeline = '%s.%s.%04d.png' %(item.timeline_prefix, size, int(position))
|
||||
timeline = '%s.%s.%04d.png' %(item.timeline_prefix, size, int(position))
|
||||
return HttpFileResponse(timeline, content_type='image/png')
|
||||
|
||||
|
||||
|
|
@ -639,13 +633,14 @@ def torrent(request, id, filename=None):
|
|||
filename = os.path.abspath(os.path.join(settings.MEDIA_ROOT, filename))
|
||||
return HttpFileResponse(filename)
|
||||
|
||||
def video(request, id, profile, oshash=None, format=None):
|
||||
def video(request, id, profile, index=None, format=None):
|
||||
print id, profile, index, format
|
||||
item = get_object_or_404(models.Item, itemId=id)
|
||||
if oshash:
|
||||
stream = get_object_or_404(item.files, oshash=oshash)
|
||||
if index:
|
||||
stream = item.streams.filter(profile=profile)[index]
|
||||
path = stream.video.path
|
||||
else:
|
||||
stream = get_object_or_404(item.streams, profile=profile)
|
||||
stream = get_object_or_404(item.streams, profile="%s.%s" % (profile, format))
|
||||
path = stream.video.path
|
||||
#server side cutting
|
||||
t = request.GET.get('t')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue