Skip to content

Commit 39b25f9

Browse files
authored
[DONE] Use get_thumbnail to serve video thumbnail via caching system (#1221)
Prevents video thumbnail url to be publicly available, and serve it via cache system
1 parent e1cad6f commit 39b25f9

File tree

2 files changed

+26
-29
lines changed

2 files changed

+26
-29
lines changed

pod/main/templates/block/carousel.html

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -29,26 +29,28 @@ <h2>{{ title |capfirst|truncatechars:43 }}</h2>
2929
{% endif %}
3030
<a href="{{ element.get_absolute_url }}" title="{{ element.title }}">
3131
{% if type == "video" or type == 'last' %}
32-
<img
33-
src="{{ element.get_thumbnail_url }}"
34-
class="img-fluid d-block w-100"
35-
alt=""/>
36-
{% elif type == "event" %} {% if element.thumbnail %}
37-
<img
38-
src="{{ element.get_thumbnail_card }}"
39-
class="img-fluid d-block w-100"
40-
alt=""/>
41-
{% elif element.broadcaster.poster %}
42-
<img
43-
src="{{ element.broadcaster.get_poster_url }}"
44-
class="img-fluid d-block w-100"
45-
alt=""/>
46-
{% else %}
47-
<img
48-
src="{{ element.get_thumbnail_card }}"
49-
class="img-fluid d-block w-100"
50-
alt=""/>
51-
{% endif %} {% endif %}
32+
<img
33+
src="{{ element.get_thumbnail_url }}"
34+
class="img-fluid d-block w-100"
35+
alt=""/>
36+
{% elif type == "event" %}
37+
{% if element.thumbnail %}
38+
<img
39+
src="{{ element.get_thumbnail_card }}"
40+
class="img-fluid d-block w-100"
41+
alt=""/>
42+
{% elif element.broadcaster.poster %}
43+
<img
44+
src="{{ element.broadcaster.get_poster_url }}"
45+
class="img-fluid d-block w-100"
46+
alt=""/>
47+
{% else %}
48+
<img
49+
src="{{ element.get_thumbnail_card }}"
50+
class="img-fluid d-block w-100"
51+
alt=""/>
52+
{% endif %}
53+
{% endif %}
5254
<div class="carousel-caption d-none d-md-block">
5355
<h3 class="video-title">
5456
{{ element.title|capfirst|truncatechars:43 }}

pod/video/models.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,22 +1005,17 @@ def get_thumbnail_url(self) -> str:
10051005
"""Get a thumbnail url for the video."""
10061006
request = None
10071007
if self.thumbnail and self.thumbnail.file_exist():
1008-
thumbnail_url = "".join(
1009-
[
1010-
"//",
1011-
get_current_site(request).domain,
1012-
self.thumbnail.file.url,
1013-
]
1014-
)
1008+
# Do not serve thumbnail url directly, as it can lead to the video URL
1009+
im = get_thumbnail(self.thumbnail.file, "x170", crop="center", quality=80)
1010+
return im.url
10151011
else:
1016-
thumbnail_url = "".join(
1012+
return "".join(
10171013
[
10181014
"//",
10191015
get_current_site(request).domain,
10201016
static(DEFAULT_THUMBNAIL),
10211017
]
10221018
)
1023-
return thumbnail_url
10241019

10251020
@property
10261021
def get_thumbnail_admin(self):

0 commit comments

Comments
 (0)