Форумы Форум www.proxomitron.ru
Все о программе Proxomitron
Главная  • FAQ для форума  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Личные сообщения  •  Вход
 PageEraser: Удаляем мусор на страницах одним кликом
 Сайт -> Форумы » Фильтры
Следующая тема
Предыдущая тема

Новая тема  Ответить
Автор Сообщение
lexxICON
Platinum Member
Platinum Member


Зарегистрирован: 13.07.2004
Сообщения: 596

СообщениеДобавлено: Вс, Окт 23 2005 15:48 Цитировать |  |  | 

Последняя версия фильтра всегда находится в этом сообщении
Текущая версия: PageEraser [LXX] v4.0



Описание:

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

При этом совсем не обязательно иметь никаких специальных знаний. Всё интуитивно понятно и просто. Вся работа пользователя сводится к щелчку по закладке браузера, визуальному режиму и кликам мыши.

PageEraser состоит из двух частей: первая базируется на двух одноименных фильтрах Proxomitron'а, непосредственно зачищающих html-код страниц; вторая - это js-сценарии, загружаемые из директории ..\html\PEraser\ и обеспечивающие интерактивное взаимодействие с пользователем.

Более подробную информацию см. в справке внутри архива.


Скачать фильтр:

Зеркало#1 googlepages
Зеркало#2 upload2.net


Изменения в новой версии:

версия 4.0 (8.11.2006):
  • Произошло разделение на фильтры прокса и js-сценарии, отвечающие за взаимодействие с пользователем.
  • За счет этого было, в частности, реализовано следующее (в режиме редактирования):
    • Режим редактирования теперь инициируется только закладкой в браузере - никаких горячих клавиш и связанных с этим конфликтов.
    • Режим редактирования "убирается" всё той же закладкой. Процесс цикличен. Таки образом число вынужденных перезагрузок сведено к минимуму.
    • Элементы выделяются шустрее, а страница не дергаются из-за постоянных перерисовок рамок
    • Можно фильтровать всякий хлам - мелкие "пустые" элементы, а также крупные, соизмеримые со страницей объекты
    • Теперь дубликаты, если таковые имеются на странице, можно также выделить. Сразу видно насколько безопасно можно удалить текущий объект
    • Можно выделять ближайшего предка выделяемого элемента, которого также можно удалить.
    • и др.
  • Упрощена соответственно и логика прокс-фильтров.
  • Добавлена подробная справка в форме вопрос-ответ.
  • Формат строк в PageEraserDB.csv теперь полностью соответствует csv-Excel. Можно спокойно сортировать и сохранять. В принципе подавляющее число старых записей это не касается, но желательно очистить PageEraserDB.csv
  • Исправлен редкий баг, когда при клике на точке данные не передавались проксу
  • url с портами ...com:123/ теперь поддерживаются - раньше фильтр на таких страницах был не активен
  • Способ вставки скриптов корректен - документ не переходит в QuirksMode
  • Добавлен для обработки iframe
  • Косметические улучшения
  • ... и другое. Долго писать, проще прочитать справку doc.htm
  • Перед установкой/обновлением надо ознакомится с файлом doc.htm. Есть ряд нюансов - что прописать в $LST(Bypass), какие фильтры подправить.
версия 3.3 (15.07.2006):
  • Упростился js (режим правки)
