Do not inject dir=auto using BeautifulSoup

This commit is contained in:
Ersei Saggi 2023-12-04 06:50:04 -05:00 committed by Drew DeVault
parent af24a3f16e
commit 7b45163d8a
1 changed files with 1 additions and 19 deletions

View File

@ -1,5 +1,4 @@
DATE_FORMAT = "%Y-%m-%dT%H:%M:%S+00:00"
from bs4 import BeautifulSoup
from flask import Flask, Response, request, url_for, render_template, redirect
from flask import Blueprint, current_app, g, abort, session as flask_session
from flask import make_response
@ -169,23 +168,6 @@ def paginate_query(query, results_per_page=15):
"total_results": total_results
}
def inject_rtl_direction(resp):
if resp.mimetype == 'text/html':
html_doc = resp.data.decode('utf8')
soup = BeautifulSoup(html_doc, 'html.parser')
if not soup.body:
return resp
for el in soup.body.find_all():
if el.name == 'input' or el.name == 'textarea':
el.attrs['dir'] = "auto"
continue
for ch in el.text:
if unicodedata.bidirectional(ch) in ('R', 'AL'):
el.attrs['dir'] = "auto"
break
resp.data = soup.encode('utf-8')
return resp
class ModifiedUnicodeConverter(UnicodeConverter):
"""Added ~ and ^ to safe URL characters, otherwise no changes."""
def to_url(self, value):
@ -414,7 +396,7 @@ class SrhtFlask(Flask):
route=request.endpoint,
status=resp.status_code,
).observe(max(default_timer() - request._srht_start_time, 0))
return inject_rtl_direction(resp)
return resp
def make_response(self, rv):
# Converts responses from dicts to JSON response objects