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

Новая тема  Ответить
Автор Сообщение
RUSYA
Гость





СообщениеДобавлено: Чт, Мар 15 2007 23:40 Цитировать |  |  | 

Подскажите, как можно на лету заменить адреса картинок, флешек... т.е. мне нужно заменить адрес чтобы картинка грузилась не с интернета, а с диска. С флешкаами аналогично. Вырезать картинки неподходит - сайт проверяет и ругается, т.е. картинки нужно оставить... а вот какие это будут картинки всё глубоко Laughing Smile
К началу
lexxICON
Platinum Member
Platinum Member


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

СообщениеДобавлено: Пт, Мар 16 2007 09:45 Цитировать |  |  | 

Это просто - необходимо создать заголовочный фильтр и там отлавливать исходящие запросы по маске, и если совпадет, то при помощи команд $JUMP() или $RDIR() (если надо скрыть процесс от браузера) перенаправлять запрос на локальный файл.

А еще есть такой фильтр - URL substitute (out) [ALX], он по существу позволяет собрать воедино все отдельные фильтры-редиректоры. Вот для него строка для его блок-листа будет выглядеть примерно так:

(www.|)site.com/imgs/pic.gif $SET(1=local.ptron/fake.gif)

Но дополнительно нужно будет подправить сам URL substitute (out) [ALX], т.к., если в адресе заменяемой картинки присутствует www, то фильтр попытается перекинуть запрос на www.local.ptron, а www.local.ptron не существует - только local.ptron. Редакция простая: убрать из строки $STOP() $URL( (ftp|http(s|)://(www.|))\8 $LST(HostSubst) )

Ну, или ничего не редактировать, тогда просто "хост не найден" вернется для www.local.ptron/fake.gif оригинальная картинка все равно естественно не загрузится.
К началу Профиль Сообщение Отправить e-mail
lexxICON
Platinum Member
Platinum Member


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

СообщениеДобавлено: Пт, Мар 16 2007 10:00 Цитировать |  |  | 

А ещё.. самое-то простое забыл. Можно просто записать в $LST(AdList) адреса картинок. Там, в сухом остатке, также возвращается картинка с local.ptron
К началу Профиль Сообщение Отправить e-mail
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Пт, Мар 16 2007 10:59 Цитировать |  |  | 

Насчёт www замечу, что в строке блоклиста не надо дополнительно ловить (www.|), раз она есть в фильтре. А саму замену можно сделать так:

site.com/imgs/* $SET(8=http://local.ptron/fake.gif)
(насчёт звезды не уверен -- вроде её можно не писать)

С AdList так просто не получится: там веб-фильтры всё повычистят ещё до http-запроса.

А вообще чтобы что-то "грузилось не с интернета, а с диска", используют кеширование. Можно настроить браузерный кеш на более агрессивную работу (Прокс это в общем-то делает), а можно поставить кеширующий прокси и в нём подстановку сделать.
К началу Профиль Сообщение
lexxICON
Platinum Member
Platinum Member


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

СообщениеДобавлено: Пт, Мар 16 2007 15:49 Цитировать |  |  | 

Ты чутку подзабыл, что позиционную переменную нельзя переписать и стереть, если она захватила данные не через $SET. Но идея хорошая (www не проверять отдельно в б/листе), посему вполне можно так: (www.|))\7$SET(8=\7)

>(насчёт звезды не уверен -- вроде её можно не писать)
да - это излишнее
К началу Профиль Сообщение Отправить e-mail
RUSYA
Гость





СообщениеДобавлено: Пт, Мар 16 2007 17:41 Цитировать |  |  | 

Нет, нет... кеширование точно неподходит. Нужно АБСОЛЮТНО ЛЮБЫЕ картинки, с АБСОЛЮТНО любых сайтов заменять на свои... Прогу я вчера только скачал, никак въехать в ваши фильтры что-то немогу... Есть документация на русском по синтаксису? А вообще народ, если можно просто напишите плз мне фильтр убирающий все картинки и расскажите куда его вставить. Это ж не сложно, правда? Smile
К началу
lexxICON
Platinum Member
Platinum Member


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

СообщениеДобавлено: Пт, Мар 16 2007 20:53 Цитировать |  |  | 

Убивать все картинки можно так:

Код:
Name = "Kill all Images on selected pages"
Active = TRUE
URL = "$LST(NoImages)"
Bounds = "<i(mg|mage|nput)*>"
Limit = 256
Match = "\1src=$AV(*)\2&(^*height=[#3:16])"
Replace = "\1 border=1 "
          "src="http://Local.ptron/killed.gif" \2"


В блок-лист $LST(NoImages) заносишь ресурсы где бить мультимедию. Что такое блок-лист и как записывать строки есть в справке. Русска справка есть тут - http://www.proxomitron.ru/help/
Копировать фильтры через буфер обмена и вставлять в секцию, в данном случае web-фильтров, через меню по нажатию там правой клавиши мыши.

Для убиения невиных можно воспользоваться все тем же URL substitute (out) [ALX] - пишешь в его блок-лист, например для всех хостов: *.(gif|jpg|jpeg|png|bmp|ico)(^?) $SET(8=http://local.ptron/fake.gif)
К началу Профиль Сообщение Отправить e-mail
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Пт, Мар 16 2007 23:00 Цитировать |  |  | 

lexxICON:
Цитата:
позиционную переменную нельзя переписать и стереть, если она захватила данные не через $SET.

Точно, там же повторное использование.. А в Replace, кстати, можно (правда, $SET(1=\1) всё равно не работает); но в фильтре подстановка делается не в Replace.

В общем, насчёт www в фильтре надо подумать. Сначала-то его не было, вообще только домен на айпишник менялся.. Наверно, твой вариант с переназначением переменной будет самым оптимальным из возможных грязных трюков ;)

RUSYA:

А картинки проще всё же в заголовке подставлять:
Код:
In = TRUE
Out = FALSE
Key = "Content-Type: Kill all images (In) [ALX]"
URL = "(^local.ptron/clear.gif)"
Match = "image/"
Replace = "\k $LOG(wImage killed: [\u]) $RDIR(http://local.ptron/killed.gif)"

(Редирект тут несколько избыточен, т.к. \k само картинку подставляет.)

Правда, это не совсем правильно: если править только входящие запросы, то всё равно придётся ждать, когда сервер их вышлет (причём вместе с самими картинками).

Можно и для исходящих такое придумать, но там не очень чётко можно определить, что запрашивается именно картинка. У меня вот браузер отправляет при запросе картинки такое поле:
Accept: image/png,*/*;q=0.5

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


Последний раз редактировалось: chAlx (Пн, Мар 19 2007 10:30), всего редактировалось 2 раз(а)
К началу Профиль Сообщение
RUSYA
Гость





СообщениеДобавлено: Вс, Мар 18 2007 15:21 Цитировать |  |  | 

2 lexxICON
Почитал справку, добавил твой фильтр, включил его, чё-то нехочет он картинки убирать...

2 chAlx
Сегодня твой фильтр попробую, неуспел вчера просто, чуть позже отпишусь...

Всем ещё раз спасибо кстати!
К началу
RUSYA
Гость





СообщениеДобавлено: Вс, Мар 18 2007 22:31 Цитировать |  |  | 

Может я тупой, или нетак делаю что-то Crying or Very Sad Ну неработает у меня ничего из фильров которые вы написали. Другие фильтры работают, а Ваши нет. Я копирую в буфер текст, вставляю его в нужную секцию в default.cfg, потом в настройках самой проги ставлю галочи. И всёравно картинки пропускает...

и ещё, напишите плз фильтр не только <img src... а ещё и для background... картинки то и там могут быть Smile

Я бы и сам впринципе, после прочтения хелпа всё намного проще... Но у меня косяк с регулярными выражениями Embarassed
К началу
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Пн, Мар 19 2007 10:30 Цитировать |  |  | 

RUSYA:

В своём фильтре поменял "галочку" на In = TRUE. А вставлять их можно по правому клику в списке фильтров -- куда быстрее, чем лазить в конфиг.

Фильтр от lexxICON работает с блокфайлом, который надо сперва создать и проипсать в Проксе.
К началу Профиль Сообщение
Показать сообщения:      
 
Новая тема  Ответить

 Перейти:   




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


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