версия 3.2 (11.07.2006):
  • Бывшая упрощенная (short-cut) версия стала основной и единственной, а старая основная отбракована как непрактичная. В чем суть: теперь все удаляемые пользователем объекты непосредственно и удаляются из кода, а фича прятать объекты посредством CSS убрана как избыточная и ненужная.
  • Число подфильтров сокращенно с четырех (3 web + 1 загол.) до 2 web-подфильтров.
  • Блок-лист $LST(Count) теперь не нужен
  • Существенное увеличение скорости обработки (в 4-5 раз) и снижение процессорной нагрузки за счет полного отказа от блок-листа $LST(Count) и переделки основного алгоритма работы фильтра.
  • Как следствие из вышесказанного - ликвидированы как класс множественные логи в лог-окне - обращения к б/л $LST(Count), являвшиеся причиной торможения загрузки страниц и зависания машины при открытом лог-окне с включенным отображением логов веб-фильтров.
  • Существенно увеличена скорость работы с основным блок-листом за счет оптимизации структуры записи строк с точки зрения хеширования блок-листов проксом.
  • Изменилась структура записи строк для большей их самоидентичности.
  • Теперь два блок-листа: $LST(PageEraserDB) и $LST(PageEraser). В первый заносятся строки, идентифицирующие вырезаемые объекты на страницах. Второй используется как пользовательский (но пополняющийся только автоматически). Из него, при желании, удобно подредактировать работу фильтра: в каких местах, директориях, суб-доменах сайта работать, для каких делать исключения, или просто временно заблокировать работу фильтра для сайта - закомментировав строку.
  • Смена горячих клавиш: теперь просто LeftWin. Удобно нажать LeftWin+F5, F5 сразу отпустить, а win чуть придержать.
  • Назначить свою горячую клавишу или их комбинации теперь проще, читай нагляднее (см. комментарии в Page Eraser 1/2).
  • Помимо горячих клавиш теперь "режим редактирования" можно инициировать из браузерной строки - дописав ?PageEraser к концу url. Для автоматизации и упрощения процесса можно создать закладку в браузере (без "): "javascript:document.NoLocation=document.NoLocation.href+'?PageEraser';" (убедитесь, что на данной странице прокс любезно вам не изменил document.location на document.NoLocation)
  • Убрана проверка WebWarper
  • Зато добавлена проверка произвольной cgi-прокси.
  • Добавил логи для отслеживания событий (опционально: включить, отключить, включить частично) - выбирается прямо из фильтра (см. Page Eraser 1/2)
  • Добавил (по наводке arsvrn) новый тег для обработки - center
  • Косметические улучшения
  • Для правильной работы фильтра нужно добавить в блок-лист $LST(Bypass) строчку ~local.ptron/killed.html\?
...

первая публичная версия 1.0 (23.10.2005):


//by RoKir
//Прилепил чтоб не терялась


Последний раз редактировалось: lexxICON (Вт, Май 08 2007 10:23), всего редактировалось 37 раз(а)
К началу Профиль Сообщение Отправить e-mail
arsvrn
Member
Member


Зарегистрирован: 07.10.2005
Сообщения: 69

СообщениеДобавлено: Вс, Окт 23 2005 18:46 Цитировать |  |  | 

lexxICON
Скопировал count.txt и PageEraser.txt в Lists, прописал List.Count = "..\Lists\Count.txt" и List.PageEraser = "..\Lists\PageEraser.txt" в конфиг. В папку html скопировал PageEraser.js. Добавил фильтры (1-й веб фильтр и фильтр заголовков). Не получается никакого эффекта от Shft+h и Click и от других вариантов тоже.
Что я сделал не так? И как должно выглядеть - прямо на глазах пропасть элемент? И еще вопрос - в какое место страницы кликать надо?
Браузер - Опера.
К началу Профиль Сообщение
lexxICON
Platinum Member
Platinum Member


Зарегистрирован: 13.07.2004
Сообщения: 596

СообщениеДобавлено: Вс, Окт 23 2005 20:08 Цитировать |  |  | 

Варианты почему не работает Shft+h:

  • В момент нажатия клавиш раскладка _не_ инглиш - надо поменять на инглиш.

  • Какой-то фильтр, стоящий ниже Page Eraser 1/2 {adv} [LXX], блокирует/влияет/меняет строчку <script language='JavaScript' src='http://local.ptron/PageEraser.js'></script>. Открой текст исходный страницы, задай поиск на PageEraser.js - она должна быть и не должна отличаться от приведенной.

    Если чем-то она изменилась, то можно либо поместить Page Eraser 1/2 {adv} [LXX] ниже того фильтра, к-й влияет на него, либо отключить в первом многократные совпадения (Multi) - снять соответствующую птичку

Цитата:
И как должно выглядеть - прямо на глазах пропасть элемент? И еще вопрос - в какое место страницы кликать надо?

Да, на глазах. Куда кликать - будет понятно после Sft+h :)
К началу Профиль Сообщение Отправить e-mail
lexxICON
Platinum Member
Platinum Member


Зарегистрирован: 13.07.2004
Сообщения: 596

СообщениеДобавлено: Вс, Окт 23 2005 20:14 Цитировать |  |  | 

И еще, я не много не понял, как ты назвал блок-листы.

Должны быть: Count и PageEraser (безо всяких префиксов List.)
К началу Профиль Сообщение Отправить e-mail
arsvrn
Member
Member


Зарегистрирован: 07.10.2005
Сообщения: 69

СообщениеДобавлено: Вс, Окт 23 2005 20:49 Цитировать |  |  | 

Блок-листы я назвал правильно. Это в конфиге с префиксом.
Вроде как-то заработало (ничего не менял, просто попробовал на другом сайте). У меня диал-ап, поэтому экспериментирую я через прокси в автономном режиме.
Так вот: на _http://www.bestfilez.net/forums/ после нажатия Shft+h появились жирные точки около объектов и выделяющая рамка при наведении на них. Объекты удаляются, правда место от них остается. Но вот чего я не понял, так это то, почему Shft+h ни на что не влияет (в PageEraser.txt написано показать/скрыть). Причем и после обновления страницы онлайн (в том числе и без кеширующего прокси) твоя разметка остается.
А вот на _http://forum.ru-board.com/ ничего не появляется. Ни в автономе, ни в онлайн.
Может ли влиять WebWarper не знаю еще, но и bestfiles и ru-board идут мимо него.

Да, еще. Опера мне показывает при включении этого фильтра дикий объем страницы (я думаю, локальный), а журнал Proxomitron'a с ума сходит - выводит строки "BlockList 190: in Count, line 69".

Пишу, похоже, очень путано. Но хочется разобраться, штука то будет полезная, а в голове еще система поведения фильтра не сложилась.
К началу Профиль Сообщение
lexxICON
Platinum Member
Platinum Member


Зарегистрирован: 13.07.2004
Сообщения: 596

СообщениеДобавлено: Вс, Окт 23 2005 21:42 Цитировать |  |  | 

