|
|
@ -31,6 +31,7 @@ import org.jsoup.nodes.Document;
|
|
|
|
import org.jsoup.nodes.Element;
|
|
|
|
import org.jsoup.nodes.Element;
|
|
|
|
import org.jsoup.nodes.Node;
|
|
|
|
import org.jsoup.nodes.Node;
|
|
|
|
import org.jsoup.nodes.TextNode;
|
|
|
|
import org.jsoup.nodes.TextNode;
|
|
|
|
|
|
|
|
import org.jsoup.safety.Whitelist;
|
|
|
|
import org.jsoup.select.NodeTraversor;
|
|
|
|
import org.jsoup.select.NodeTraversor;
|
|
|
|
import org.jsoup.select.NodeVisitor;
|
|
|
|
import org.jsoup.select.NodeVisitor;
|
|
|
|
|
|
|
|
|
|
|
@ -115,14 +116,13 @@ public class HtmlHelper implements NodeVisitor {
|
|
|
|
public static String sanitize(Context context, String html, boolean reply) {
|
|
|
|
public static String sanitize(Context context, String html, boolean reply) {
|
|
|
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
|
|
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
|
|
|
|
|
|
|
|
|
|
|
Document document = Jsoup.parse(html);
|
|
|
|
|
|
|
|
if (prefs.getBoolean("sanitize", false)) {
|
|
|
|
if (prefs.getBoolean("sanitize", false)) {
|
|
|
|
|
|
|
|
Document document = Jsoup.parse(html);
|
|
|
|
HtmlHelper visitor = new HtmlHelper(context, reply);
|
|
|
|
HtmlHelper visitor = new HtmlHelper(context, reply);
|
|
|
|
NodeTraversor.traverse(visitor, document.body());
|
|
|
|
NodeTraversor.traverse(visitor, document.body());
|
|
|
|
return visitor.toString();
|
|
|
|
return visitor.toString();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
document.getElementsByTag("style").remove();
|
|
|
|
Document document = Jsoup.parse(Jsoup.clean(html, Whitelist.relaxed()));
|
|
|
|
document.select("[style]").removeAttr("style");
|
|
|
|
|
|
|
|
for (Element tr : document.select("tr"))
|
|
|
|
for (Element tr : document.select("tr"))
|
|
|
|
tr.after("<br>");
|
|
|
|
tr.after("<br>");
|
|
|
|
return document.body().html();
|
|
|
|
return document.body().html();
|
|
|
|