+  HandyCache форум
|-+  Главная категория» Общие вопросы» Как запретить загрузку изображений
Имя пользователя:
Пароль:
Страниц: [1]   Вниз
  Отправить эту тему    Печать  
Автор Тема: Как запретить загрузку изображений  (Прочитано 5829 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Silkun
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« : 05 ноября 2010, 22:34:14 »

В Firefox есть такое дополнение: ImgLikeOpera.
Можно ли в Handycache сделать подобное: зарещать загрузку изображений, даже тех, чьи имена не оканчиваются на .jpg .png .bmp .gif  ?
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #1 : 05 ноября 2010, 23:37:59 »

Можно ли в Handycache сделать подобное: зарещать загрузку изображений

Да, по URL с помощью списка "Только из кэша" либо по "Content-Type" с помощью расширения HC, но в последнем случае будет расходоваться немного трафика - несколько килобайт на запрос.

Есть еще вариант - вырезать расширением типа Content Master все теги IMG, тогда не будет расходоваться лишний трафик.
Правило Content Master для группы ## REPLACEMENTS будет примерно такое:
^#~#(?=<img)(?&html_element)#~#
Сообщить модератору   Записан
Silkun
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #2 : 06 ноября 2010, 14:46:35 »

Уродовать страницы Content Masterом не хотелось бы - вдруг именно конкретное изображение мне нужно всё-таки загрузить.
Как я понимаю, ImgLikeOpera именно анализирует сontent самой страницы, не делая лишних запросов в интернет.
Именно это мне нужно - экономию трафика.

Но если сделать аналог ImgLikeOpera невозможно, какое расширение по Content-type решает вопрос ?
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #3 : 06 ноября 2010, 15:38:16 »

Это расширение будет блокировать все картинки
Код:
--[[ <HCExtension>
@name          ImgBlock
@event         RequestHeaderReceived/Request
@event         AnswerHeaderReceived/Answer
</HCExtension> ]]


function GetContentType(s)
  _,_,x = string.find(s, '[cC]ontent%-[tT]ype: *([^;\r\n]+)')
  if x~=nil then x = string.lower(x) end
  return x
end

function Request()
  if re.find(hc.url, [[^[^?]+\.(ani|bmp|cur|gif|ico|i[mp]g|jpe?g|png|svgz?|swf|tiff?|wmf)(\?|$)]], 0) then
    hc.action = 'stop'
    hc.monitor_string = hc.monitor_string..'ImgBlock '
  end
end

function Answer()
 -- Только для GET-запросов
  if hc.method == 'GET' then
   -- забираем тип файла из заголовка 'Content-Type'
    type = GetContentType(hc.answer_header)
   -- есть ли в поле заголовка 'Content-Type' слово 'image'
    if type~=nil then img = string.find(type,'image',1,true)
    else img = nil  end
      if img~=nil then
        hc.action = 'stop'
        hc.monitor_string = hc.monitor_string..'ImgBlock '
      end
  end
end
Здесь
http://handycache.ru/component/option,com_smf/Itemid,10/topic,1183.msg19409/#msg19409
http://handycache.ru/component/option,com_smf/Itemid,10/topic,1183.msg26247/#msg26247
описано как я экономил на картинках. Правда, это работало только с картинками, которые определяются по расширению файла (но таких большинство). Не знаю работает ли это с текущими версиями FF, т.к. экономить на картинках сейчас мне не нужно.
« Последнее редактирование: 06 ноября 2010, 15:43:01 от mai62 » Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #4 : 07 ноября 2010, 18:36:44 »

Как я понимаю, ImgLikeOpera именно анализирует сontent самой страницы, не делая лишних запросов в интернет. Именно это мне нужно - экономию трафика.
Но если сделать аналог ImgLikeOpera невозможно

Вполне возможно! Напиши свое расширение, которое будет анализировать HTML-код и блокировать запросы на картинки, как ImgLikeOpera.
Только овчинка выделки не стоит, подобная опция есть во всех браузерах...
Сообщить модератору   Записан
Dimiyan
Новичок
*

Репутация: +0/-1
Offline Offline

Сообщений: 29


« Ответ #5 : 05 декабря 2014, 04:07:03 »

Это расширение будет блокировать все картинки
Код:
--[[ <HCExtension>
@name          ImgBlock
@event         RequestHeaderReceived/Request
@event         AnswerHeaderReceived/Answer
</HCExtension> ]]


function GetContentType(s)
  _,_,x = string.find(s, '[cC]ontent%-[tT]ype: *([^;\r\n]+)')
  if x~=nil then x = string.lower(x) end
  return x
end

function Request()
  if re.find(hc.url, [[^[^?]+\.(ani|bmp|cur|gif|ico|i[mp]g|jpe?g|png|svgz?|swf|tiff?|wmf)(\?|$)]], 0) then
    hc.action = 'stop'
    hc.monitor_string = hc.monitor_string..'ImgBlock '
  end
end

function Answer()
 -- Только для GET-запросов
  if hc.method == 'GET' then
   -- забираем тип файла из заголовка 'Content-Type'
    type = GetContentType(hc.answer_header)
   -- есть ли в поле заголовка 'Content-Type' слово 'image'
    if type~=nil then img = string.find(type,'image',1,true)
    else img = nil  end
      if img~=nil then
        hc.action = 'stop'
        hc.monitor_string = hc.monitor_string..'ImgBlock '
      end
  end
end
Здесь
http://handycache.ru/component/option,com_smf/Itemid,10/topic,1183.msg19409/#msg19409
http://handycache.ru/component/option,com_smf/Itemid,10/topic,1183.msg26247/#msg26247
описано как я экономил на картинках. Правда, это работало только с картинками, которые определяются по расширению файла (но таких большинство). Не знаю работает ли это с текущими версиями FF, т.к. экономить на картинках сейчас мне не нужно.
для чего дублировать пункт только из кэша с указанием картинок в виде расширения?
Сообщить модератору   Записан
Anymore
Beta tester
*****

Репутация: +17/-0
Offline Offline

Сообщений: 339


« Ответ #6 : 05 декабря 2014, 21:13:45 »

Чет туманная постановка вопроса. Данное расширение блокирует по загрузку картинок используя два метода их обнаружения.
Сообщить модератору   Записан
Dimiyan
Новичок
*

Репутация: +0/-1
Offline Offline

Сообщений: 29


« Ответ #7 : 05 декабря 2014, 22:18:43 »

Чет туманная постановка вопроса. Данное расширение блокирует по загрузку картинок используя два метода их обнаружения.
Меня это ввело в замешательство, как новичка, ведь этого результата я добился включив пункт только из кэша и ненароком подумал, что это же продублировано в расширении
Сообщить модератору   Записан
Страниц: [1]   Вверх
  Отправить эту тему    Печать  

 
Перейти в: