Browse Source

Adicionando suporte de video youtube e facebook

pull/2838/head
ulyssesBML 7 years ago
parent
commit
9dc0c81d6c
  1. 33
      sapl/base/templatetags/common_tags.py
  2. 15
      sapl/templates/crud/detail.html

33
sapl/base/templatetags/common_tags.py

@ -224,7 +224,38 @@ def audio_url(value):
@register.filter @register.filter
def video_url(value): def video_url(value):
return True if url(value) and value.endswith("mp4") else False video_extensions = ["mp4", "ogg", "webm", "3gp", "ogv"]
has_ext = False
for i in video_extensions:
if value.endswith(i):
has_ext = True
break
return url(value) and has_ext
@register.filter
def youtube_url(value):
import re
# Test if YouTube video
# tested on https://pythex.org/
youtube_pattern = "^(http://?|https://?www\.?youtube\.com/watch\?v=)"
r = re.findall(youtube_pattern, value)
return True if r else False
@register.filter
def facebook_url(value):
import re
youtube_pattern = "^(https?://www\.facebook\.com/(?:video\.php\?v=\d+|.*?/videos/\d+)/)"
r = re.findall(youtube_pattern, value)
return True if r else False
@register.filter
def get_youtube_id(value):
from urllib.parse import urlparse, parse_qs
u_pars = urlparse(value)
quer_v = parse_qs(u_pars.query).get('v')[0]
return quer_v
@register.filter @register.filter

15
sapl/templates/crud/detail.html

@ -74,11 +74,19 @@
</div> </div>
{% elif column.text|video_url %} {% elif column.text|video_url %}
<div class="form-control-static"> <div class="form-control-static">
<video width="320" height="120" controls> <video width="420" height="230" controls>
<source src="{{ column.text|safe }}" type="video/{{ column.text|file_extension }}"> <source src="{{ column.text|safe }}" type="video/{{ column.text|file_extension }}">
<p>Este navegador não suporta o elemento vídeo.</p> <p>Este navegador não suporta o elemento vídeo.</p>
</video> </video>
</div> </div>
{% elif column.text|youtube_url %}
<iframe id="ytplayer" type="text/html" width="420" height="230"
src="http://www.youtube.com/embed/{{ column.text|get_youtube_id }}"
frameborder="0"></iframe>
{% elif column.text|facebook_url %}
<div class="fb-video" data-href="{{ column.text|safe }}"
data-width="420" data-show-text="false">
</div>
{% elif column.text|url %} {% elif column.text|url %}
<div class="form-control-static"><a href="{{ column.text|safe }}"> {{ column.text|safe|default:"" }} </a></div> <div class="form-control-static"><a href="{{ column.text|safe }}"> {{ column.text|safe|default:"" }} </a></div>
{% else %} {% else %}
@ -131,4 +139,7 @@
{% endblock table_content %} {% endblock table_content %}
{% endblock base_content %} {% endblock base_content %}
{% block extra_js %}{% endblock %} {% block extra_js %}
<div id="fb-root"></div>
<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.3"></script>
{% endblock %}

Loading…
Cancel
Save