remotes/1693045480750635534/spooky-22
Aevann1 2021-07-27 02:35:01 +02:00
parent 855aed71ff
commit 1b279e0b70
11 changed files with 21 additions and 45 deletions

View File

@ -19,7 +19,6 @@ class Domain(Base):
can_submit = Column(Boolean, default=True)
can_comment = Column(Boolean, default=True)
reason = Column(Integer, default=0)
show_thumbnail = Column(Boolean, default=False)
embed_function = Column(String(64))
embed_template = Column(String(32))

View File

@ -410,7 +410,7 @@ class Submission(Base, Stndrd, Age_times, Scores, Fuzzing):
@property
def is_image(self):
if self.url: return self.url.endswith('jpg') or self.url.endswith('png') or self.url.endswith('.gif') or self.url.endswith('jpeg') or self.url.endswith('?maxwidth=9999') or self.url.endswith('?maxwidth=8888')
if self.url: return self.url.lower().endswith('jpg') or self.url.lower().endswith('png') or self.url.lower().endswith('.gif') or self.url.lower().endswith('jpeg') or self.ur.lower()l.endswith('?maxwidth=9999') or self.url.lower().endswith('?maxwidth=8888')
else: return False
@property

View File

@ -123,26 +123,24 @@ def sanitize(text, linkgen=False, flair=False):
netloc = urlparse(url).netloc
domain = get_domain(netloc)
if not(netloc) or (domain and domain.show_thumbnail):
if "profile-pic-20" not in tag.get("class", ""):
#print(tag.get('class'))
# set classes and wrap in link
if "profile-pic-20" not in tag.get("class", ""):
#print(tag.get('class'))
# set classes and wrap in link
tag["rel"] = "nofollow"
tag["style"] = "max-height: 100px; max-width: 100%;"
tag["class"] = "in-comment-image rounded-sm my-2"
tag["rel"] = "nofollow"
tag["style"] = "max-height: 100px; max-width: 100%;"
tag["class"] = "in-comment-image rounded-sm my-2"
link = soup.new_tag("a")
link["href"] = tag["src"]
link["rel"] = "nofollow noopener"
link["target"] = "_blank"
link = soup.new_tag("a")
link["href"] = tag["src"]
link["rel"] = "nofollow noopener"
link["target"] = "_blank"
link["onclick"] = f"expandDesktopImage('{tag['src']}');"
link["data-toggle"] = "modal"
link["data-target"] = "#expandImageModal"
link["onclick"] = f"expandDesktopImage('{tag['src']}');"
link["data-toggle"] = "modal"
link["data-target"] = "#expandImageModal"
tag.wrap(link)
tag.wrap(link)
else:
# non-whitelisted images get replaced with links
new_tag = soup.new_tag("a")

View File

@ -931,7 +931,6 @@ def admin_ban_domain(v):
can_submit=False,
can_comment=False,
reason=reason,
show_thumbnail=False,
embed_function=None,
embed_template=None
)

View File

@ -264,7 +264,7 @@ def api_comment(v):
if not body and not request.files.get('file'): return jsonify({"error":"You need to actually write something!"}), 400
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif))', body, re.MULTILINE): body = body.replace(i.group(1), f'![]({i.group(1)})')
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif))', body.lower(), re.MULTILINE): body = body.replace(i.group(1), f'![]({i.group(1)})')
body = body.replace("\n", "\n\n")
with CustomRenderer(post_id=parent_id) as renderer: body_md = renderer.render(mistletoe.Document(body))
body_html = sanitize(body_md, linkgen=True)
@ -649,7 +649,7 @@ def edit_comment(cid, v):
if c.is_banned or c.deleted_utc > 0: abort(403)
body = request.form.get("body", "")[0:10000]
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif))', body, re.MULTILINE): body = body.replace(i.group(1), f'![]({i.group(1)})')
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif))', body.lower(), re.MULTILINE): body = body.replace(i.group(1), f'![]({i.group(1)})')
body = body.replace("\n", "\n\n")
with CustomRenderer(post_id=c.post.base36id) as renderer: body_md = renderer.render(mistletoe.Document(body))
body_html = sanitize(body_md, linkgen=True)

View File

@ -260,7 +260,7 @@ def edit_post(pid, v):
abort(403)
body = request.form.get("body", "")
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif))', body, re.MULTILINE): body = body.replace(i.group(1), f'![]({i.group(1)})')
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif))', body.lower(), re.MULTILINE): body = body.replace(i.group(1), f'![]({i.group(1)})')
body = body.replace("\n", "\n\n")
with CustomRenderer() as renderer:
body_md = renderer.render(mistletoe.Document(body))
@ -794,7 +794,7 @@ def submit_post(v):
}
# render text
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif))', body, re.MULTILINE): body = body.replace(i.group(1), f'![]({i.group(1)})')
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif))', body.lower(), re.MULTILINE): body = body.replace(i.group(1), f'![]({i.group(1)})')
body = body.replace("\n", "\n\n")
with CustomRenderer() as renderer:
body_md = renderer.render(mistletoe.Document(body))

View File

@ -69,7 +69,7 @@ def settings_profile_post(v):
v=v,
error="You didn't change anything")
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif))', bio, re.MULTILINE): bio = bio.replace(i.group(1), f'![]({i.group(1)})')
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif))', bio.lower(), re.MULTILINE): bio = bio.replace(i.group(1), f'![]({i.group(1)})')
bio = bio.replace("\n", "\n\n")
with CustomRenderer() as renderer:
bio_html = renderer.render(mistletoe.Document(bio))

View File

@ -206,21 +206,6 @@ def settings_security(v):
msg=request.args.get("msg") or None
)
@app.route("/imagehosts", methods=["GET"])
def info_image_hosts():
sites = g.db.query(Domain).filter_by(
show_thumbnail=True).order_by(
Domain.domain.asc()).all()
sites = [x.domain for x in sites]
text = "\n".join(sites)
resp = make_response(text)
resp.mimetype = "text/plain"
return resp
@app.route("/dismiss_mobile_tip", methods=["POST"])
def dismiss_mobile_tip():

View File

@ -23,9 +23,6 @@
<h3 class="h5 pt-2">reason</h3>
<p>{{domain.reason_text}}</p>
<h3 class="h5 pt-2">show_thumbnail</h3>
<p>{{domain.show_thumbnail}}</p>
<h3 class="h5 pt-2">embed_function</h3>
<p>{{domain.embed_function}}</p>

View File

@ -102,7 +102,7 @@
<div class="row no-gutters mb-3 d-block d-md-none">
<div class="col">
<a target="_blank" href="{{p.url}}">{% if p.is_image and p.domain_obj and p.domain_obj.show_thumbnail %}<img src="{{p.url}}" class="img-fluid" alt="Unable to anonymously load image">
<a target="_blank" href="{{p.url}}">{% if p.is_image %}<img src="{{p.url}}" class="img-fluid" alt="Unable to anonymously load image">
<div class="post-img-overlay d-block d-md-none">{{p.domain|truncate(30, True)}}<i class="fas fa-external-link-alt text-small ml-2"></i></div>
{% endif %}
</a>

View File

@ -59,8 +59,6 @@ On Drama, you can use Markdown formatting.
</tr>
</table>
<p class="text-small">* We have customized image embeds to add pop-overs and operate on a whitelist system. Embeds from known safe image hosts will use a pop-up display as demonstrated here. Attempted embeds to non-whitelisted sites will be converted into a link. The whitelist may be viewed <a href="/info/image_hosts" target="_blank">here</a>.</p>
{% filter markdown %}
## Block formatting