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

Новая тема  Ответить
Автор Сообщение
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Пт, Апр 08 2005 08:49 Цитировать |  |  | 

taimael писал(а):
А можно задавать ограничение не жестко, а в списке

Правильно Partyzan пишет, через $SET() проще всего делается. Только у него несколько избыточная конструкция ;) Посмотри стандартный фильтр Content-Type: Fix MIME types (In) и его блок-лист "MIME Fix List.txt".

Про то, как использовать блок-лист с произвольным синтаксисом (без $SET()), написано здесь.
К началу Профиль Сообщение
Partyzan
Platinum Member
Platinum Member


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

СообщениеДобавлено: Пт, Апр 08 2005 08:57 Цитировать |  |  | 

chAlx писал(а):
Посмотри стандартный фильтр Content-Type: Fix MIME types (In) и его блок-лист "MIME Fix List.txt".


Ооо, круто! Да, это намного лучше, к тому же в окне ввода фильтров есть ограничение на 4 килобайта текста. Буду переводить это в список, спасибо за подсказку :-)
К началу Профиль Сообщение
Partyzan
Platinum Member
Platinum Member


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

СообщениеДобавлено: Пт, Апр 08 2005 15:48 Цитировать |  |  | 

Переделал под листы, проверил, отладил - все работает. Взял кусок текста, сколько влезло в тестовое окно и погонял на скорость - оказалось, даже чуть быстрее получается. Неожиданно.

chAlx, спасибо за идею.
К началу Профиль Сообщение
taimael
Junior Member
Junior Member


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

СообщениеДобавлено: Ср, Апр 27 2005 16:56 Цитировать |  |  | 

chAlx писал(а):
Что-то вроде этого:

Код:

In = TRUE
Out = FALSE
Key = "Content-type: Cut images by filesize (in) [ALX]"
Match = "(image/*)\1$IHDR(Content-Length: [#50000:*])"
Replace = "\1$FILTER(True)"

Name = "Content-type: Cut images by filesize [ALX]"
Active = TRUE
Limit = 50001
Match = "$IHDR(Content-type: image/*)(?+{50000})\1*"
Replace = "\1\k"


Первый фильтр (заголовочный) включает фильтрацию для файлов, которые являются картинками и размером выше заданного, а второй обрезает такие файлы. Можно сделать более грамотную проверку: передавать из первого фильтра во второй URL для обработки, чтобы не перепроверять Content-type.



очень часто пропускает гифы, то бишь несмотря на ограничения, они почему-то грузятся полностью
когда опять встречу такое - запостю адресок


фильтр

In = TRUE
Out = FALSE
Key = "Content-Length: Kill images by filesize (in) [ALX]"
Match = "[#50000:*] $IHDR(Content-type: image/*)"
Replace = "55$RDIR(http://Local.ptron/killed.gif)"

гораздо непробиваемее Smile
с ним только 2-3 раза флэшки видел
К началу Профиль Сообщение
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Ср, Апр 27 2005 18:15 Цитировать |  |  | 

taimael писал(а):
очень часто пропускает гифы, то бишь несмотря на ограничения, они почему-то грузятся полностью
когда опять встречу такое - запостю адресок

Ну, я это не пробовал, даже на синтаксические ошибки не проверял. Логи нужны.

Ещё можно попробовать поменять местами логику проверок:
Код:
In = TRUE
Out = FALSE
Key = "Content-Length: Cut images by filesize (in) [ALX]"
Match = "([#50000:*])\1$IHDR(Content-type: image/*)"
Replace = "50000$FILTER(True)"


Ещё хорошо бы число байт в переменную загнать, но, боюсь, в Limit её потом не запихнёшь..
К началу Профиль Сообщение
skuwakin
Newbee
Newbee


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

СообщениеДобавлено: Чт, Мар 09 2006 10:04 Цитировать |  |  | 

