Здравствуйте!
Хочу заставить bfilter фильтровать содержимое страницы. В мане написано следующее:
Content filter configuration is not currently covered in this man page. Please view the bfilter web page at http://bfilter.sourceforge.net/doc/content-filters.php for further information.
То есть имеется в виду что тема фильтрации контента не раскрыта в ман-странице. Топайте по указанному URL (http://bfilter.sourceforge.net/doc/content-filters.php), там все написано. Перехожу по указанному адресу. Там значит вроде как объясняется, но понять не могу.
Написано:
On Unix / Linux they are typically located in /usr/local/etc/bfilter/filters. In case of the GUI version, user-specific filters are stored in $HOME/.bfilter/filters.
The files come in pairs:
- Filter Group Name (Defines a group of filters.)
- Filter Group Name.enabled (Defines which filters are currently enabled.)
В тексте написано что _типичный_ каталог должен быть /usr/local/etc/bfilter/filters. Но я надеюсь, что коль в Debian Lenny есть каталог /etc/bfilter/filters с готовыми фильтрами, значит bfilter ищет файлы фильтров там.
Далее написано, что для фильтрации используется два файла. Первый файл должен иметь имя «группа_фильтров». Второй файл должен иметь имя «группа_фильтров.enabled». В этом втором файле отмечается, какие фильтры из первого файла разрешаются к использованию.
Какие допустимые значения для «группа_фильтров» неясно. Вполне возможно, что bfilter просто обрабатывает все файлы в каталоге /etc/bfilter/filters, и имя группы фильтров не имеет значения. Главное, чтоб для группы было два файла - основной и .enabled.
Далее написано
Let's start with the second one. It contains names of the enabled filters, one by line. Alternatively, it can contain *, which means all filters are enabled. The absence of this file is the same as having an empty file.
То есть говорится, что в файле .enabled должны содержаться разрешенные имена фильтров, одно имя на линию. Или можно написать «*», и тогда будут разрешены все фильтры из группы.
Далее описывается формат фильтров, используемый в первом (основном) файле.
Я создал в каталоге /etc/bfilter/filters два файла.
Первый - Local_filters
[Udaff top banners]
order=500
match_count_limit=1
url=.*udaff.com.*
search="/TOP.*BANNERS/"
replace="<!-- [BFilter] Remove Udaff top banners -->"
replacement_type=text
Второй - Local_filters.enabled
*
Нарочно для проверки сделал простой регексп, чтобы гарантированно найти кусок текста.
В коде главной udaff.com встречается такой текст:
<!-- TOP BANNERS-->
При срабатывании фильтра, по идее, должен получиться такой текст:
<!-- <!-- [BFilter] Remove Udaff top banners -->-->
Но этого не происходит.
Как я только не извращался - фильтрации контента нет.
Вопрос. Что я делаю не так? Как заставить bfilter фильтровать контент?
Давайте пообсуждаем предметно, а именно напишем правило, чтобы убирать верхний баннер на главной странице udaff.com.