Цитата:
У меня диал-ап, поэтому экспериментирую я через прокси в автономном режиме
Если в автономном, то прокс не будет перехватывать запросы {2/2}, т.к. их нет. Но это в общем случае, у тебя, я вижу, вроде все путем. А так в принципе нормальная работа фильтра - on-line.
Цитата:
после нажатия Shft+h появились жирные точки около объектов и выделяющая рамка при наведении на них. Объекты удаляются, правда место от них остается.
Так и задумано - чтобы не покорежило разметку/структуру страниц - visibility:hidden - просто пустое место. Если бы было display:none потомки съезжали бы куда-то вверх влево. Кстати, при скрытии новое окно не открывется в браузере?
Цитата:
Но вот чего я не понял, так это то, почему Shft+h ни на что не влияет (в PageEraser.txt написано показать/скрыть)
Да так и должно быть - показать/скрыть/показать/скрыть.... У тебя похоже раскладка переключается на русскую. Если Shft+h не нравится поменяй на любое другое: в PageEraser.js в строке if (chr == 72) ascii-код для "H" - 72 смени на любой другой и/или добавь альтернативные комбинации if (chr == .. || chr == ....)
Цитата:
Причем и после обновления страницы онлайн (в том числе и без кеширующего прокси) твоя разметка остается.
Ага, на bestfilez.net/forums есть такое. Завтра разберусь.

А на http://forum.ru-board.com/ все у меня работает прекрасно. Попробуй отключить Multi = TRUE и/или помести фильтр повыше.

WebWarper скорее влияет, чем нет - гляну завтра.
Цитата:
Да, еще. Опера мне показывает при включении этого фильтра дикий объем страницы (я думаю, локальный), а журнал Proxomitron'a с ума сходит - выводит строки "BlockList 190: in Count, line 69".
BlockList 190: in Cou.... - это норм - фильтр значит срабатывает
Траф (bestfilez.net/forums/; без графики) с фильтром - 163, без - 93. Это локальный - м/у проксом и оперой (прокс вставляет доп. текст, вот и подскочил до 160, еще и + .js)
К началу Профиль Сообщение Отправить e-mail
arsvrn
Member
Member


Зарегистрирован: 07.10.2005
Сообщения: 69

СообщениеДобавлено: Вс, Окт 23 2005 22:50 Цитировать |  |  | 

Цитата:
Кстати, при скрытии новое окно не открывется в браузере?

Открывается.
Цитата:
У тебя похоже раскладка переключается на русскую

Нет, не переключается. У меня на Ctrl+Shift установлено. Менять пока не пробовал.
Сейчас вот зашел на ру-боард. Обновился. Жму Shift+h - никакой реакции. Экспериментировать дальше буду завтра, скорее всего вечером. Сохранил ру-боард в виде "отладочной инф-ии HTML" - работа фильтра видна, попробую посмотреть подробнее.
Кстати, на моем дохлом компе некоторые тормоза наблюдаются (при работе из кеша).
К началу Профиль Сообщение
lexxICON
Platinum Member
Platinum Member


Зарегистрирован: 13.07.2004
Сообщения: 596

СообщениеДобавлено: Пн, Окт 24 2005 12:44 Цитировать |  |  | 

bestfilez.net/forums вообще тяжелый случай:)

Во-первых, по поводу появления окна при клике и сохранении при загрузке разметки кружков -- Это ессно ненормально. Причина - первое срабатывание фильтра происходит внутри <script></script> (там находится первый <div>).

"Кто виноват?" разобрались, теперь "Что делать?".

Можно исправить подобные срабатывания в будущем: в web-фильтре стереть строку ($TST(onlyoneh=1)|$SET(9=<iframe src='' .............ptron/PageEraser.js'></script>\r\n)$SET(onlyoneh=1)) , и добавить сверху новый фильтр:
Код:
Name = "Page Eraser 0/2 insert iframe"
Active = TRUE
URL = "$TYPE(htm)&(^((www.|)webwarper.net/ww/~fz/|)$LST(PageEraser))"
Limit = 10
Match = "<start>"
Replace = "<iframe src='' width=0 height=0 frameborder=0 name='proxhiding' scrolling=no style='display:none'></iframe>"
          "<style type='text/css'><!--/* Proxomitron Eraser */span.proxbaton{color:#FF8000; font-size: 20px; cursor:hand; display:none; padding-right:10px; padding-left:10px}//--></style>\r\n"
          "<script language='JavaScript' src='http://local.ptron/PageEraser.js'></script>\r\n"
...а можно и не делать (я не делаю), т.к. вставка объектов скриптами все-таки не так часто практикуется, тем более что для фильтра деструктивен лишь случай, когда скриптом страницы вставляется именно *первый* обрабатываемый объект (получается, что внутрь скрипта вставляются ещё и айфрейм, стили и даже еще один скрипт => последние не видны для браузера => новое окно, сохранение кружков...), а для *не первых* можно просто наплевать - всё будет нормально, или, на крайний случай, просто занести сайт в игнор.


По поводу bestfilez.net/forums ещё не всё :) Если и сделать новый фильтр {0/2} ^^^, поправив старый, то на bestfilez.net/forums комбинация Sft+h все равно не сработает :). Я точно такое же наблюдал, например, здесь - softodrom.ru Там часть кружков отображается, а часть (в конце странице) - нет, а на bestfilez.net/forums вообще ничерта не отображается.

Короче говоря, причина в скрипте PageEraser.js - его надо как-то соптимизировать. Может здесь найдутся спецы по JS?

А пока в игнор: в $LST(PageEraser) (www.|)bestfilez.net/forums/



