Ранее здесь (
realconspiracy в Отлажено. Скрытие «Промо» в своей ленте друзей.) предложил защиту от назойливой "Промо".
Но это был частный случай, для одного т.н. "псевдокласса".
Новая инструкция выглядит так (синтаксис и использование - см. в предыдущем посте на эту тему, ниже или в комментариях):
realconspiracy.livejournal.com###page > div.layout > div.layout-inner.ng-scope > div.content.hfeed:first-child > div.content-inner > div.entry-wrap.js-emojis.entry--feedpromo.entry--feedpromo-entry.ng-scope:nth-child(n)[lj-embed-resizer=""][lj-discovery-tags=""][lj-screenable="social:widgets:parse"]
Красным выделен элемент, который нужно заменить в исходном фильтре, потому что с помощью него админы меняют объект, и он не фильтруется. В общем виде «n» охватывает все фильтры.
где
page > div.layout > div.layout-inner.ng-scope > div.content.hfeed:first-child >
Другой способ:
1. Выделить блок "Промо",
2. Правой кнопкой мыши открыть контекстное меню "Посмотреть код элемента" (Ctrl+Shift+C),
3. Найти в окне справа посвеченный блок кода страницы,
4. В строке Меню окна ниже нажать пункт меню "Adguard".
5. Отметить флажками все пункты предложенного списка свойств в окне под строкой использованного меню,
6. Нажать кнопку "Add Rule".
Редактор самостоятельно пропишет в Adguard нужную строку и Вы избавитесь от "Промо" в ленте.
Но это был частный случай, для одного т.н. "псевдокласса".
Новая инструкция выглядит так (синтаксис и использование - см. в предыдущем посте на эту тему, ниже или в комментариях):
realconspiracy.livejournal.com###page > div.layout > div.layout-inner.ng-scope > div.content.hfeed:first-child > div.content-inner > div.entry-wrap.js-emojis.entry--feedpromo.entry--feedpromo-entry.ng-scope:nth-child(n)[lj-embed-resizer=""][lj-discovery-tags=""][lj-screenable="social:widgets:parse"]
Красным выделен элемент, который нужно заменить в исходном фильтре, потому что с помощью него админы меняют объект, и он не фильтруется. В общем виде «n» охватывает все фильтры.
Борьба с «Промо» в ленте друзей начинает превращаться в соревнование интеллектов. Пока интересно.
У меня установлен AdGuard, который, как и всякая умная «примочка», требует постоянного тюннинга. А тут как раз и «Промо» накатила.
Ну, что ж. Почитаем, что может предложить нам AdGuard:
В Справке к AdGuard читаю:
Синтаксис правил скрытия
rule = [domains] "##" selector
domains = [domain0, domain1[, ...[, domainN]]]
· selector — CSS селектор, задающий элементы, которые должны быть скрыты.
· domains — ограничение на домены, на страницах которых будет применено правило.
Если вы хотите ограничить область действия одним или более доменами, просто перечислите их через запятую. Например: example.org,example.com##selector.
Обратите внимание, что это правило будет работать также на всех поддоменахexample.org и example.com.
Если вы хотите запретить действие правила на определенном домене, используйте символ~ перед именем домена. Например: ~example.org##selector.
Обратите внимание, что вы можете использовать оба подхода в одном правиле. Например, правило example.org,~subdomain.example.org##domain будет работать для доменаexample.org и всех его поддоменов, кроме subdomain.example.org.
Обратите внимание
Правила скрытия не зависят друг от друга. Если в фильтре есть правилоexample.org##selector, и вы добавляете правило ~example.org##selector, то оба этих правила будут применены независимо друг от друга.
Примеры правил скрытия
· example.com##.textad — скроет элемент div с классом textad на доменеexample.com и всех его поддоменах.
· example.com,example.org###adblock - скроет элемент с атрибутом id равным adblockна доменах example.com, example.org и всех их поддоменах.
· ~example.com##.textad - скроет элемент div с классом textad на всех доменах, кромеexample.com и всех его поддоменах.
Пишу в Настройки/Пользовательский фильтр AdGuard:
У меня установлен AdGuard, который, как и всякая умная «примочка», требует постоянного тюннинга. А тут как раз и «Промо» накатила.
Ну, что ж. Почитаем, что может предложить нам AdGuard:
Правила скрытия элемeнтов
Правила скрытия элементов предназначены, как это следует из названия, для скрытия элементов веб-страниц. По сути, это аналогично применению стиля { display: none; } к выбранному элементуСинтаксис правил скрытия
rule = [domains] "##" selector
domains = [domain0, domain1[, ...[, domainN]]]
· selector — CSS селектор, задающий элементы, которые должны быть скрыты.
· domains — ограничение на домены, на страницах которых будет применено правило.
Если вы хотите ограничить область действия одним или более доменами, просто перечислите их через запятую. Например: example.org,example.com##selector.
Обратите внимание, что это правило будет работать также на всех поддоменахexample.org и example.com.
Если вы хотите запретить действие правила на определенном домене, используйте символ~ перед именем домена. Например: ~example.org##selector.
Обратите внимание, что вы можете использовать оба подхода в одном правиле. Например, правило example.org,~subdomain.example.org##domain будет работать для доменаexample.org и всех его поддоменов, кроме subdomain.example.org.
Обратите внимание
Правила скрытия не зависят друг от друга. Если в фильтре есть правилоexample.org##selector, и вы добавляете правило ~example.org##selector, то оба этих правила будут применены независимо друг от друга.
Примеры правил скрытия
· example.com##.textad — скроет элемент div с классом textad на доменеexample.com и всех его поддоменах.
· example.com,example.org###adblock - скроет элемент с атрибутом id равным adblockна доменах example.com, example.org и всех их поддоменах.
· ~example.com##.textad - скроет элемент div с классом textad на всех доменах, кромеexample.com и всех его поддоменах.
Пишу в Настройки/Пользовательский фильтр AdGuard:
где
realconspiracy.livejournal.com - это мой журнал (сюда Вы можете записать ссылку на Ваш),
page > div.layout > div.layout-inner.ng-scope > div.content.hfeed:first-child >
div.content-inner > div.entry-wrap.js-emojis.entry--feedpromo.entry--feedpromo-entry.
[lj-screenable="social:widgets:parse"]
- это селектор «промо» в ленте,
имеющего первоначальную строку
(взято из кода страницы).
Просто скопируйте себе в
пользовательский фильтр Adguard.
имеющего первоначальную строку
(взято из кода страницы).
Просто скопируйте себе в
пользовательский фильтр Adguard.
Другой способ:
1. Выделить блок "Промо",
2. Правой кнопкой мыши открыть контекстное меню "Посмотреть код элемента" (Ctrl+Shift+C),
3. Найти в окне справа посвеченный блок кода страницы,
4. В строке Меню окна ниже нажать пункт меню "Adguard".
5. Отметить флажками все пункты предложенного списка свойств в окне под строкой использованного меню,
6. Нажать кнопку "Add Rule".
Редактор самостоятельно пропишет в Adguard нужную строку и Вы избавитесь от "Промо" в ленте.