Greasy Fork is available in English.
try to take over the world!
< Σχολιασμός για τον κώδικα RU AdList JS Fixes
По идее, вам дали верный совет, фильтр Counters отрабатывает код, аналогичный по своему действию и назначению коду, содержащемуся в скрипте RU AdList JS Fixes. Обязательным условием является установка Scriptlet Doctor, без которого скриплеты в Firefox не будут работать из-за CSP-бага этого браузера.
Непонятно, для какой цели вы пытаетесь установить дополнительно RU AdList JS Fixes, причём в неподдерживаемый менеджер скриптов (Violentmonkey), о чём явным образом указано в особенностях установки скрипта.
Опишите пожалуйста проблему так, как предложено здесь в пункте 4.
Пытался ставить "RU AdList JS Fixes" по руководству, а там не было написано, куда он ставится, а куда нет. А сейчас вопрос был в том, как действовать в этом случае.
Всё по совету установлено, включая "Scriptlet Doctor" (кроме "RU AdList JS Fixes").
Дано:
1. обозреватель: FF 100
2. блокировщик: uBO, включён (коричневый значок)
3. дополнительный список в uBO: "Regions, languages (1/34) RUS: RU AdList 41,261 used out of 41,416" установлен
4. "Scriptlet Doctor" включён (синяя галка)
5. ссылка с не убирающейся рекламой: https://zen.yandex.ru/
6. пытался бороться с рекламой с помощью следующих фильров в uBO:
[code]zen.yandex.ru##:xpath(//div[contains(text(), 'Яндекс.Браузер')]/../../..)
zen.yandex.ru##:xpath(//div[contains(text(), 'промо')]/../../../../../../../../../..)
zen.yandex.ru##:xpath(//div[contains(text(), 'реклама')]/../../../../../../../../../..)
zen.yandex.ru##:xpath(//a[contains(text(), 'реклама')]/../../../../../../../../../..)
zen.yandex.ru##:xpath(//button[text() = 'Подписаться' and not(ancestor::header)]//ancestor::div[contains(@id, 'zen-row-')])
zen.yandex.ru###article__bottom-embed
yandex.ru##.distr-popup__icon
yandex.ru##.distr-popup__content.popup2__content
yandex.ru##:xpath(//a[contains(text(), 'Посещаемое')]/../../../../..)
yandex.ru##:xpath(//div[contains(text(), 'Яндекс.Браузер')]/../../..)[/code]
7. но часть из этих фильтров пытается работать против теневых блоков страницы, поэтому пытаюсь использовать фильтры вроде "zen.yandex.ru##+js(rsre, 'div')", но они тоже не работают
8. ИТОГО: реклама всё равно появляется в блоках пометками -- "промо", "реклама", "подписаться". Хуже того: скрипт "Яндекса" чует, что мало блоков отображается, и запускает дозагрузку новых, в итоге чего "лента" нестабильна.
Упс, вместо указания необходимой для тестирования информации вы указываете произвольную, наличие которой никак не влияет на поиск причин проблемы. Так мы можем очень долго переписываться, без какой-либо пользы. Чтобы минимизировать длительность этого процесса, сделайте пожалуйста слепок настроек uBO (вкладка "Настройки", "Резервное копирование в файл») и залейте его на какой-нибудь файлообменник.
Делал по пункту №4 Вашей ссылки, где сказано, что нужно указать обозреватель, блокировщик, список блокировки, ссылку, фильтры -- что я и сделал. Поэтому не понятно, что Вы имеете в виду под "произвольностью". Архив настроек: https://disk.yandex.ru/d/U7Pc-Emst6Yq6w
Я поясню. В вашем сообщении не указан номер версии Scriptlet Doctor, не указан номер версии uBO, из подключенных фильтров указан только RUS: RU AdList, не указана необходимость авторизации. Но это уже не важно. Ваш слепок настроек полностью объясняет причину проблемы. Вы либо что-то невнимательно прочитали, либо не туда кликнули, но фильтр Counters у вас отсутствует. А в нестабильности ленты виноваты правила xpath, это обычное поведение в тех случаях, когда их пытаются применить в отношении динамически подгружаемых элементов.
Решение: подключите фильтр Counters, отключите правила xpath.
Остаётся неясным только одно, но очень важное обстоятельство. Выше вы писали - Пытался ставить "RU AdList JS Fixes" по руководству, а там не было написано, куда он ставится, а куда нет.
Что это за руководство? Подобные руководства потенциально опасны для пользователей, при условии, что они позволяют загружать скрипт RU AdList JS Fixes минуя страницу его установки, где в первом абзаце "Особенностей установки" специально содержится информация, что Violentmonkey в Firefox не поддерживается и даже указано почему. Сообщите пожалуйста, где находится руководство, его необходимо удалить, либо исправить.
P.S. Правила типа zen.yandex.ru##+js(rsre, 'div')
у вас никогда не работали, поскольку вы не прописали путь к шаблону скриплета.
Спасибо, получилось (остались побороться мусорными блоками вроде "Знакомые лица Выбирайте и подписывайтесь", "Общество Выбирайте и подписывайтесь", "Дом и сад Выбирайте и подписывайтесь", т.п.)
Ставил "RU AdList for uBlock Origin - только для uBlock Origin", а счётчики не ставил, так как они к вопросу отключения рекламы именно из теневых блоков не понятно как вообще относятся; предположил, что автор совета указал это название по ошибке. Возможно, имеет смысл как-то дополнить название "Counters"?
Руководство: https://github.com/easylist/ruadlist/wiki/RU-Adlist-links -- там написано просто "RU AdList JS Fixes - вспомогательный скрипт для подчистки сайтов после Adblock Plus / uBlock Origin со списком фильтров RU AdList" -- как будто это нечто универсальное, что должно работать. Можно в скобках указать, что "кроме ViolentMonkey в FireFox".
По первой ссылке в этом обсуждении указано, что у меня было прописано: "As per instructions, my settings are: userResourcesLocation https://raw.githubusercontent.com/uBlock-user/uBO-Scriptlets/master/scriptlets.js" -- и не работало (потом убрал). Что за "шаблон" Вы имеете в виду?
Всё понятно. Проблема в невнимательности. Я ведь в первом же ответе сразу написал, что вам дали верный совет насчёт Counters.
Что касается RU Adlist links, то это не руководство, а просто раздел с ссылками, потому он так и называется. Я создал его исключительно по причине того, что uBlock Origin позволяет подключать фильтры кликом из ограниченного количества мест (easylist.to, forums.lanik.us, github.com). Полное руководство находится здесь.
Загрузить на странице RU Adlist links скрипт RU AdList JS Fixes невозможно, там лишь ссылка на страницу его установки, где её особенности описаны подробно.
Шаблон - это код скриплета, адрес которого прописывается в userResourcesLocation. В вашем слепке там пусто.
Спасибо за разъяснения.
Занимался установкой этих фильтров пять месяцев назад, поэтому на момент Вашего ответа уже не помнил, что не ставил этот "Каунтерс" (странное название, всё-таки), так что извиняюсь.
"В вашем слепке там пусто" -- это сейчас пусто; как отмечалось, я его удалил после того, как выяснил, что он не работает (и не вставил обратно перед выгрузкой архива настроек, поэтому его там нет).
Приветствую!
А есть ли тут Димиса?
Советуют к Вам обратиться: https://github.com/uBlock-user/uBO-Scriptlets/discussions/15#discussioncomment-2585047 -- не устанавливается "RU AdList JS Fixes" в "Дикой Обезъяне" для "Файр-Фокса", а без этого в "Яндекс.Дзене" не извести рекламу из-за наличия теневых блоков на странице, с помощью которых она и пихается.
Можно ли побороть?
Спасибо заранее.