На ру-боард всё работает у меня хорошо (опера8/ie6) :/ Надо третьего человека послушать.
Попробуй в браузере обратиться напрямую к http://local.ptron/PageEraser.js и перезагрузи этот файл. Еще вариант - может машина не справляется с 1000 строками в PageEraser.js (кстати и тормоза возможно у тебя из-за этого)? Тогда отредактируй скрипт - удали строки с document.getElementById('sph301').style.display=is_showed; по document.getElementById('sph1000').style.display=is_showed; и перезагрузи скрипт в опере (а то она старый возьмет из кеша). Ну если и это не поможет, сделай так - поставь веб-фильтр самым первым в списке веб-фильтров и отключи многократные совпадения. После этого не может не сработать. Да, кстати, юзай первый {adv} веб-фильтр, а не второй - второй редко где применим.



По поводу WebWarper - да, влияет. Я подправил фильтры, нужно заменить на новые. К тому же в список NonWarped надо занести fiction.fiction/
К началу Профиль Сообщение Отправить e-mail
lexxICON
Platinum Member
Platinum Member


Зарегистрирован: 13.07.2004
Сообщения: 596

СообщениеДобавлено: Пн, Окт 24 2005 12:47 Цитировать |  |  | 

По поводу странной работы скрипта. Может кто помогёт?

Код:
<style type='text/css'>span.proxbaton{color:#FF8000; font-size: 20px; cursor:hand; display:none; padding-right:10px; padding-left:10px}</style>
<script language='JavaScript' src='PageEraser.js'></script>


<div><span id='sph1' class='proxbaton'>•</span>первый</div>

<div><span id='sph2' class='proxbaton'>•</span>второй</div>

<div><span id='sph3' class='proxbaton'>•</span>третий</div>

<div><span id='sph4' class='proxbaton'>•</span>четвертый</div>


Если id, к примеру у второго, сменить на sph20, то все последующие не срабатывают. Почему?

Или, ближе к телу, конкретно к сайтам - если какой-то очередной <span id=10.....> попадает, например, внутрь скрипта страницы и соответственно для браузера становится невидимым, то происходит сбой нумерации (перескок), и все последующие по списку спаны не будут обработаны. Вот к примеру - bestfilez.net/forums - там <span id='1' ....> попадает в скрипт, следовательно все последующие в слив. Как поправить скрипт?
К началу Профиль Сообщение Отправить e-mail
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2621
Откуда: SPb

СообщениеДобавлено: Пн, Окт 24 2005 13:01 Цитировать |  |  | 

lexxICON

А чего не срабатывает?

По-идее, должно быть такое поведение: скрипт запускается, просматривает подряд все айдишники и когда не находит какой-то -- завершается по ошибке. Оставшиеся, соответственно, не переключаются. Не знаю, помогает ли тут NoError..

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

А зачем в примере и <div>, и <span>?
К началу Профиль Сообщение
arsvrn
Member
Member


Зарегистрирован: 07.10.2005
Сообщения: 69

СообщениеДобавлено: Пн, Окт 24 2005 19:21 Цитировать |  |  | 

lexxICON
Подправил все, как ты написал. Стало лучше, и на ру-боард'е заработало и других. И через WebWarper работает Smile
Однако открытие новой страницы по клику на объекте осталось. Кроме того на http://samlab.ws/ стала грузиться флешка (в правом верхнем углу) - с отключенным PageEraser Proxomitron ее режет.
Есть предложение по организации работы фильтра. Мне кажется, было бы удобнее так (если это возможно сделать):
Постоянно работает фильтр, который в страницу добавляет только код для обработки сочетания клавиш и режет занесенные в блок-лист объекты для этой страницы (сайта). Код для отображения объектов по Shift-h не добавляется.
Если после загрузки страницы нажать некое сочетание клавиш и "Обновить", то выполняется ее перезагрузка с добавкой кода для отображения объектов. Далее - как есть.
За счет такого алгоритма повысится скорость работы (не надо постоянно работать довольно "тяжелому" фильтру), а перезагрузка для удаления объектов нужна не так часто, так что трафик не сильно увеличится. Еще хорошо бы сделать удаление объектов из блок-листа.
И еще одно. Сохранять форматирование страницы хорошо, но иногда хочется убрать некий объект совсем, чтобы он места не занимал. Вот если бы сделать варианты удаления... Тогда скроллить страницы меньше пришлось бы.
Не мало я предложил, да? Smile
Не знаю, можно ли так сделать, я совсем новичок в работе с Proxomitron'ом и вообще с HTML.
К началу Профиль Сообщение
lexxICON
Platinum Member
Platinum Member


Зарегистрирован: 13.07.2004
Сообщения: 596

СообщениеДобавлено: Пн, Окт 24 2005 20:59 Цитировать |  |  | 

chAlx писал(а):
А чего не срабатывает?
А что, в Мозиле тот пример нормально работает? Все спаны показываются при Sft+h (для случая Если id, к примеру у второго, сменить на sph20, то все последующие не срабатывают.)?

Цитата:
По-идее, должно быть такое поведение: скрипт запускается, просматривает подряд все айдишники и когда не находит какой-то -- завершается по ошибке. Оставшиеся, соответственно, не переключаются. Не знаю, помогает ли тут NoError..
Зачем завершаться по ошибке - как раз не надо. Пусть обработает верно те элементы, что видит, а что не видит (а не оставшиеся в очереди, как сейчас), то фиг с ними. NoError добавил, чтобы ошибка для 21 элемента не вылезала, когда элементов на странице, например, 20.

Цитата:
В любом случае вместо заполнения тыщи строк надо один махонький цикл написать, в который включить проверку наличия объекта перед тем, как править его свойства.?
Надо бы, да какой? :) Я пока с классами играюсь. Чего-то лыжи document.className('proxbaton').style.display=is_showed; не едут

Цитата:
А зачем в примере и <div>, и <span>
Для красоты :)


arsvrn писал(а):
Подправил все, как ты написал. Стало лучше, и на ру-боард'е заработало и других. И через WebWarper работает :)
Однако открытие новой страницы по клику на объекте осталось.
Хм. Прям везде или где-то конкретно? Это странно. Что-то у тебя на <iframe> влияет. Посмотри в коде страницы, есть ли вообще там строка <iframe src='' width=0 height=0 frameborder=0 name='proxhiding' scrolling=no style='display:none'></iframe> Может, не знаю, у тебя в опере отключен показ iframe, или его файрволл режет?

Цитата:
Кроме того на http://samlab.ws/ стала грузиться флешка (в правом верхнем углу) - с отключенным PageEraser Proxomitron ее режет.
Правильно - не режет. Потому как в фильтре отключено многократное совпадение - получается фильтр захватывает 1024 байта текста и, после обработки, отдает сразу браузеру, а нижестоящим фильтрам достаётся сиська у ж... Я же не говорил - прям поставь веб-фильтр самым первым в списке веб-фильтров и отключи многократные совпадения и оставь на веки вечные, это была проверка - работает в принципе всё это дело у тебя или нет :) Теперь говорю - давай всё обратно :) - [i]включи многократные совпадения и, если пользуешься конфигом Prox-RE, ставь фильтр последним в секции PAGE CLEANUP. У меня лично так. Но сделай это после выяснения вопроса с iframe, иначе тут запутаемся в дрова.

Цитата:
Есть предложение по организации работы фильтра. Мне кажется, было бы удобнее так (если это возможно сделать):
Постоянно работает фильтр, который в страницу добавляет только код для обработки сочетания клавиш и режет занесенные в блок-лист объекты для этой страницы (сайта). Код для отображения объектов по Shift-h не добавляется.
>код для обработки сочетания клавиш
>Код для отображения объектов по Shift-h
так это одно и тоже - находится в PageEraser.js и загружается махонькой строчкой <script....</script> + нумерация id='..' для спанов, больше ничего к скрытию/показу спанов (кружков) отношения не имеет

Цитата:
Если после загрузки страницы нажать некое сочетание клавиш и "Обновить", то выполняется ее перезагрузка с добавкой кода
По-моему такое невозможно, во всяком случае не силами html и js. "Обновить" сбрасывает страницу на вид по умолчанию, иного afaik не дано.

Цитата:
За счет такого алгоритма повысится скорость работы (не надо постоянно работать довольно "тяжелому" фильтру), а перезагрузка для удаления объектов нужна не так часто, так что трафик не сильно увеличится. Еще хорошо бы сделать удаление объектов из блок-листа.
Не мало я предложил, да? :)
Не знаю, можно ли так сделать, я совсем новичок в работе с Proxomitron'ом и вообще с HTML.
А в чем "тяжесть"? Если в увеличении размера страницы, то там лишних 10-40 кб (смотря сколько таблиц и есть ли они вообще) + файл.js, который и так постоянно в кеше браузера. Если в вычислительных ресурсах, то я на своем старичке 3 летней давности (атлонХР1,9+) наблюдаю пик 20% загрузки CPU, против 7% без фильтра, да и то это доля одной секунды.

кстати, я поправил http-фильтр, теперь корректно юзаются простые щелчки (когда без зажатых клавиш)

едрить я расписался....
К началу Профиль Сообщение Отправить e-mail
lexxICON
Platinum Member
Platinum Member


Зарегистрирован: 13.07.2004
Сообщения: 596

СообщениеДобавлено: Пн, Окт 24 2005 21:58 Цитировать |  |  | 

Забыл ответить.
Цитата:
Еще хорошо бы сделать удаление объектов из блок-листа.
Хорошо бы (правда не в данном случае:), но прокс этого не умеет - только ручками. А для чего? Удалить старые записи несуществующих уже объектов? Ну это просто - редактируем вручную, удаляя всё что сверху, начинающиеся на .h. и .p., а нижние 'свежие' строки оставляем.

Цитата:
И еще одно. Сохранять форматирование страницы хорошо, но иногда хочется убрать некий объект совсем, чтобы он места не занимал. Вот если бы сделать варианты удаления... Тогда скроллить страницы меньше пришлось бы.
Ну это на любителя, потому, как я говорил, потомки сместятся. Но если очень хочется, то в веб-фильтре найди $SET(3=style='visibility:hidden !important') и замени на $SET(3=style='display:none !important')
К началу Профиль Сообщение Отправить e-mail
arsvrn
Member
Member


Зарегистрирован: 07.10.2005
Сообщения: 69

СообщениеДобавлено: Пн, Окт 24 2005 22:04 Цитировать |  |  | 

lexxICON
Цитата:
на своем старичке 3 летней давности (атлонХР1,9+)

А у меня duron700... Да, наверное, и не только у меня.
Раз с "Обновить" не получается, нельзя ли тогда по хоткею обновляться с помощью какого-нибудь скрипта?
Про удаление я на всякий случай спросил - вдруг каким-то способом можно. Что прокс только добавляет я читал, но вдруг...
К началу Профиль Сообщение
lexxICON
Platinum Member
Platinum Member


Зарегистрирован: 13.07.2004
Сообщения: 596

СообщениеДобавлено: Вт, Окт 25 2005 17:58 Цитировать |  |  | 

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

И все-таки, что именно беспокоит - нагрузка на процессор или увеличенный размер страниц? От первого, если оно имеет место быть, нельзя избавиться способом, какой ты предложил 4 сообщения назад - отдельно резать и отдельно кликать, т.к. все те $TST() всё равно никуда не денутся, а они-то и качают мышцу твоему компутеру, в них вся фишка. А если дело в размере страниц, то в принципе можно разделить фильтр на два: первый подсчитывает, сравнивает с "базой" и прячет, а второй "полный". Но в каких случаях работать тому и тому? Если первый - для всех сайтов, кроме исключенных, то что со вторым, когда?

ps Так что с iframe? Всё в порядке?
К началу Профиль Сообщение Отправить e-mail
arsvrn
Member
Member


Зарегистрирован: 07.10.2005
Сообщения: 69

СообщениеДобавлено: Вт, Окт 25 2005 21:14 Цитировать |  |  | 

lexxICON
Цитата:
Так что с iframe? Всё в порядке?

Строка <iframe src='' width=0 height=0 frameborder=0 name='proxhiding' scrolling=no style='display:none'> есть. Но все равно пытается открыть страницу http://fiction.fiction/.....

Добавлено:
Я вот попытался продумать алгоритм работы с PageEraser с точки зрения, как бы мне было удобно. Получилось следующее.
Есть постоянно работающий фильтр, который добавляет, например, на верх страницы кнопочку (или еще что). Можно скрытую, а при наведении мыши показывающуюся (так еще лучше). При этом никакой другой информации в страницу не вставляется. Захожу на сайт - хочу что-то скрыть на странице. Тогда жму эту кнопку, что вызывает перезагрузку браузера, а Проксу идет сообщение о том, что надо вставить рамки и проиндексировать объекты.
По этому сообщению при перезагрузке начинает работать "полный" фильтр. Далее по имеющейся схеме. В блок-лист добавляется эта страница или весь сайт - по желанию.
Фильтр, который режет, работает только со страницами/сайтами из блок-листа (а не со всеми, кроме исключений). Таким образом процессор не нагружается, когда не надо, и в кеш лишнего не пишется (у меня, например, после Прокса стоит HandyCache).
Я бы и сам попробовал сделать на основе твоего, но слабоват пока в языке Проксомитрона, а HTML и вовсе не знаю.
К началу Профиль Сообщение
lexxICON
Platinum Member
Platinum Member


Зарегистрирован: 13.07.2004
Сообщения: 596

СообщениеДобавлено: Ср, Окт 26 2005 10:40 Цитировать |  |  | 

Цитата:
Строка <iframe src='' width=0 height=0 frameborder=0 name='proxhiding' scrolling=no style='display:none'> есть. Но все равно пытается открыть страницу http://fiction.fiction/.....

Так, стоп, а где </iframe>? Впрочем без него страница вообще не отображалась бы. Или может мы о разных вещах - страница действительно должна открываться, но внутри фрейма, т.е. скрыто. А у тебя вообще какая версия Оперы? Не превью девятки ли?

Цитата:
Есть постоянно работающий фильтр, который добавляет, например, на верх страницы кнопочку (или еще что). Можно скрытую, а при наведении мыши показывающуюся (так еще лучше). При этом никакой другой информации в страницу не вставляется. Захожу на сайт - хочу что-то скрыть на странице. Тогда жму эту кнопку, что вызывает перезагрузку браузера, а Проксу идет сообщение о том, что надо вставить рамки и проиндексировать объекты.
По этому сообщению при перезагрузке начинает работать "полный" фильтр. Далее по имеющейся схеме. В блок-лист добавляется эта страница или весь сайт - по желанию.
Фильтр, который режет, работает только со страницами/сайтами из блок-листа (а не со всеми, кроме исключений). Таким образом процессор не нагружается, когда не надо, и в кеш лишнего не пишется (у меня, например, после Прокса стоит HandyCache).


