Bugfix for whitelist to show images directly #201

This commit is contained in:
the-djmaze 2023-02-04 15:44:51 +01:00
parent 539ddcc51f
commit b0a4fb77be

View file

@ -384,23 +384,32 @@ export class MessageModel extends AbstractModel {
showExternalImages(regex) { showExternalImages(regex) {
const body = this.body; const body = this.body;
if (body && this.hasImages()) { if (body && this.hasImages()) {
this.hasImages(false); let hasImages = false,
body.rlHasImages = false; isValid = src => {
if (!regex || src.match(regex)) {
let attr = 'data-x-src', return true;
}
hasImages = true;
},
attr = 'data-x-src',
src, useProxy = !!SettingsGet('UseLocalProxyForExternalImages'); src, useProxy = !!SettingsGet('UseLocalProxyForExternalImages');
body.querySelectorAll('img[' + attr + ']').forEach(node => { body.querySelectorAll('img[' + attr + ']').forEach(node => {
src = node.getAttribute(attr); src = node.getAttribute(attr);
if (!regex || src.match(regex)) { if (isValid(src)) {
node.src = useProxy ? proxy(src) : src; node.src = useProxy ? proxy(src) : src;
} }
}); });
body.querySelectorAll('[data-x-style-url]').forEach(node => { body.querySelectorAll('[data-x-style-url]').forEach(node => {
JSON.parse(node.dataset.xStyleUrl).forEach(data => JSON.parse(node.dataset.xStyleUrl).forEach(data => {
node.style[data[0]] = "url('" + (useProxy ? proxy(data[1]) : data[1]) + "')" if (isValid(data[1])) {
); node.style[data[0]] = "url('" + (useProxy ? proxy(data[1]) : data[1]) + "')"
}
});
}); });
this.hasImages(hasImages);
body.rlHasImages = hasImages;
} }
} }