Message whitelist #201:

* sort options based on domain count (highest top)
* hide when whitelist not active
This commit is contained in:
the-djmaze 2023-02-08 11:39:07 +01:00
parent e12eeeafc6
commit 85d3a95dec
3 changed files with 20 additions and 6 deletions

View file

@ -156,12 +156,24 @@ export class MessageModel extends AbstractModel {
let options = [];
if ('match' === SettingsUserStore.viewImages()) {
let from = this.from[0],
list = SettingsUserStore.viewImagesWhitelist();
from && options.push(from.email);
this.html().match(/src=["'][^"']+/g)?.forEach(m => options.push(m.replace(/^.+(:\/\/[^/]+).+$/, '$1')));
options = options.filter(txt => !list.includes(txt));
list = SettingsUserStore.viewImagesWhitelist(),
counts = {};
this.html().match(/src=["'][^"']+/g)?.forEach(m => {
m = m.replace(/^.+(:\/\/[^/]+).+$/, '$1');
if (counts[m]) {
++counts[m];
} else {
counts[m] = 1;
options.push(m);
}
});
options = options.filter(txt => !list.includes(txt)).sort((a,b) => (counts[a] < counts[b])
? 1
: (counts[a] > counts[b] ? -1 : a.localeCompare(b))
);
from && options.unshift(from.email);
}
return options.unique();
return options;
}
});
}