Бывает такой момент, заходишь ты почитать новости, какая то из них тебя заинтересовывает, ты хочешь оставить комментарий и вовремя его написания замечаешь что какой то контрацептив комментатор, взял да запалил сюжетную развязку игры которую ты вот только что купил и собирался поиграть. Да, его тут же закидали минусами и нехорошими словами, но что толку, мир никогда не станет прежним и этот индивидуум встряли чему нибудь научится, а значит его сообщений хотелось бы не видеть вовсе. Либо же ты просто по глупости ввязался в спор с еще более недалеким чем ты, и тот с каждым новым сообщением находит способ зацепить тебя чтобы продолжить глупый и бессмысленный диалог. Было бы идеально если бы на стопгейме была система с черными листами, позволяющая отфильтровывать комментарии неугодных пользователей. Но увы, такой нет. Но можно это испарить своими силами, в этом поможет то что сайт после загрузки находится у нас на компьютере, и мы вольны его править как хотим, главное сделать это достаточно быстро чтобы ненужный мусор не успел показаться. В этом нам поможет 2 вещи, любой плагин для браузера позволяющий запускать JavaScript (я для FireFox использую GreasetMonkey) и замечательный язык под названием CoffeeScript .
Первое что нужно сделать это разумеется установить плагин (если вы не умеете устанавливать плагины в свой браузер то что вы делаете в интернете?). На этом заострять внимание не буду, отмечу лишь что для того чтобы наш скрипт срабатывал на каждой странице нужно указывать сайт как _http://stopgame.ru/* (нижний слеш впереди для того чтобы сайт не срезал http, он не нужен) ибо без звездочки он будет срабатывать только на главной, где комментариев нет.
И разумеется самое главное, это код скрипта:
blackList = [ 'user1', 'user2']
$(«div[id^='comment_id_']:has(a):contains('#{user }')»).remove() for user in blackList
(кавычки в коде должны быть обычными ' " ' а не ' « » ')
у неподготовленного человека от этого случается ступор, да чего там, даже у программистов которые никогда не связывались с web разработкой и то приступ сработать может, я сам 4 месяца назад смотрел на это как на темную магию.
Но ничего сложного по сути нет, в первой строчке мы заполняем массив «неугодных», ники вписываются в кавычках, без пробелов по бокам, через запятую. Вторая же строка делает за нас всю работу, а именно мы командой for user in blackList поочередно присваиваем переменной user все значения из массива blackList. Далее для каждого значения переменной user мы при помощи строки $(«div[id^='comment_id_']:has(a):contains('#{user }')») ищем все блоки комментариев которые содержат в качестве ника комментатора искомое значение, и собственно выносим их со страницы командой .remove(). Тут используется хоть и старая но все же очень популярная библиотека jQuery (которую стопгейм любезно загрузил сам и нам не нужно подключать ее отдельно).
Собственно то и все, программирования всего 2 строчки, однако есть 1 проблема, хоть CoffeeScript и может исполняться на страницах, это происходит очень медленно, потому для быстрой работы нашего года его необходимо конвертировать в JavaScript. Для этой цели существует очень полезный сайт js2.coffee он позволяет перегонять CoffeeScript в валидный JavaScript. После конвертации наш код выглядит вот так:
var blackList, i, len, user;
blackList = ['user1', 'user2'];
for (i = 0, len = blackList.length; i < len; i++) {
user = blackList[i];
$(«div[id^='comment_id_']:has(a):contains('» + user + "')").remove();
}
(кавычки в коде должны быть обычными ' " ' а не ' « » ')
тут происходит тоже самое что я описывал выше только языком JavaScript. И данный код уже можно смело копировать в плагин и наслаждаться тем как он сразу после загрузки страницы выносит всех неугодных комментаторов.
В итоге написав всего 2 строчки кода мы реализовали весьма полезную функцию на сайте. А ведь таким образом можно сделать абсолютно все что душе угодно. Можно не только фильтровать комментарии но и к примеру менять внешний вид сайта так чтобы он был более приятен глазу, как говорится на любителя, поменять шрифт, цвет фона, и тому подобное. Только следует быть осторожным в дальнейшем, ибо «забанив» слишком много активных комментаторов можно увидеть что ветки начинаются со 2-3 уровня и тд. Решил выложить скрипт сюда, может кому пригодиться, я активно им пользуюсь. если кого заинтересовал CoffeScript советую прочитать по нему документацию cidocs.ru/coffeescript, она очень короткая и отвечает на большинство вопросов, далее остается лишь немного поэкспериментировать и можно с любым сайтом делать что угодно.
Собственно берем и пользуемся, если есть вопросы постараюсь ответить.
Лучшие комментарии
atomgribИ когда это успела стать главной проблемой Интернета