forked from rDrama/rDrama
resizable videos
parent
3b207646c5
commit
4439f03ef5
|
@ -4925,7 +4925,7 @@ textarea {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
video {
|
video {
|
||||||
height: 50vh !important;
|
max-height: 50vh !important;
|
||||||
max-width: 100% !important;
|
max-width: 100% !important;
|
||||||
margin-top: 0.5rem !important;
|
margin-top: 0.5rem !important;
|
||||||
margin-bottom: 0.5rem !important;
|
margin-bottom: 0.5rem !important;
|
||||||
|
@ -6461,3 +6461,22 @@ div.markdown {
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.resizable {
|
||||||
|
resize:both;
|
||||||
|
display:inline-block;
|
||||||
|
overflow: auto;
|
||||||
|
scrollbar-width: none;
|
||||||
|
-ms-overflow-style: none;
|
||||||
|
}
|
||||||
|
.resizable::-webkit-scrollbar {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.resizable > video {
|
||||||
|
height:100%!important;
|
||||||
|
max-height:100%!important;
|
||||||
|
margin:0!important;
|
||||||
|
}
|
||||||
|
.bigger {
|
||||||
|
height:50vh;
|
||||||
|
}
|
||||||
|
|
|
@ -58,14 +58,12 @@ def allowed_attributes(tag, name, value):
|
||||||
try: value = int(value.replace('px', ''))
|
try: value = int(value.replace('px', ''))
|
||||||
except: return False
|
except: return False
|
||||||
if 0 < value <= 250: return True
|
if 0 < value <= 250: return True
|
||||||
return False
|
|
||||||
|
|
||||||
if tag == 'a':
|
if tag == 'a':
|
||||||
if name == 'href' and '\\' not in value and 'xn--' not in value:
|
if name == 'href' and '\\' not in value and 'xn--' not in value:
|
||||||
return True
|
return True
|
||||||
if name == 'rel' and value == 'nofollow noopener': return True
|
if name == 'rel' and value == 'nofollow noopener': return True
|
||||||
if name == 'target' and value == '_blank': return True
|
if name == 'target' and value == '_blank': return True
|
||||||
return False
|
|
||||||
|
|
||||||
if tag == 'img':
|
if tag == 'img':
|
||||||
if name in {'src','data-src'}: return is_safe_url(value)
|
if name in {'src','data-src'}: return is_safe_url(value)
|
||||||
|
@ -73,38 +71,33 @@ def allowed_attributes(tag, name, value):
|
||||||
if name == 'data-bs-toggle' and value == 'tooltip': return True
|
if name == 'data-bs-toggle' and value == 'tooltip': return True
|
||||||
if name in {'g','b','glow'} and not value: return True
|
if name in {'g','b','glow'} and not value: return True
|
||||||
if name in {'alt','title'}: return True
|
if name in {'alt','title'}: return True
|
||||||
return False
|
|
||||||
|
|
||||||
if tag == 'lite-youtube':
|
if tag == 'lite-youtube':
|
||||||
if name == 'params' and value.startswith('autoplay=1&modestbranding=1'): return True
|
if name == 'params' and value.startswith('autoplay=1&modestbranding=1'): return True
|
||||||
if name == 'videoid': return True
|
if name == 'videoid': return True
|
||||||
return False
|
|
||||||
|
|
||||||
if tag == 'video':
|
if tag == 'video':
|
||||||
if name == 'controls' and value == '': return True
|
if name == 'controls' and value == '': return True
|
||||||
if name == 'preload' and value == 'none': return True
|
if name == 'preload' and value == 'none': return True
|
||||||
if name == 'src': return is_safe_url(value)
|
if name == 'src': return is_safe_url(value)
|
||||||
return False
|
|
||||||
|
|
||||||
if tag == 'audio':
|
if tag == 'audio':
|
||||||
if name == 'src': return is_safe_url(value)
|
if name == 'src': return is_safe_url(value)
|
||||||
if name == 'controls' and value == '': return True
|
if name == 'controls' and value == '': return True
|
||||||
if name == 'preload' and value == 'none': return True
|
if name == 'preload' and value == 'none': return True
|
||||||
return False
|
|
||||||
|
|
||||||
if tag == 'p':
|
if tag == 'p':
|
||||||
if name == 'class' and value == 'mb-0': return True
|
if name == 'class' and value in ('mb-0','resizable'): return True
|
||||||
return False
|
|
||||||
|
|
||||||
if tag == 'span':
|
if tag == 'span':
|
||||||
if name == 'data-bs-toggle' and value == 'tooltip': return True
|
if name == 'data-bs-toggle' and value == 'tooltip': return True
|
||||||
if name == 'title': return True
|
if name == 'title': return True
|
||||||
if name == 'alt': return True
|
if name == 'alt': return True
|
||||||
return False
|
|
||||||
|
|
||||||
if tag == 'table':
|
if tag == 'table':
|
||||||
if name == 'class' and value == 'table': return True
|
if name == 'class' and value == 'table': return True
|
||||||
return False
|
|
||||||
|
return False
|
||||||
|
|
||||||
def build_url_re(tlds, protocols):
|
def build_url_re(tlds, protocols):
|
||||||
"""Builds the url regex used by linkifier
|
"""Builds the url regex used by linkifier
|
||||||
|
@ -370,7 +363,7 @@ def sanitize(sanitized, golden=True, limit_pings=0, showmore=True, count_marseys
|
||||||
|
|
||||||
sanitized = sanitized.replace(i.group(0), htmlsource)
|
sanitized = sanitized.replace(i.group(0), htmlsource)
|
||||||
|
|
||||||
sanitized = video_sub_regex.sub(r'\1<video controls preload="none" src="\2"></video>', sanitized)
|
sanitized = video_sub_regex.sub(r'\1<p class="resizable"><video controls preload="none" src="\2"></video></p>', sanitized)
|
||||||
sanitized = audio_sub_regex.sub(r'\1<audio controls preload="none" src="\2"></audio>', sanitized)
|
sanitized = audio_sub_regex.sub(r'\1<audio controls preload="none" src="\2"></audio>', sanitized)
|
||||||
|
|
||||||
if count_marseys:
|
if count_marseys:
|
||||||
|
@ -429,7 +422,6 @@ def allowed_attributes_emojis(tag, name, value):
|
||||||
if name == 'data-bs-toggle' and value == 'tooltip': return True
|
if name == 'data-bs-toggle' and value == 'tooltip': return True
|
||||||
if name == 'title': return True
|
if name == 'title': return True
|
||||||
if name == 'alt': return True
|
if name == 'alt': return True
|
||||||
return False
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -68,7 +68,9 @@ Text 2
|
||||||
<td>Video Files</td>
|
<td>Video Files</td>
|
||||||
<td>https://files.catbox.moe/v4om92.mp4</td>
|
<td>https://files.catbox.moe/v4om92.mp4</td>
|
||||||
<td>
|
<td>
|
||||||
<video controls preload="none" src="https://files.catbox.moe/v4om92.mp4"></video>
|
<p class="resizable">
|
||||||
|
<video controls preload="none" src="https://files.catbox.moe/v4om92.mp4"></video>
|
||||||
|
</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -142,7 +142,9 @@
|
||||||
{% elif p.is_video %}
|
{% elif p.is_video %}
|
||||||
<div class="row no-gutters mb-4">
|
<div class="row no-gutters mb-4">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<video controls preload="none" src="{{p.realurl(v)}}"></video>
|
<p class="resizable bigger">
|
||||||
|
<video controls preload="none" src="{{p.realurl(v)}}"></video>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% elif p.is_audio %}
|
{% elif p.is_audio %}
|
||||||
|
|
|
@ -247,7 +247,9 @@
|
||||||
</div>
|
</div>
|
||||||
{% elif p.is_video %}
|
{% elif p.is_video %}
|
||||||
<div id="video-{{p.id}}" class="ml-5 {% if p.over_18 or not ((v and v.cardview) or (not v and CARD_VIEW)) %}d-none{% endif %} mt-4">
|
<div id="video-{{p.id}}" class="ml-5 {% if p.over_18 or not ((v and v.cardview) or (not v and CARD_VIEW)) %}d-none{% endif %} mt-4">
|
||||||
<video id="video2-{{p.id}}" controls preload="none" src="{{p.realurl(v)}}"></video>
|
<p class="resizable bigger">
|
||||||
|
<video id="video2-{{p.id}}" controls preload="none" src="{{p.realurl(v)}}"></video>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
{% elif p.is_audio %}
|
{% elif p.is_audio %}
|
||||||
<div id="video-{{p.id}}" class="ml-5 {% if p.over_18 or not ((v and v.cardview) or (not v and CARD_VIEW)) %}d-none{% endif %} mt-4">
|
<div id="video-{{p.id}}" class="ml-5 {% if p.over_18 or not ((v and v.cardview) or (not v and CARD_VIEW)) %}d-none{% endif %} mt-4">
|
||||||
|
|
Loading…
Reference in New Issue