Доброго времени суток. Очень понравилась эта идея. Но, имно, было бы очень удобно, если бы большие картинки менялись на "нечто", чтобы при необходимости можно было быстро ее посмотреть. А так получается, что просмотр нужной картинки превращается в небыстрое мероприятия. Но вот как это сделать, не могу сообразить. Буду признателен за любые идеи. Заранее спасибо.
К началу Профиль Сообщение
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Чт, Мар 09 2006 11:58 Цитировать |  |  | 

skuwakin:

Ну, не знаю, можно ли такое замутить на уровне Прокса.. Там ведь получается, что на момент, когда надо формировать ссылку на большую картинку (т.е. при обработке html-кода), ещё не получена никакая информация о самом файле. А потом, когда уйдёт http-запрос и придёт ответ с размером контента (или без), то повлиять на загруженный (и, возможно, уже отрисованный) html-код будет сложновато.

Можно, конечно, подумать в сторону добавочного JavaScript, который на уровне DOM будет расставлять ссылки, предварительно прописанные фильтром в какой-нибудь атрибут картиночного тега.. Причём ссылка должна быть такой, чтобы по ней можно было определить, что убивать по ней большой контент не надо. Но думаю, проще для браузера надстройку придумать.
К началу Профиль Сообщение
skuwakin
Newbee
Newbee


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

СообщениеДобавлено: Вс, Мар 12 2006 11:53 Цитировать |  |  | 

chAlx писал(а):
skuwakin:

Ну, не знаю, можно ли такое замутить на уровне Прокса.. Там ведь получается, что на момент, когда надо формировать ссылку на большую картинку (т.е. при обработке html-кода), ещё не получена никакая информация о самом файле. А потом, когда уйдёт http-запрос и придёт ответ с размером контента (или без), то повлиять на загруженный (и, возможно, уже отрисованный) html-код будет сложновато.

Можно, конечно, подумать в сторону добавочного JavaScript, который на уровне DOM будет расставлять ссылки, предварительно прописанные фильтром в какой-нибудь атрибут картиночного тега.. Причём ссылка должна быть такой, чтобы по ней можно было определить, что убивать по ней большой контент не надо. Но думаю, проще для браузера надстройку придумать.

Спасибо за ответ, идея на тему доб. javascripta интересна, но на ее реализацию нужно время и немалое. А его-то как раз и нет... Вообщем бум ждать пока автор плагина image like opera его дожмет. Тогда будет полегче. Но тем не менее имея резать имаге по размеру классная, вот тока б удалось ссылки на картинку оставлять - цены б не было. ИМНО.
К началу Профиль Сообщение
lexxICON
Platinum Member
Platinum Member


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

СообщениеДобавлено: Ср, Мар 22 2006 14:54 Цитировать |  |  | 

Цитата:
А так получается, что просмотр нужной картинки превращается в небыстрое мероприятия.


Можно вставить $KEYCHK(), например на "пробел":
Код:
...
URL = "^$KEYCHK(^32)"
...


Всяко быстрее будет, нежели лазить галки снимать каждый раз
К началу Профиль Сообщение Отправить e-mail
MaxMor
Junior Member
Junior Member


Зарегистрирован: 27.01.2005
Сообщения: 30
Откуда: Тюмень

СообщениеДобавлено: Вт, Июл 11 2006 07:04 Цитировать |  |  | 

А можно показывать размер незагруженной картинки?
К началу Профиль Сообщение
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Вт, Июл 11 2006 08:44 Цитировать |  |  | 

MaxMor

Нельзя. Это то же самое, что и четырьмя постами ранее: 'если бы большие картинки менялись на "нечто", чтобы при необходимости можно было быстро ее посмотреть'. Проблемы те же: выводить данные надо в html, который на момент их получения уже загружен.
К началу Профиль Сообщение
MaxMor
Junior Member
Junior Member


Зарегистрирован: 27.01.2005
Сообщения: 30
Откуда: Тюмень

СообщениеДобавлено: Вт, Июл 11 2006 09:51 Цитировать |  |  | 

Понял.
К началу Профиль Сообщение
Kink
Junior Member
Junior Member


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

СообщениеДобавлено: Сб, Авг 05 2006 13:24 Цитировать |  |  | 

