Автор |
Сообщение |
1ik
Junior Member

Зарегистрирован: 05.01.2009
Сообщения: 25
|
Nan0miT писал(а): |
Еще одна мысль по блокировке рекламы с яваскриптами и иннерХТМЛ. Данный фильтр просто удаляет из <div> текст id или class если встречается слово banner. |
Встречаем код
<div id=banner class=banner>
... картинки \ флешки \ текстовая реклама ...
</div>
фильтр удалит id=banner class=banner, несработает стиль
*[class*="banner"], *[id*="banner"] {display:none !important;}
и всё содержимое дива вывалится во всей красе
Nan0miT, нужно проверять, что див именно для скрипта
PS А может с таким стилем этот фильтр и не нужен ?
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
1ik писал(а): |
Nan0miT писал(а): |
Еще одна мысль по блокировке рекламы с яваскриптами и иннерХТМЛ. Данный фильтр просто удаляет из <div> текст id или class если встречается слово banner. |
Встречаем код
<div id=banner class=banner>
... картинки \ флешки \ текстовая реклама ...
</div>
фильтр удалит id=banner class=banner, несработает стиль
*[class*="banner"], *[id*="banner"] {display:none !important;}
и всё содержимое дива вывалится во всей красе
Nan0miT, нужно проверять, что див именно для скрипта
PS А может с таким стилем этот фильтр и не нужен ? |
Я просто написал про такую возможность как блокирование скрипта по названию id/class. Можно делать проверку, пустой ли <div></div>, чтоб что не выскочило.
Я особо еще не задумывался, что там и как. Там еще приписка была: "Опять же, пока думаю, полезно это или нет."
Код: |
[Patterns]
Name = "kill script by tag 110209 [Nano]"
Active = TRUE
Limit = 1024
Match = "$NEST(<div,*ban(n|)er*,>(\s|)</div>)"
Replace = "<div><ins filter="kill script by tag" style="margin: 0; padding: 0; text-decoration: none; "></ins></div>"
|
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Еще небольшое исправление и дополнение.
Код: |
[Patterns]
Name = "kill script by tag 120209 [Nano]"
Active = TRUE
Limit = 1024
Match = "$NEST(<div,*(ban(n|)er|flashcontent)[^>]+,>(\s|)(\w|)(\s|)</div>)"
Replace = "<div><ins filter="kill script by tag" style="margin: 0; padding: 0; text-decoration: none; "></ins></div>"
|
Теперь див может содержать 1 слово.
Пока еще в разработке...
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Решил попробовать добавить проверку, находится ли картинка на другом сайте "<img*http*", но мысль оказалась не очень удачной. Лучше как раньше, без проверки на http.
Код: |
[Patterns]
Name = "kill offsite resources (black&white) 120209 [Nano]"
...
|
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Немного изменил фильтр. Теперь еще показывает тип и размер заблокированного элемента. Смотрится не очень, позже наверно сделаю указание размеров отдельным файлом.
Код: |
[Patterns]
Name = "kill object by size 200209 [Nano]"
Active = TRUE
Limit = 1024
Match = "$NEST(<(object)\1,*((width|height)(=|:)("|'|)([#468])("|'|))\2*((weight|height)(=|:)("|'|)([#60])("|'|))\3*,</object>)|"
"$NEST(<(object)\1,*((width|height)(=|:)("|'|)([#60])("|'|))\2*((weight|height)(=|:)("|'|)([#468])("|'|))\3*,</object>)|"
"$NEST(<(object)\1,*((width|height)(=|:)("|'|)([#240])("|'|))\2*((weight|height)(=|:)("|'|)(|[#400])("|'|))\3*,</object>)|"
"$NEST(<(object)\1,*((width|height)(=|:)("|'|)([#400])("|'|))\2*((weight|height)(=|:)("|'|)([#240])("|'|))\3*,</object>)|"
"$NEST(<(object)\1,*((width|height)(=|:)("|'|)([#200])("|'|))\2*((weight|height)(=|:)("|'|)([#220])("|'|))\3*,</object>)|"
"$NEST(<(object)\1,*((width|height)(=|:)("|'|)([#220])("|'|))\2*((weight|height)(=|:)("|'|)([#200])("|'|))\3*,</object>)|"
"$NEST(<(object)\1,*((width|height)(=|:)("|'|)([#234])("|'|))\2*((weight|height)(=|:)("|'|)([#60])("|'|))\3*,</object>)|"
"$NEST(<(object)\1,*((width|height)(=|:)("|'|)([#60])("|'|))\2*((weight|height)(=|:)("|'|)([#234])("|'|))\3*,</object>)|"
"$NEST(<(a)\1,*((width|height)(=|:)("|'|)([#468])("|'|))\2*((weight|height)(=|:)("|'|)([#60])("|'|))\3*,</a>)|"
"$NEST(<(a)\1,*((width|height)(=|:)("|'|)([#60])("|'|))\2*((weight|height)(=|:)("|'|)([#468])("|'|))\3*,</a>)|"
"$NEST(<(a)\1,*((width|height)(=|:)("|'|)([#240])("|'|))\2*((weight|height)(=|:)("|'|)([#400])("|'|))\3*,</a>)|"
"$NEST(<(a)\1,*((width|height)(=|:)("|'|)([#400])("|'|))\2*((weight|height)(=|:)("|'|)([#240])("|'|))\3*,</a>)|"
"$NEST(<(a)\1,*((width|height)(=|:)("|'|)([#200])("|'|))\2*((weight|height)(=|:)("|'|)([#220])("|'|))\3*,</a>)|"
"$NEST(<(a)\1,*((width|height)(=|:)("|'|)([#220])("|'|))\2*((weight|height)(=|:)("|'|)([#200])("|'|))\3*,</a>)|"
"$NEST(<(img)\1,*((width|height)(=|:)("|'|)([#468])("|'|))\2*((weight|height)(=|:)("|'|)([#60])("|'|))\3*,>)|"
"$NEST(<(img)\1,*((width|height)(=|:)("|'|)([#60])("|'|))\2*((weight|height)(=|:)("|'|)([#468])("|'|))\3*,>)"
Replace = "<ins filter="kill object by size" style="margin: 0; padding: 0; text-decoration: none; ">"
"<a href="/" target="_self" style="margin: 0; padding: 0; font-size: 18px !important; text-decoration: none;" "
"title="Proxomitron: kill object by size (\1: \2 x \3)">"
"<span style="color: #FFBD00; font-size: 40px; margin: 0; padding: 0; text-decoration: none;">.</span></a></ins>"
|
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Решил попробовать исключать определенные адреса из сравнения для фильтра kill offsite resources (black&white).
Пока тестирую для скриптов, расположенных по адресу: google.com*/(api|solutions), а именно, поддерживает ли прокс такую запись.
Код: |
[Patterns]
Name = "kill offsite resources (black&white) 010309 [Nano]"
Active = TRUE
URL = "(^*$LST(KORBypassList))"
Limit = 1024
Match = "$NEST(<a,*href=$AV((http://([0-9a-zA-Z_\-.@\:]+)\2*)\1)*<img*,</a>)($TST(\2=$LST(KORBlackList))$SET(9=display: none;))|"
"$NEST(<a,*href=$AV((http://([0-9a-zA-Z_\-.@\:]+)\2*)\1)*<img*,</a>)((^$TST(\2=(\h|$LST(KORWhiteList))))&&(^$TST(\1=*.(jpg|gif|png))))|"
"$NEST(<script,*$AV((http://([0-9a-zA-Z_\-.@\:]+)\2/*)\1)*,</script>)($TST(\2=$LST(KORBlackList))$SET(9=display: none;))|"
"$NEST(<script,*$AV((http://([0-9a-zA-Z_\-.@\:]+)\2/*)\1)*,</script>)((^$TST(\2=(\h|$LST(KORWhiteList))))&&(^$TST(\1=*google.com*/(api|solutions)*)))|"
"$NEST(<iframe,*src=$AV((http://([0-9a-zA-Z_\-.@\:]+)\2/*)\1)*,</iframe>)($TST(\2=$LST(KORBlackList))$SET(9=display: none;))|"
"$NEST(<iframe,*(cgi-bin*\&rnd)\1*,</iframe>)$SET(9=display: none;)|"
"$NEST(<iframe,*src=$AV((http://([0-9a-zA-Z_\-.@\:]+)\2/*)\1)*,</iframe>)(^$TST(\2=(\h|$LST(KORWhiteList))))|"
"$NEST(<object,*src=$AV((http://([0-9a-zA-Z_\-.@\:]+)\2/*)\1)*,</object>)(^$TST(\2=(\h|$LST(KORWhiteList))))"
Replace = "<ins filter="kill offsite resources" style="margin: 0; padding: 0; text-decoration: none; \9">"
"<a href="\1" target="_blank" style="margin: 0; padding: 0; font-size: 18px !important; text-decoration: none;" title="Proxomitron: kill offsite resources">"
"<span style="color: red; margin: 0; padding: 0; text-decoration: none;">.</span></a></ins>"
|
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Фильтр для сайта torrents.ru.
Код: |
[Patterns]
Name = "kill script by tag {torrents.ru} 270409 [Nano]"
Active = TRUE
URL = "([^/]++.|)torrents.ru/"
Limit = 1024
Match = "$NEST(<div,*padding:*,></div>)"
Replace = "<div><ins filter="kill script by tag" style="margin: 0; padding: 0; text-decoration: none; "></ins></div>"
|
Особо не проверял, но с виду работает.
|
|
|
К началу |
Профиль Сообщение |
 |
1ik
Junior Member

Зарегистрирован: 05.01.2009
Сообщения: 25
|
Nan0miT писал(а): |
Еще небольшое исправление и дополнение.
Код: |
[Patterns]
Name = "kill script by tag 120209 [Nano]"
Active = TRUE
Limit = 1024
Match = "$NEST(<div,*(ban(n|)er|flashcontent)[^>]+,>(\s|)(\w|)(\s|)</div>)"
Replace = "<div><ins filter="kill script by tag" style="margin: 0; padding: 0; text-decoration: none; "></ins></div>" |
Теперь див может содержать 1 слово.
Пока еще в разработке... |
Заметил, что такие дивы часто содержат 1-2 слова, заканчивающиеся тремя точками:
Загрузка ...
Загружается, подождите ...
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Последняя версия фильтра для overclockers.ru (удаляет таблицы с рекламой)
Код: |
[Patterns]
Name = "overclockers.ru 210509 {site} [Nano]"
Active = TRUE
URL = "([^/]++.|)overclockers.ru/"
Limit = 1024
Match = "(<OBJECT ) $SET(1=<OBJECT style="display: none;" )|"
"(<table cellspacing="0" cellpadding="0" border="0" width="302" height="245") $SET(1=<table style="display: none;" )|"
"(<table border="0" height="65" cellspacing="0" cellpadding="0") $SET(1=<table style="display: none;" )|"
"(<table cellpadding="0" cellspacing="0" height="72") $SET(1=<table style="display: none;" )|"
"($NEST(<table,*EEEEEE*,</table>))"
Replace = "\1"
|
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Новый баг на 2baksa.net: document.onmouseup=PopShow3;
Источник: http://www.2baksa.net/counter.js
Багфикс:
Код: |
[Patterns]
Name = "Cleaner 250809 {site} [Nano]"
Active = TRUE
URL = "([^/]++.|)2baksa.net/"
Limit = 256
Match = "$NEST(<script,(*2baksa.net/counter.js*)\1,</script>)"
Replace = "<ins\1</ins>"
|
Или если пользуетесь фильтром по резке скриптов, то добавьте в него ссылку - источник бага, указанную выше.
Или в блоклист строку: ([^/]++.|)2baksa.net/counter.js - тоже по идее должно помочь.
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Этот баг с мышей похоже перерастает в эпидемию.
Пока не решил, как лучше, поэтому пока так:
Код: |
[Patterns]
Name = "Cleaner 280809 {site} [Nano]"
Active = TRUE
Limit = 256
Match = "document.onmouse"
Replace = "document_onmouse"
|
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Если вам больше важна безопасность, чем всплывающие окна и куки, то можно еще так:
Код: |
[Patterns]
Name = "kill nasty js 040110 [Nano]"
Active = TRUE
URL = "$TYPE(js)"
Limit = 1024
Match = "(window.open)\2 $SET(1=0; return;)|"
"(navigator.cookieEnabled)\2 $SET(1=false)"
Replace = "\1"
|
Просто встречал такие строки в попапах. Лучше пока ничего не придумал. Можете дописать ограничение по сайтам.
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Проверка возраста на gametrailers.com
Код: |
[Patterns]
Name = "NeoPlayer ageCheck 190410 [Nano]"
Active = TRUE
Bounds = "$NEST(<input,>)"
Limit = 512
Match = "*ageCheck*(\w[\w\d]+.write\([^\)]+\)\;)\1*"
Replace = "<script type="text/javascript">\1</script>"
|
(я не ограничивал одним сайтом, может еще где сработает)
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Ссылка на видео youtube.com
Код: |
[Patterns]
Name = "youtube.com direct link 300410 {site} [Nano]"
Active = TRUE
URL = "([^/]++.|)youtube.com/"
Limit = 20000
Match = "($NEST(<script,*(http%3A%2F%2Fv[0-9]+.lscache[0-9]+.\w.youtube.com%2Fvideoplayback*id%3D[0-9a-z]+)\1%2C([0-9]+)\2%7C*,</script>))\0"
"("
" ($TST(\2=22) $SET(3=1080p HD (mp4)))"
"|($TST(\2=35) $SET(3=720p HD (mp4)))"
"|($TST(\2=34) $SET(3=480p (flv)))"
"|($TST(\2=5) $SET(3=360p (flv)))"
"|($TST(\2=[0-9]+) $SET(3=undef:\2 (flv)))"
")"
Replace = "\0<script type="text/javascript">"
"document.getElementById("watch-headline-user-info").innerHTML+=' <span style="font-weight: bold;"><a style="color: red;" href="$UESC(\1)">DOWNLOAD</a> (Quality: \3)</span>';"
"</script>"
|
(обновлено: 30.04.2010 00:32 Москва)
Ссылка дописыватся на странице, где-то под названием.
Сильно не заморачивался, показывается первая найденная ссылка, как правило это лучшее качество из доступных.
Не забывайте, что формат flv там чем-то подпорчен, и скачанное в данном формате видео нужно перекодировать в любое другое.
Формат mp4 пока нормальный, смотреть можно сразу после скачивания.
|
Последний раз редактировалось: Nan0miT (Пт, Апр 30 2010 01:09), всего редактировалось 1 раз |
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Ссылка на видео youtube.com (кнопка)
Код: |
[Patterns]
Name = "youtube.com direct link (button) 300410 {site} [Nano]"
Active = TRUE
URL = "([^/]++.|)youtube.com/"
Limit = 20000
Match = "($NEST(<script,*(http%3A%2F%2Fv[0-9]+.lscache[0-9]+.\w.youtube.com%2Fvideoplayback*id%3D[0-9a-z]+)\1%2C([0-9]+)\2%7C*,</script>))\0"
"("
" ($TST(\2=22) $SET(3=1080p HD (mp4)))"
"|($TST(\2=35) $SET(3=720p HD (mp4)))"
"|($TST(\2=34) $SET(3=480p (flv)))"
"|($TST(\2=5) $SET(3=360p (flv)))"
"|($TST(\2=[0-9]+) $SET(3=undef:\2 (flv)))"
")"
Replace = "\0<script type="text/javascript">"
"dlink = '<button type="button" title="Download video with best quality" class="master-sprite yt-uix-button yt-uix-tooltip" href="$UESC(\1)" onclick=";window.location.href=this.getAttribute(';"
"dlink += "'href'";"
"dlink += ');return false;"><span class="yt-uix-button-content">Download (Quality: \3)</span></button>';"
"document.getElementById("watch-headline-user-info").innerHTML += dlink;"
"</script>"
|
Отличие от предыдущего - ссылка оформлена в виде кнопки. Чисто для эстетов.
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Ссылка на видео youtube.com (все доступные ссылки)
Код: |
[Patterns]
Name = "youtube.com direct links (buttons) 300410 {site} [Nano]"
Active = TRUE
URL = "([^/]++.|)youtube.com/"
Limit = 20000
Match = "($NEST(<script,*(fmt_url_map*(http%3A%2F%2Fv[0-9]+.lscache[0-9]+.\w.youtube.com%2Fvideoplayback*id%3D[0-9a-z]+)\1%2C([0-9]+)\2%7C*fmt_stream_map)\9*,</script>))\0"
Replace = "\0<script type="text/javascript">"
"var input = '\9'; "
"var buttons = [];"
"var uni = [];"
"var pat=/http\%3A\%2F\%2Fv[0-9]+.lscache[0-9]+.[a-z]+.youtube.com%2Fvideoplayback.*?id%3D[0-9a-z]+%2C[0-9]+%7C/g;"
"var matches = input.match(pat);"
"for (i in matches) {"
" var ml = matches[i];"
" var pat2=/(http\%3A\%2F\%2Fv[0-9]+.lscache[0-9]+.[a-z]+.youtube.com%2Fvideoplayback.*?id%3D[0-9a-z]+)%2C([0-9]+)%7C/g;"
" var data = pat2.exec(ml);"
" if (uni.indexOf(data[1])>0) continue;"
" uni.push(data[1]);"
" var quality = "???p (flv)";"
" if (data[2] == 22) quality = "1080p HD (mp4)";"
" if (data[2] == 35) quality = "720p HD (mp4)";"
" if (data[2] == 34) quality = "480p (flv)";"
" if (data[2] == 5) quality = "360p (flv)";"
" dlink = '<button type="button" title="Download video" class="master-sprite yt-uix-button yt-uix-tooltip" href="' + unescape(data[1]) + '" onclick=";window.location.href=this.getAttribute(';"
" dlink += "'href'";"
" dlink += ');return false;"><span class="yt-uix-button-content">Download (' + quality + ')</span></button>';"
" buttons.push(dlink);"
"}"
"document.getElementById("watch-headline-user-info").innerHTML += buttons.join(' ');"
"</script>"
|
В данном варианте показываются все доступные ссылки.
Особо пока не проверял, надеюсь будет работать.
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Фильтр для рекламной странички и проверки возраста на gamespot.com
Код: |
[Patterns]
Name = "gamespot.com ads page timer and age gate 010510 {site} [Nano]"
Active = TRUE
URL = "([^/]++.|)gamespot.com/"
Limit = 256
Match = "(setTimeout\('window.location.reload\(\)',[0-9]+\);) $SET(1=setTimeout('window.location.reload()',100);)"
"|"
"(<form class="age_gate" name="downloadAgeGate" method="post" action="*/([0-9]+)\2")\0 "
"$SET(1=\0 style="display:none;">"
"<select name="dob[Month]"><option label="May" value="05" selected="selected">May</option></select>"
"<select name="dob[Day]"><option label="01" value="1" selected="selected">01</option></select>"
"<select name="dob[Year]"><option label="1981" value="1981" selected="selected" >1981</option></select>"
"<input type="hidden" name="nowplaying" value="\2" />"
"<input id="autosubmit" type="submit" name="submit_btn" value="Enter" />"
"</form>"
"<script type="text/javascript">document.getElementById("autosubmit").click();</script>"
"\0"
")"
Replace = "\1"
|
|
|
|
К началу |
Профиль Сообщение |
 |
Гость
|
Народ, часто бывает слушаю музыку через youtube.com и для лучшего качества АУДИО добавляю "&fmt=18" (включается стерео), вообщем, скушное это дело копипэйстить для каждого ролика в отдельности, может можно как-нибудь сделать, шоб "&fmt=18" добавлялось автоматически?! Заранее спасибо за ответ
|
|
|
К началу |
|
 |
Alex Qwerty
Gold Member

Зарегистрирован: 20.07.2007
Сообщения: 206
|
Поищи тут "URL substitute".
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Фильтр, который запрещает выполнять document.write для текста со словом script.
Код: |
[Patterns]
Name = "document.write no script 260510 [Nano]"
Active = TRUE
Limit = 512
Match = "($NEST(document.write\(,(*)\1,\);))\0"
Replace = "var testme = \1; if (testme.toLowerCase().indexOf("script") == -1) document.write(testme);"
|
Тестовая версия.
В будущем постараюсь придумать, как сузить поиск, но пока так.
Применять в особо тяжелых случаях, для конкретных сайтов. Можно и для всех, но за результат я не ручаюсь.
|
|
|
К началу |
Профиль Сообщение |
 |
|
|
Следующая тема
Предыдущая тема
Вы можете начинать темы Вы можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
P o w e r e d b y p h p B B
© p h p B B G r o u p :: T h e m e b a s e d o n FI T h e m e ::
Часовой пояс: GMT + 3
|