Content Master
Расширение "Content Master" предназначено для изменения содержимого загружаемых HTML-страниц. Фильтрация производится "налету" с помощью собственных правил и ключевых слов, Черного списка HC и подключенных списков AdblockPlus и AdMuncher.
Наиболее часто "Content Master" применяется для удаления рекламных баннеров, скриптов, счетчиков, фреймов и т.п. Рекламные элементы удаляются со страниц полностью так, что больше ничего в браузере не напоминает об их наличии. Пустые места от удаленных элементов, как правило, "схлопываются".
Установка
Настройка
Интерактивный режим
FAQ
Установка
- скачать архив
- распаковать в требуемое место (рекомендуется папка HandyCache\Extensions)
- открыть Handycache – Настройки – Общие – Расширения – Добавить расширение (кнопка «+» на тулбаре), выбрать файл Content_Master.lua из только что распакованной папки. В списке расширений добавится «Content Master 1.xx»
- включить это расширение в списке, отметив соответствующую галку
Вход в настройки СМ:
- открыть Handycache – Настройки – Общие – Расширения
- выбрать «Настроить расширение» (кнопка с изображением гаечного ключа на тулбаре) или дважды кликнуть по строке «Content Master 1.xx» в списке расширений
Внимание: при попытке входа в настройки СМ может появиться системное сообщение о том, что "приложению не удалось запуститься, поскольку MSVCP100.dll не был найден. Повторная установка приложения может исправить эту проблему".
В другом варианте окно настроек СМ может не появиться молча, а указанное сообщение можно увидеть, запустив находящийся в папке СМ файл wxLuaFreeze.exe.
Происходит это оттого, что по каким-то причинам в системе не всегда присутствует файл MSVCP100.dll.
Microsoft отвечает, что нужен установленный Microsoft Visual C++ 2010 Redistributable Package:
Microsoft Visual C++ 2010 Redistributable Package (x86)
Microsoft Visual C++ 2010 Redistributable Package (x64)
При первом после установки СМ заходе в настройки сначала рекомендуется нажать кнопку "Обновить сейчас" на вкладке "Общие настройки". Во-первых, это сразу обновит СМ до последней существующей версии. Во-вторых, заполнит папку rules/ наиболее популярными подписками, которые можно начать подключать.
Примечание: при обновлении окно настроек СМ пропадает, и для выбора фильтров его необходимо вызвать снова после завершения обновления (на завершение укажет всплывающее окошко в правом нижнем углу экрана).
Слева иерархический список пользователей.
СМ пользуется перечнем пользователей, установленным в настройках НС (Настройки-Общие-Доступ-Список пользователей).
Пользователь ALL является родительским по отношению ко всем.
По центру перечень разделов и входящих в них групп фильтров с указанием количества срабатываний в каждом из них для выбранного пользователя.
Фильтры ContentMaster:
Назначение собственных фильтров Content Master - не повторение подходов AdBlockPlus и AdMuncher, а попытка восполнить пробелы в организации системы фильтрования указанных приложений.
Задаются в текстовом файле (пример). Фильтры описываются в разделах. Начало раздела задается строкой вида "## ИМЯ_РАЗДЕЛА"
Здесь и далее regex - регулярное выражение PCRE
Фильтр |
Раздел |
Формат фильтра |
Работа фильтра |
Удаление по class/id |
CLASS/ID |
regex1 или regex1#~#regex2
|
удаление из HTML элементов по ключевым значениям их атрибутов class и id regex1 - искомый фрагмент параметра 'class' или 'id' HTML-элемента regex2 - URL, для которого фильтр работает |
Удаление по комментарию |
COMMENTS |
regex1 или regex1#~#regex2
|
удаление из HTML блоков по ключевым словам в типовых комментариях regex1 - искомый фрагмент комментария regex2 - URL, для которого фильтр работает. Найденный комментарий должен иметь пару - закрывающий комментарий, имеющий тот же родительский элемент. Например: <!-- Banner --> Text <!-- /Banner --> - сработает <!-- Banner --> <div> Text </div> <!-- /Banner --> - сработает <!-- Banner --> <div> Text <!-- /Banner --> </div> - НЕ сработает
|
Удаление скриптов с заданным текстом |
SCRIPT |
regex1 или regex1#~#regex2
|
если в ява-скрипте найден искомый фрагмент, то весь скрипт удаляется. Фильтр применяется только к скриптам, меньшим 16 кБ regex1 - искомый фрагмент скрипта regex2 - URL, для которого фильтр работает Поиск ведется в HTML (элементы <script>, параметры on... в тэгах, ссылки вида "javascript://...") и в файлах ява-скриптов |
Удаление по размеру |
SIZE |
WidthxHeight
|
удаление элементов по их размерам (атрибуты witdh и height в тэгах) Width и Нeight - числа, описывающие значения параметров width и height HTML-элемента |
Замена текста |
REPLACEMENTS |
regex1#~#regex2#~#Замена |
regex1 - URL, для которого фильтр работает regex2 - искомый фрагмент текста Замена - строка, которой будут заменяться найденные фрагменты; если этот аргумент опущен, то найденные подстроки будут заменяться пустой строкой (удаляться); в строке могут использоваться конструкции PCRE \n (n=0..9) и \k<name> |
Вставка CSS |
STYLES |
regex1#~#css-string |
если URL страницы соответствует regex1, то вставляет в ее начало элемент <style> со строкой css-string
|
Не фильтровать страницы с URL |
EXCEPTIONS |
regex1 |
если URL страницы соответствует regex1, то СМ ее не обрабатывает (тот же эффект дает одноименный фильтр Admuncher) |
Интерактивное удаление |
INTERACTIVE |
|
удаление элементов, ранее выбранных пользователем в интерактивном режиме Фильтры этого типа автоматически формируются Content Master'ом и задания их пользователем вручную не требуют |
Фильтры HandyCache:
- Удаление элементов с URL
- удаление рекламных HTML-элементов путем поиска в них URL по правилам Черного списка HC
- Блокировка запросов с URL
- блокирование загрузки запросов по правилам Черного списка HC.
Казалось бы, зачем это делать при наличии Черного списка НС? В случае СМ можно подключать несколько Черных списков, а также устанавливать разные Черные списки разным пользователям
- Белый список
- не будут удаляться элементы, в которых есть URL, прописанный в Белом списке HC
При отображении срабатываний есть нюанс: НС считает срабатыванием Белого списка соответствие URL правилу из этого списка независимо от того, предотвращено ли этим правилом реальное срабатывание Черного списка. СМ засчитывает Белому списку только случаи, когда им непосредственно предотвращено срабатывание Черного
Фильтры AdblockPlus:
Adblock Plus - анти-рекламное расширение для браузера FireFox. Content Master позволяет применять его правила независимо от используемого браузера. Реализована поддержка не всех типов правил AdblockPlus, но большая их часть. В этот раздел можно подключить и файлы черных списков антибаннера Касперского
- Удаление элементов с URL
- удаление HTML-элементов путем сопоставления их URL с правилами AdblockPlus
- Скрытие элементов
- скрытие HTML-элементов с помощью селекторов CSS правилами AdblockPlus
Фильтры AdMuncher:
- Удаление скриптов с заданным текстом
- удаление элементов <SCRIPT> по содержащемуся внутри них тексту
- Удаление таблиц с заданным текстом
- удаление элементов <TABLE> по содержащемуся внутри них тексту
- Удаление div/span с заданным текстом
- удаление элементов <DIV> и <SPAN> по содержащемуся внутри них тексту
- Удаление форм с заданным текстом
- удаление элементов <FORM> по содержащемуся внутри них тексту
- Удаление IMG с замещающим текстом
- удаление элементов <IMG> по тексту в атрибуте alt
- Блокировка запросов с URL
- блокировка запросов рекламных URL (аналог Черного списка HC)
- Удаление ссылок на URL
- удаление HTML-элементов путем поиска рекламных URL внутри тэгов
- Удаление картинок и др. с URL
- удаление медиа-содержимого по URL
- Не фильтровать страницы с URL
- СМ отключен для этих страниц (действие аналогично одноименному фильтру ContentMaster)
- Вставка JS
- скрытие рекламных HTML-элементов с помощью скриптов AdMuncher
- Вставка CSS
- скрытие рекламных HTML-элементов с помощью селекторов CSS правилами AdMuncher
- Замена текста
- замена одного текста на другой. Фильтруются HTML- и JS-файлы
- Не фильтровать элементы с заданным текстом
- если захваченный элемент содержит строку с заданным текстом, то этот элемент не будет вырезан
Справа перечень подписок на текущий раздел фильтров для указанного пользователя.
- Контекстное меню
- Вызывается правым кликом мыши. Содержит:
- Редактировать
- открывает выбранный файл в редакторе
- Удалить из списка
- удаляет выделенный файл из перечня подписок
- Кнопка "Добавить файл"
- позволяет выбрать файл и добавить его в перечень подписок.
Внимание: файлы надо добавлять только соответствующие текущей выбранной группе фильтров. К примеру, если текущая группа "Content Master", то сюда можно добавить ContentMaster_Default.txt, но ошибочно будет добавить AdMuncher_Default.txt
- Клавиша отключения СМ
- код горячей клавиши для временного отключения расширения
- Клавиша включения интерактивного режима
- код горячей клавиши для входа в интерактивный режим
- Не обрабатывать ответы
- эта группа опций предназначена для оптимизации работы СМ:
- С кодом ответа, отличным от 200
- ответы сервера, отличные от 200, обрабатываться не будут
- Отличные от HTML
- если в заголовке ответа сервера нет Content-Type: text/html, то ответ не обрабатывается
- Сформированные НС
- НС сам формирует некоторые ответы. Например, при срабатывании списков «Черный», «Переадресация», «Только из кэша». Если включить эту опцию, то такие ответы обрабатываться не будут
- Без срабатываний
- СМ запоминает адрес запроса, если в ходе его обработки не сработало ни одно правило. При повторном обращении к этому адресу в пределах данной сессии его обработка не производится
- Интервал автоматического обновления, ч
- время в часах, через которое СМ будет проверять наличие обновлений
- Обновить сейчас
- проверка обновления СМ и списков фильтров в интернете. Ссылки на подлежащие обновлению подписки находятся в файле cm_update_local.cfg. Можно удалять ненужные или подключать новые подписки путем редактирования этого файла
- Редактировать фильтры в
- задание пути к файлу редактора фильтров (вызывается с помощью контекстного меню "Редактировать" списка файлов на вкладке "Фильтры"). Путь можно указать вручную в строке ввода или выбрать в диалоге, вызываемом по нажатию кнопки "Изменить"
- Вести лог
- вывод информации работе СМ в отдельный лог-файл ContentMasterLog.html, находящийся в основной папке СМ. Лог нужен в целях проверки работы фильтров. В лог пишется информация о примененных фильтрах, показывается, что удалено, а что вставлено в исходный текст. Информация об измененных СМ страницах выводится в прямоугольниках салатного цвета. При клике по прямоугольнику разворачивается подробная информация о сработавших на странице фильтрах. При повторном клике информация сворачивается.
Информация о срабатывании фильтра в числе прочего включает сведения о файле, в котором его можно найти. Эти сведения выводятся в виде: ContentMaster: Замена текста Файл 1, Строка 154. Это означает, что сработавший фильтр замены текста находится в первом по порядку файле из перечня подписок ContentMaster в строке с номером 154.
Внимание: включенный лог уменьшает производительность СМ.
Бледный цвет элементов списков означает, что включенность соответствующей настройки наследуется от включенности той же настройки родительского пользователя. Наследование отменяется/включается средней кнопкой мыши.
Cодержит информацию о СМ и его авторе.
Предназначен для удаления элементов страниц путем простого клика по ним мышью.
Страница в браузере приобретает вид, указанный на рисунке. Сверху появляется панель красного цвета с подсказкой. Движения мыши подсвечивают красным цветом элементы страницы. Информация о выделенном элементе выводится в строку статуса браузера.
Элементы удаляются кликом мыши, восстанавливаются в обратном порядке с помощью Ctrl+Click. Все сделанные изменения сохраняются с помощью Shift+Click, после чего необходимые фильтры автоматически прописываются в файл CMAutoRules_<имя пользователя>.txt в папке rules. Его необходимо подключить как подписку раздела "Сontent Мaster". После сохранения изменений откат в интерактивном режиме невозможен, придется вручную править указанный файл.
Способы входа в режим:
- в начале загрузки страницы нажать клавишу включения интерактивного режима
- использовать букмарклет (по этой ссылке не переходить, а перетащить ее в браузере на панель быстрого доступа или в закладки)
- в адресной строке браузера вручную дописать к адресу страницы cm_interactive и загрузить страницу с таким адресом
Способы выхода из режима:
- перегрузить страницу с исходным адресом в браузере
- применить тот же букмарклет
- Почему после старта СМ открытие первой страницы происходит ощутимо дольше последующих?
- Для обеспечения работы всех подключенных подписок СМ должен их предварительно инициализировать. На это может уходить от одной до десятков секунд. Инициализация происходит для каждого пользователя в момент получения от него первого запроса после включения СМ или изменения настроек СМ.
- Стало всплывать сообщение об ошибке в регулярном выражении и то что часть функций СМ будет отключена.
- Это признак наличия по крайней мере в одном из файлов-подписок неверного с точки зрения синтаксиса регулярных выражений правила. Попробуйте отключить последний подключенный файл и посмотреть, пропадет ли ошибка. Если нет, то последовательным отключением остальных найдите тот, который создает проблему. Если самостоятельно ошибку в этом файле найти не получается, можно написать на форум, где обязательно помогут.
- Что это за сведения выводит СМ в колонку "Правила" монитора НС?
- Если запрос заблокирован СМ, то выводится информация вида: CM:HC.1-261. Это означает, что блокировка осуществлена фильтром из группы Handycache, находящимся в первом по порядку файле из перечня подписок Handycache в строке с номером 261. Условные обозначения: HC - Handycache, AM - AdMuncher, ABP - AdBlockPlus, CM - ContentMaster.
Если содержимое страницы обработано СМ, то выводится сообщение вида: CM:3 hits. Это означает, что СМ внес в текст страницы 3 изменения.
- Что это за запросы http://local.cm/... видны в мониторе НС? С отключенным СМ их нет.
- Эти запросы формирует сам СМ, чтобы добавить на страницу нужные ява-скрипты или CSS.
Файлы http://local.cm/helper.js, http://local.cm/toolbar_transparent.gif, http://local.cm/toolbar_iframe.htm добавляются при работе фильтра 'AdMuncher-Вставка JS'.
Файл http://local.cm/helper.css добавляется при работе фильтра 'AdMuncher-Вставка CSS' или 'AdBlockPlus-Скрытие элементов'.
- Есть ли поддержка моего родного языка?
- В СМ заложена мультиязычность. Язык устанавливается автоматически в зависимости от настройки HC-Общие-Вид-Interface language. Если в папке language/ нет соответствующего языкового файла, используется английский язык.
- Если включена та или иная группа фильтров удаления элементов по URL, то где конкретно они вырезаются?
- При удалении по URL в HTML адрес ищется в:
- параметре 'src' элементов <audio>, <embed>, <frame>, <iframe>, <img>, <input>, <script>, <source>, <track>, <video>
- параметре 'href' элементов <a>, <area>, <link>
- параметре 'data' элемента <object>
- параметре 'value' элемента <param name='movie'>
соответственно все эти элементы вырезаются
В ява-скриптах URL ищется в конструкциях:
- $jQ.ajax({url:...});
- .src=...
- везде по слову 'http', если по контексту похоже, что это параметр функции или присваивание переменной
найденные конструкции вырезаются
В CSS URL ищется в конструкциях:
- background:
- background-image:
- list-style:
- list-style-image:
- content:
- @import
найденные конструкции вырезаются
- В какой последовательности СМ исполняет правила. То есть он обрабатывает код страницы сначала своими, потом Адманчеровскими, потом адблоковскими и уже в конце правилами ЧС НС?
- Четкой последовательности заведомо нет. Каждый раз она зависит от внешних факторов. Общая направленность действий СМ следующая:
- с помощью правил ContentMaster и AdMuncher 'Не фильтровать страницы с URL' проверяется допустимость фильтрации страницы
- работают вперемешку фильтры 'ContentMaster-Замена текста', 'AdMuncher-Замена текста'. Затем СМ приступает к анализу каждого HTML-элемента
- фильтруются CSS, находящиеся в открывающем тэге элемента
- фильтруются JS, находящиеся в открывающем тэге элемента
- если элемент <head>, то в его начало вставляются JS, сформированные фильтрами 'AdMuncher-Вставка JS', а также CSS, сформированные фильтрами 'ContentMaster-Вставка CSS', 'AdBlockPlus-Скрытие элементов' и 'AdMuncher-Вставка CSS'
- применяются фильтры интерактивного режима ContentMaster
- применяются фильтры удаления по комментарию ContentMaster
- обрабатывается открывающий тэг элемента с целью поиска "черных" URL, значений параметров class и id для фильтра 'ContentMaster-Удаление по class/id', сведений о размере элемента для применения фильтра 'ContentMaster-Удаление по размеру', замещающего текста для картинок с целью применения соответствующего фильтра AdMuncher
- исследуется тело элемента фильтрами ContentMaster и AdMuncher на предмет нахождения заданного текста
- при нахождении кандидата на вырезание он проверяется по белым спискам HandyCache, AdBlockPlus, AdMuncher на предмет уточнения необходимости вырезания