При плохом соединении лучше использовать не пустую картинку, что бы знать, что картинку прокс заблокировал, а не просто она недокачалась.

---
[HTTP headers]
In = TRUE
Out = FALSE
Key = "Content-Length: Kill images by filesize (in) [ALX]"
Match = "[#50000:*] $IHDR(Content-type: image/*)"
Replace = "17202$RDIR(http://Local.ptron/proxylogo.jpg)"
---

PS: Мне чтобы вставить фильтр через буфер обмена приходится сначала его в текстовый файл копировать и там проставлять "переводы строк", а только потом в прокс иначе он его не видит. У всех так? Или есть какая хитрость?
К началу Профиль Сообщение
Kink
Junior Member
Junior Member


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

СообщениеДобавлено: Сб, Авг 05 2006 13:43 Цитировать |  |  | 

Советую пользователям этого фильтра обратить внимание на тему:

http://proxomitron.ru/board/viewtopic.php?p=4914

Ибо у этих фильтров одинаковая проблема. На некоторых типах соединений (например GPRS или другие очень медленные или наоборот очень быстрые соединения) после разрыва соединения входящий трафик всё равно до какого то времени идёт.

Сейчас потестил на тестовом изображении ~60k получилось, что пришёл трафик примерно равный весу картинки. Получается, что и картинку мы не видим и за трафик все равно платим. Sad Причём при повторном заходе на страницу этот трафик опять скачается, хотя если бы в первый раз картинку загрузили, то во второй раз бы она взялась из кэша.

Так что, БУДЬТЕ ВНИМАТЕЛЬНЫ!!! Проверьте на контрольном изображении как ведёт себя фильтр на вашем соединении! А то он может не экономить трафик, а наоборот!
К началу Профиль Сообщение
Unknown Mystic
Platinum Member
Platinum Member


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Пн, Авг 07 2006 14:50 Цитировать |  |  | 

Kink писал(а):
Причём при повторном заходе на страницу этот трафик опять скачается, хотя если бы в первый раз картинку загрузили, то во второй раз бы она взялась из кэша.


А ты проверял? Браузер не знает, что там что-то обрубили/заменили и т.п. Так что, если не ошибаюсь, то повторно качать он не будет, т.к. в кеше у него будет лежать эта самая замена.
Вот если перенаправлять с помощью $JUMP(), тогда да...
К началу Профиль Сообщение ICQ
Kink
Junior Member
Junior Member


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

СообщениеДобавлено: Пн, Авг 07 2006 16:43 Цитировать |  |  | 

Согласен. С локальным скачиванием это у меня локальный глюк был.
К началу Профиль Сообщение
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Пн, Авг 07 2006 19:05 Цитировать |  |  | 

Почему же.. Если картинка битая -- было бы вполне логично, чтобы браузер попытался её ещё раз закачать.
К началу Профиль Сообщение
Kink
Junior Member
Junior Member


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

СообщениеДобавлено: Пн, Авг 07 2006 20:56 Цитировать |  |  | 

Так за место неё же браузеру другая подставляется.

Проблема возникает, если прокс стоит между браузером и кэширующим прокси (обочно он так и стоит) и у браузера кэш выключен. В данном случае при обрыве соединения браузер получает подмену, а прокси нет, и соответственно в кэше не сохраняет. При повторном запросе картинка начинает грузиться заново, так как в кэше отсутствует. Sad
К началу Профиль Сообщение
unreal666
Silver Member
Silver Member


Зарегистрирован: 21.10.2005
Сообщения: 149
Откуда: Владивосток

СообщениеДобавлено: Вт, Авг 08 2006 04:37 Цитировать |  |  | 

Kink писал(а):

Проблема возникает, если прокс стоит между браузером и кэширующим прокси (обочно он так и стоит) и у браузера кэш выключен.

Это у тебя так обычно стоит, а у большинства стоит так
Браузер - Кэширующий прокси - Проксомитрон - Инет
При таком раскладе в кэш прокси страница попадет уже очищенная.
К началу Профиль Сообщение
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Вт, Авг 08 2006 09:12 Цитировать |  |  | 

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

 Перейти:   




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


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