+  HandyCache форум
|-+  Главная категория» Дополнения, плагины» Блокировать внешние ссылки (R-ext) - расширение HC
Имя пользователя:
Пароль:
Страниц: 1 2 [3]  Все   Вниз
  Отправить эту тему    Печать  
Автор Тема: Блокировать внешние ссылки (R-ext) - расширение HC  (Прочитано 47056 раз)
0 Пользователей и 1 Гость смотрят эту тему.
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #40 : 08 февраля 2013, 23:55:56 »

заменил
Код:
	-- Помечаем заблокированное вставкой своей строки в заголовок запроса [+]
hc.request_header = re.replace(hc.request_header, [[\A]], 'HandyCache/R-ext\r\n')

Не хорошо портить заголовки запросов. После твоего расширения могут работать другие, которые не поймут не по стандарту исправленный заголовок.
Сообщить модератору   Записан
olDjeka
Постоялец
***

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

Сообщений: 117


« Ответ #41 : 09 февраля 2013, 02:00:36 »

Смущен Так будет правильно?
Код:
	hc.request_header = re.replace(hc.request_header, [[\Z]], 'HandyCache: R-ext\r\n')
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #42 : 10 февраля 2013, 21:53:10 »

Да.
Сообщить модератору   Записан
olDjeka
Постоялец
***

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

Сообщений: 117


« Ответ #43 : 11 февраля 2013, 02:28:41 »

Исправил строку заголовка запроса как указано выше, а поиск как указано ниже.

Активность ЧС и правила БС не влияли на ответ - клиенту всегда отдавалось заданное в расширении.
Для исправления заменил
Код:
function AnswerSend()   -- Выполняется при передаче ответа клиенту

-- Проверям отметку о блокировке, и если есть, то [+]
if re.find(hc.request_header, 'HandyCache/R-ext') then
-- изменяем заголовок ответа, с указанием типа контента
hc.answer_header = re.replace(hc.answer_header, [[.*]], 'HTTP/1.1 430 lock (R-ext)\r\nConnection: Close\r\nContent-Type: image/png\r\n\r\n')
-- задаём обработчик для подмены тела ответа
hc.call_me_for('BeforeAnswerBodySend', 'BodyExt')
end
на следующее
Код:
function AnswerSend()   -- Выполняется при передаче ответа клиенту

-- Проверям отметку о блокировке [+]
if re.find(hc.request_header, 'HandyCache: R-ext') and
-- и заголовок ответа на "допустимость блокирования",
re.find(hc.answer_header, [[\AHTTP/1.1 (403 Forbidden|430 Blocked) \(HC\)]]) then
-- и если разрешено, то изменяем заголовок ответа с указанием типа контента
hc.answer_header = 'HTTP/1.1 430 lock (R-ext)\r\nConnection: Close\r\nContent-Type: image/png\r\n\r\n'
-- и задаём обработчик для подмены тела ответа
hc.call_me_for('BeforeAnswerBodySend', 'BodyExt')
end

* Если запрос блокируется правилом ЧС, то при использовании в расширении события
Код:
@event           RequestHeaderReceived
в колонку монитора Ответ будет выдана строка, а клиенту будет отдан файл, заданные в расширении.
При использовании события
Код:
@event           BeforeRequestHeaderSend
будут выданы соответсвующие данные ЧС.
Сообщить модератору   Записан
bulmandov
Новичок
*

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

Сообщений: 1

b.


« Ответ #44 : 15 февраля 2013, 22:28:49 »

А можно в Adblock как-нибудь блокировать картинки определенных размеров. Например счетчики, которые как правило имеют стандартный размер 88х31?
Сообщить модератору   Записан

b.
alex77
Старожил
****

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

Сообщений: 482



« Ответ #45 : 16 февраля 2013, 05:19:07 »

А можно в Adblock как-нибудь блокировать картинки определенных размеров. Например счетчики, которые как правило имеют стандартный размер 88х31?
используйте СМ.
Сообщить модератору   Записан
Страниц: 1 2 [3]  Все   Вверх
  Отправить эту тему    Печать  

 
Перейти в: