Dubrowsky
Хроники одного дупла
Блогово  →  Флудыбр  → 

Цензура на Блогове!

18 Апреля 2012 года

Некоторое время назад я отправил бложек на модерацию в одну очень уважаемую биржу вечных ссылок, которую не буду называть, дабы не нарушить п. 3.8 ее лицензии :) Мне отказали с формулировкой "Сайты, содержащие ненормативную лексику, не участвуют в системе". После некоторых дебатов с администрацией я исправил этот серьезный недостаток своего cайта :)

Нет, я не стал чистить посты и комменты на предмет разных трех- (и более) буквенных слов, ибо такое решение, во-первых, противоречит духу данного веб-проекта, а во-вторых мне тупо лень заниматься чем-то подобным :) Вместо этого я поступил как любой нормальный уважающий себя кодер - сел и накодил фишечку :) Теперь женщины, дети и модераторы уважаемых бирж вечных ссылок, по идее, не должны увидеть ни одного неприличного слова, не изъявив специально такого желания.

1. Как работает

Перед выводом в браузер html-код страницы прогоняется через специальный парсер, умеющией отличать приличные слова от неприличных (ну, настолько точно, насколько это позволяет сделать убогий словарик из нескольких сотен регулярок). Неуместные слова при этом заключаются в <span> со специальным классом.

2. Магия на клиенте

Собственно, никакой особой магии. Сначала для таких слов накладывается CSS-правило, делающее слово нечитаемым (красный текст на красном фоне). Это для тех, у кого JavaScript не работает.

Далее, в бой вступает JS - он находит все неприличные слова, подсвечивает их, чтоб читались, проверяет режим цензуры - если цензура включена, показывает "зазвезженный" вариант, если выключена - слово "как есть". Добавляет обработчик клика - по клику пользователю предлагается показать/скрыть бранные слова. Если на странице обнаружены такие слова, добавляет дисклаймер в шапку.

3. Почему на клиенте?

Почему бы не передавать в браузер сразу цензурную версию страницы? Во-первых, потому что я хочу, чтоб поисковики видели сайт "как есть". Во-вторых, я хочу чтоб переключение режима происходило без перезагрузки страницы, ибо так труъшнее и круче.

4. Какие есть недостатки?

Основной недостаток - "агрессивность" словаря, которому неприличные слова мерещатся везде, где только можно. Например, первым делом он счел опасной для слуха женщин и детей фамилию "Пошибалов" :) И даже в общем-то употребительные выражения типа "карта хорватии" до доработки фильтра напильником постить было нельзя - в слове "Хорватия" ему мерещилось Бог знает что :) Немного попыхтев и прогнав через фильтр весь контент бложика, я это дело несколько исправил. Ну и вообще, ложные срабатывания доставляют некоторое количество лулзов, так что пусть будут.

5. Какие перспективы?

Ну, кодил я эту штуку конечно не только для бложека - на один проект давно просили поставить фильтр мата. Тут я его обкатываю. Качество для "боевого" использования ИМХО пока слабовато. Надеюсь, когда-нибудь дойдут руки погонять фильтр на больших текстовых коллекциях, это добавит словарю адекватности. Собственно, весь мат словообразуется вокруг десятка корней, поймать их не трудно. Основная задача - составить нормальный словарь исключений. Нашлось бы время :)

Камменты

Николай Дубровскийон самый18.04.2012, 22:27#
Для демонстрации описанного выше функционала имею сказать следующее: хуй! пизда! борода!

Ну или можете просто посмотреть пост про то, как я заебашил лук :)
Одинокий20.04.2012, 16:00#
А какой смысл в таких звездочках, все же и так понятно ))
Николай Дубровскийон самый20.04.2012, 17:14#
Ну, может кто не знает таких слов - тогда ему не понятно, и юная психика не будет испорчена, и плохому не научится у дубра :)
Андрей06.12.2014, 14:59#
Врот кампот! весёлый и полезный бложок, однозначно в закладки!!!

Написать коммент: памятка постеру

 

Крутые посты wtf??? →

05.10.2012 · 10 камментов · рейтинг 6.37
16.03.2011 · 13 камментов · рейтинг 6.32
28.06.2007 · 20 камментов · рейтинг 6.25
03.10.2012 · 8 камментов · рейтинг 5.69
11.07.2011 · 8 камментов · рейтинг 5.09

Последне камменты

22.07.2017  СергейПочему не работает form.submit(): Также столкнулся с неработающим .submit() при отпр...
20.07.2017  СергейСвязь: Здравствуйте. Хочу предложить Вам тройной обмен п...
17.07.2017  Илья АрхипкинСколько журналистов в России?: Мне рассказывали как журналисты освещали акцию в К...
21.05.2017  Vadim GukОбработка кликов и цели в Яндекс.Метрике, улучшенный вариант: Большое спасибо за решение задачи.
20.05.2017  ДмитрийТестовое задание для PHP-программиста (Junior): А джуны ещё нужны у вас в компании?

Статсы