@lina Это просто регекспы же. Всё что тебе остаётся - это на уровне юзерскрипта сделать https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver с childList: true и subtree: true на #app, в нём отбирать добавляющиеся посты юзеров, на уровне каждого поста - проверить что его автор входит в интересующий тебя список и если да - заменить текстовое содержимое поста этого юзера на него же, только обработанное этим набором регесповых замен. Что-то вида
new MutationObserver(
(records, observer) => {
for (const record of records) {
if (record.target.childNodes.length === 0) {
observer.disconnect();
}
if (record.target.role !== 'feed') {
continue;
}
for (const added of record.addedNodes) {
const account = added.querySelector('.account-name[title]');
if (!account || !["someuser1@someinstance1.tld", "someuser2@someinstance2.tld"].includes(account.title)) {
continue;
}
const body = added.querySelector('.media-body');
if (!body) {
continue;
}
body.textContent = body.textContent.replaceAll('a', 'b');
}
}
}
).observe(document.getElementById("app"), {childList: true, subtree: true});
var snap = document.evaluate('.//text()', body, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (let i = 0; i < snap.snapshotLength; i++) {
const node = snap.snapshotItem(i);
if (!node.textContent || node.parentNode.closest('a') || node.parentNode.closest('.full')) {
continue;
}
node.textContent = node.textContent.replaceAll('a', 'b');
}
чтобы обрабатывать только каждую непустую текстовую ноду в отдельности, при условии что она не имеет родителем a-элемент, либо скрытый диалог с полным именем юзера.
@iamtakingiteasy не ну то что он захардкожен это понятно, но мне больше интересно как вбросить его как переменную и сделать подбор их случайно и случайную замену знаков пунктуации ими