А, ну так можно. Вот модификация для небыстрых компьютеров:
Код:
Name = "Page Eraser 1/2 {adv} {trigger} [LXX]"
Active = TRUE
Multi = TRUE
URL = "$TYPE(htm)"
Limit = 1024
Match = "("
        ""
        "$KEYCHK(^C)"
        ""
        "(<(t[dh]|div)\0(\s\1|)>)\4 ([\r\n]+|) (((?++{4,*})\5(^(^<(/|) (t(able|[rdh])|div))))|(?+{4,*})\5)"
        ""
        "$TST(\5=(([a-z]+)\7$SET(lat=$GET(lat)\7)[^a-z]+)+)"
        "$TST(\5=(([а-я]+)\7$SET(cyr=$GET(cyr)\7)[^а-я]+)+)"
        "$TST(\5=(([0-9]+)\7$SET(num=$GET(num)\7)[^0-9]+)+)"
        "$TST(\5=(([^a-z0-9а-я]+)\7$SET(oth=$GET(oth)\7)[a-z0-9а-я]+)+)"
        ""
        "$TST(\4=(?$TST(($GET(tegoc)+1)=$LST(Count))$SET(tegoc=$GET(i)))+)"
        "($TST(lat=(?$TST(($GET(latc)+1)=$LST(Count))$SET(latc=$GET(i)))+)|$SET(latc=0))"
        "($TST(cyr=(?$TST(($GET(cyrc)+1)=$LST(Count))$SET(cyrc=$GET(i)))+)|$SET(cyrc=0))"
        "($TST(num=(?$TST(($GET(numc)+1)=$LST(Count))$SET(numc=$GET(i)))+)|$SET(numc=0))"
        "($TST(oth=(?$TST(($GET(othc)+1)=$LST(Count))$SET(othc=$GET(i)))+)|$SET(othc=0))"
        ""
        "$URL(http://((www.|)webwarper.net/ww/~fz/|)(www.|) \2/(([a-z0-9]+)\#[^a-z0-9]+)+)($TST((\#)=*)|$SET(#=0))"
        ""
        "(($TST((.h.\2_$GET(tegoc)$GET(latc)$GET(cyrc)$GET(numc)$GET(othc))=$LST(PageEraser))|$TST((.p.\2_\@_$GET(tegoc)$GET(latc)$GET(cyrc)$GET(numc)$GET(othc))=$LST(PageEraser)))$SET(3=style='visibility:hidden !important')|)"
        ""
        "$TST(($GET(numberh)+1)=$LST(Count))$SET(numberh=$GET(i))"
        ""
        "$SET(6=<span onMouseOver="prxh$GET(numberh).style.border='red dashed 3';" onMouseOut="prxh$GET(numberh).style.border='';" "
        "onClick="prxh$GET(numberh).style.visibility='hidden', window.open('http://fiction.fiction/\2_\@_$GET(tegoc)$GET(latc)$GET(cyrc)$GET(numc)$GET(othc)','proxhiding'); return false" "
        "class='proxbaton' title='Hide \0'>•</span>)$SET(8=id='prxh$GET(numberh)')"
        ""
        "($TST(onlyoneh=1)|$SET(9=<iframe src='' width=0 height=0 frameborder=0 name='proxhiding' scrolling=no style='display:none'></iframe><style type='text/css'><!--/* Proxomitron Eraser */span.proxbaton{color:#FF8000; font-size: 20px; cursor:hand; padding-right:10px; padding-left:10px}//--></style>)$SET(onlyoneh=1))"
        ""
        ")|("
        ""
        "$URL(http://((www.|)webwarper.net/ww/~fz/|)(www.|) \2/(([a-z0-9]+)\#[^a-z0-9]+)+)($TST((\#)=*)|$SET(#=0))$TST((\2/)=$LST(PageEraser))"
        ""
        "(<(t[dh]|div)\0(\s\1|)>)\4 ([\r\n]+|) (((?++{4,*})\5(^(^<(/|) (t(able|[rdh])|div))))|(?+{4,*})\5)"
        ""
        "$TST(\5=(([a-z]+)\7$SET(lat=$GET(lat)\7)[^a-z]+)+)"
        "$TST(\5=(([а-я]+)\7$SET(cyr=$GET(cyr)\7)[^а-я]+)+)"
        "$TST(\5=(([0-9]+)\7$SET(num=$GET(num)\7)[^0-9]+)+)"
        "$TST(\5=(([^a-z0-9а-я]+)\7$SET(oth=$GET(oth)\7)[a-z0-9а-я]+)+)"
        ""
        "$TST(\4=(?$TST(($GET(tegoc)+1)=$LST(Count))$SET(tegoc=$GET(i)))+)"
        "($TST(lat=(?$TST(($GET(latc)+1)=$LST(Count))$SET(latc=$GET(i)))+)|$SET(latc=0))"
        "($TST(cyr=(?$TST(($GET(cyrc)+1)=$LST(Count))$SET(cyrc=$GET(i)))+)|$SET(cyrc=0))"
        "($TST(num=(?$TST(($GET(numc)+1)=$LST(Count))$SET(numc=$GET(i)))+)|$SET(numc=0))"
        "($TST(oth=(?$TST(($GET(othc)+1)=$LST(Count))$SET(othc=$GET(i)))+)|$SET(othc=0))"
        ""
        "(($TST((.h.\2_$GET(tegoc)$GET(latc)$GET(cyrc)$GET(numc)$GET(othc))=$LST(PageEraser))|$TST((.p.\2_\@_$GET(tegoc)$GET(latc)$GET(cyrc)$GET(numc)$GET(othc))=$LST(PageEraser)))$SET(3=style='visibility:hidden !important')|)"
        ""
        ")"
Replace = "\9<\0 \1 \8 \3>\6\5$SET(tegoc=)$SET(latc=)$SET(cyrc=)$SET(numc=)$SET(othc=)$SET(lat=)$SET(cyr=)$SET(num=)$SET(oth=)"
Код:
In = FALSE
Out = TRUE
Key = "URL: Page Eraser 2/2 {trigger} (out) [LXX]"
URL = "fiction.fiction/"
Match = "($URL(http://fiction.fiction/\0_\1_\2)($KEYCHK(^S^C)($TST((.h.\0_\2)=$LST(PageEraser))|$ADDLST(PageEraser,.h.\0_\2(^?)))|$KEYCHK(^C)($TST((.p.\0_\1_\2)=$LST(PageEraser))|$ADDLST(PageEraser,.p.\0_\1_\2(^?))))($TST((\0/)=$LST(PageEraser))|$ADDLST(PageEraser,\0/))|)"
Replace = "$JUMP(http://local.ptron/.pinfo/)"


