Ars Longa, Vita Brevis

Убираем тупую рекламу с bash.org.ru при помощи GreaseMonkey

Многие (если не все) знакомы с ресурсом bash.org.ru. И, хотя юмор там в последнее время очень тупой, старые шутки почитать временами можно. Помимо тупого юмора лично меня на bash.org.ru больше всего раздражает не менее тупая реклама :-) И если со всякими iframe и иже с ним AdBlock может бороться, то со вставками вида

Дэвид Блэйн раскукожил Firefox! Теперь в нём Яндекс!

он уже не справляется (так как они вставляются в вывод на сервере). Достал меня Дэвид Блейн. И Яндекс меня достал. И еще много что меня достало. Наверное, надо отдохнуть. Но речь не об этом. В общем, если меня что-то раздражает, я от этого избавляюсь (если читать, то с комфортом). Задачка как раз для Greasemonkey.

Ранее я уже приводил пример пользовательского скрипта для извлечения ASIN с amazon.com. Здесь используется нечто похожее.

Идея состоит в том, что для нормальных цитат после <hr class="iq"> сразу идет <script type="text/javascript" language="JavaScript"> и только потом <div class="q">, а в случае с рекламой <script> отсутствует; всё показано на рисунке:

Переходим к коду.

// ==UserScript==
// @name          Bash.org.ru Ads Remover
// @namespace     http://sjinks.org.ua/
// @include       http://bash.org.ru/*
// @exclude       http://bash.org.ru/abysstop
// @exclude       http://bash.org.ru/abyssbest
// ==/UserScript==

var x = document.evaluate(
    '//div[@id="quotes"]/hr[@class="iq"]/following-sibling::*[position()=1][@class="q"]',
    document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null
);

for (var i=0; i<x.snapshotLength; ++i<span class="br0"