resizable videos

pull/64/head
Aevann1 2022-12-10 21:12:14 +02:00
parent 3b207646c5
commit 4439f03ef5
5 changed files with 33 additions and 16 deletions

View File

@ -4925,7 +4925,7 @@ textarea {
cursor: pointer;
}
video {
height: 50vh !important;
max-height: 50vh !important;
max-width: 100% !important;
margin-top: 0.5rem !important;
margin-bottom: 0.5rem !important;
@ -6461,3 +6461,22 @@ div.markdown {
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;
}

View File

@ -58,14 +58,12 @@ def allowed_attributes(tag, name, value):
try: value = int(value.replace('px', ''))
except: return False
if 0 < value <= 250: return True
return False
if tag == 'a':
if name == 'href' and '\\' not in value and 'xn--' not in value:
return True
if name == 'rel' and value == 'nofollow noopener': return True
if name == 'target' and value == '_blank': return True
return False
if tag == 'img':
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 in {'g','b','glow'} and not value: return True
if name in {'alt','title'}: return True
return False
if tag == 'lite-youtube':
if name == 'params' and value.startswith('autoplay=1&modestbranding=1'): return True
if name == 'videoid': return True
return False
if tag == 'video':
if name == 'controls' and value == '': return True
if name == 'preload' and value == 'none': return True
if name == 'src': return is_safe_url(value)
return False
if tag == 'audio':
if name == 'src': return is_safe_url(value)
if name == 'controls' and value == '': return True
if name == 'preload' and value == 'none': return True
return False
if tag == 'p':
if name == 'class' and value == 'mb-0': return True
return False
if name == 'class' and value in ('mb-0','resizable'): return True
if tag == 'span':
if name == 'data-bs-toggle' and value == 'tooltip': return True
if name == 'title': return True
if name == 'alt': return True
return False
if tag == 'table':
if name == 'class' and value == 'table': return True
return False
return False
def build_url_re(tlds, protocols):
"""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 = 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)
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 == 'title': return True
if name == 'alt': return True
return False
return False

View File

@ -68,7 +68,9 @@ Text 2
<td>Video Files</td>
<td>https://files.catbox.moe/v4om92.mp4</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>
</tr>
<tr>

View File

@ -142,7 +142,9 @@
{% elif p.is_video %}
<div class="row no-gutters mb-4">
<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>
{% elif p.is_audio %}

View File

@ -247,7 +247,9 @@
</div>
{% 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">
<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>
{% 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">