Выглядит наверно устрашающе :D Но никаких двойных расчетов, как может показаться, там нет. Наоборот, всё соптимизировано под "ненапряг" и лишний раз прокс не дергается.

Фильтр срабатывает только при двух событиях: при загрузке страницы была нажата клавиша Ctrl или в $LST(PageEraser) есть запись для сайта. Общий принцип работы с фильтром остался прежним.


При обычном заходе на сайт/страницу фильтр не активен. Если нужно спрятать какие-то элементы, то необходимо перезагрузить страницу с нажатым Ctrl - фильтр активизируется, 'проиндексирует' обрабатываемые элементы, добавит знакомые кружки (они уже не прячутся, соответственно про Shift+h можно забыть, а PageEraser.js удалить). Покликать по нужным элементам (комбинации клавиш те же) - скрыть их. Всё. В следующий раз фильтр сам сообразит, что на данной странице/сайте ему нужно активизироваться и скрыть определенные элементы.

Если будешь ставить эту версию фильтра, то не забудь почистить $LST(PageEraser). И ещё одно - рудиментарная комбинация Ctrl+Shft+Alt+Click (игнорирование сайта) убрана, как не нужная для этого варианта фильтра.

Ну всё, вроде ты такое и хотел, если я тебя правильно понял, - тестируй.


Последний раз редактировалось: lexxICON (Пн, Окт 31 2005 18:40), всего редактировалось 2 раз(а)
К началу Профиль Сообщение Отправить e-mail
arsvrn
Member
Member


Зарегистрирован: 07.10.2005
Сообщения: 69

СообщениеДобавлено: Ср, Окт 26 2005 11:47 Цитировать |  |  | 

lexxICON
Да, это вроде именно то, что я хотел. Спасибо! Буду пробовать.
Изменить Ctrl на что-нибудь другое - это $KEYCHK(^C) около Match, я правильно понял? А то у меня Ctrl другое действие висит.
</iframe> конечно есть. Просто я не вписал его в сообщение. А Опера 7.23. На восьмерку пока чего-то не хочется переходить.
Ты не возражаешь, если я про твой фильтр дам сообщение на ру-боарде? А то там народ бывает просит убрать чего-нибудь со страницы. А так сами смогут.
К началу Профиль Сообщение
lexxICON
Platinum Member
Platinum Member


Зарегистрирован: 13.07.2004
Сообщения: 596

СообщениеДобавлено: Ср, Окт 26 2005 15:51 Цитировать |  |  | 

Да, ^C - это контрол.

Вот здесь более развернуто: http://www.proxomitron.ru/updatelog.htm

Цитата:
^C = CONTROL
^A = ALT
^S = SHIFT
^T = TAB
^F1 = Функциональная клавиша #1
^F2 = Функциональная клавиша #2
^32 = Скан-код 32 (пробел)
^65 = Скан-код 65 ("A")

Регистр в этом случае не имеет значения, так что можно использовать как "^c", так и "^C". Можно использовать и комбинации клавиш. Например:

$KEYCHK(^A^S) = ALT+SHIFT
$KEYCHK(^C^F6) = CONTROL+F6
$KEYCHK(^AG) = ALT+G
$KEYCHK(^C^A^S) = CONTROL+ALT+SHIFT

Это будет работать для любой комбинации клавиш, которую позволяет клавиатура. Также могут проверяться и другие специальные клавиши, если вы знаете их скан-коды - это число в диапазоне 0-255. Кстати, ^2 проверяет нажатие правой кнопки мыши.


А чего мне возражать, если б я не захотел никому показывать - вовсе бы не публиковал :) Но только всё это пока в режиме тестирования

Кстати протестил на Мозиле, там шифт+h не работает в принципе, но вот последняя {trigger} там работает на ура. Везде (opera8, ie6, myie2, mozilla1.7.4) с iframe в порядке, может у тебя браузер сглазили ;)
К началу Профиль Сообщение Отправить e-mail
arsvrn
Member
Member


Зарегистрирован: 07.10.2005
Сообщения: 69

СообщениеДобавлено: Ср, Окт 26 2005 19:47 Цитировать |  |  | 

lexxICON
С контролом разобрался, спасибо. Остался один вопрос: должна ли все-таки открываться новая страница http://local.ptron/.pinfo/ при клике по точке? У меня открывается.
А вообще последний вариант - это именно то, чего я и хотел. Осталось, пожалуй, только одно пожелание: сделать варианты резки (по хоткею при клике на точке). Вариант 1 - с сохранением форматирования страницы, вариант 2 - убрать объект совсем (например, зачем оставлять пустое место сверху страницы?).
По работе фильтра. Почему при обновлении страницы с нажатым контролом в блок-лист добавляется URL сайта, хотя я еще ничего не резал? По-моему это неправильно.
К началу Профиль Сообщение
Показать сообщения:      
 
Новая тема  Ответить

 Перейти:   




Следующая тема
Предыдущая тема
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


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