Главная
Форум
Контакты
Купить
Поддержи проект
Поиск
Искать:
Расширенный поиск
[Закрыть]
Правила форума
Войти
Регистрация
Russian
English
HandyCache форум
Главная категория
»
Общие вопросы
»
Расширения на языке Lua в HandyCache
Имя пользователя:
1 час
1 день
1 неделя
1 месяц
Навсегда
Пароль:
Страниц:
1
2
[
3
]
4
5
...
29
Вниз
« предыдущая тема
следующая тема »
Отправить эту тему
Печать
Автор
Тема: Расширения на языке Lua в HandyCache (Прочитано 446940 раз)
0 Пользователей и 1 Гость смотрят эту тему.
alex208210
Beta tester
Репутация: +12/-1
Offline
Сообщений: 129
Расширения на языке Lua в HandyCache
«
Ответ #40 :
04 июня 2009, 07:37:40 »
Код:
--[[ <HCExtension>
@name allow
@author DenZzz
@version 0.01
@description Разрешение определенных url определенным пользователям
@event RequestHeaderReceived/allow
</HCExtension> ]]
function FindUrl(s)
x,_ = string.find(hc.url, s)
return x
end
function allow()
if (hc.user_name == "xarakor") and
FindUrl("net.kanal7%.ru")==nil and
FindUrl("forum.kanal7%.ru")==nil and
FindUrl("love.kanal7%.ru")==nil and
FindUrl("news.kanal7%.ru")==nil and
FindUrl("games.kanal7%.ru")==nil and
FindUrl("video.kanal7%.ru")==nil and
FindUrl("job.kanal7%.ru")==nil and
FindUrl("foto.kanal7%.ru")==nil and
FindUrl("job.kanal7%.ru")==nil and
FindUrl("192.168.66.129")==nil and
FindUrl("http://radio.kanal7.ru")==nil and
FindUrl("http://wsus.kanal7.ru/nod2/")==nil and
FindUrl("cinema.kanal7%.ru")==nil and
FindUrl("https://webim.qip.ru:5222")==nil and
FindUrl("https://login.icq.com:443")==nil then
hc.action = "stop"
end
end
«
Последнее редактирование: 04 июня 2009, 07:47:24 от alex208210
»
Сообщить модератору
Записан
mzr
Новичок
Репутация: +1/-0
Offline
Сообщений: 17
Расширения на языке Lua в HandyCache
«
Ответ #41 :
04 июня 2009, 13:27:20 »
Walder
Зачем так сложно? Читаем HCExtensions.html
Цитировать
Поля заголовка расширения
rule
Правило (регулярное выражение), которым будет проверяться URL запроса перед вызовом расширения. В заголовке может быть несколько полей rule.
exception
Исключение (регулярное выражение), которым будет проверяться URL запроса перед вызовом расширения. В заголовке может быть несколько полей exception.
Сюда вписываем URL.
А в самом обработчике расширения - проверяем пользователя и выбираем действие. Все.
Сообщить модератору
Записан
peleccom
Новичок
Репутация: +0/-0
Offline
Сообщений: 10
Расширения на языке Lua в HandyCache
«
Ответ #42 :
04 июня 2009, 21:49:27 »
Если нужно заблокировать загрузку файла из интернета то какое значение нужно присвоить hc.action?
пытался присвоить
"dont_update" - опера еще долго пытается что-то загрузить
"stop"- загружается часть файла но потом соединение разрывается ( код ответа 403)
Может нужно модифицировать ответ сервера?
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Расширения на языке Lua в HandyCache
«
Ответ #43 :
04 июня 2009, 22:18:13 »
Цитата: peleccom от 04 июня 2009, 21:49:27
Если нужно заблокировать загрузку файла из интернета то какое значение нужно присвоить hc.action?
"stop"
Цитировать
"stop"- загружается часть файла но потом соединение разрывается ( код ответа 403)
Для какого события вызывается скрипт? Если для RequestHeaderReceived, то HC в инет вообще не полезет! Просто ответит браузеру 403 и все.
Сообщить модератору
Записан
peleccom
Новичок
Репутация: +0/-0
Offline
Сообщений: 10
Расширения на языке Lua в HandyCache
«
Ответ #44 :
04 июня 2009, 22:51:04 »
Цитата: DenZzz от 04 июня 2009, 22:18:13
Для какого события вызывается скрипт? Если для RequestHeaderReceived, то HC в инет вообще не полезет! Просто ответит браузеру 403 и все.
А по какому событию можно прочитать тип передаваемых данных(content-type)?
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Расширения на языке Lua в HandyCache
«
Ответ #45 :
04 июня 2009, 23:19:27 »
Цитата: peleccom от 04 июня 2009, 22:51:04
А по какому событию можно прочитать тип передаваемых данных(content-type)?
Опять же, смотря откуда читать: из кэша или из инета?
Если из инета, то вместе с заголовками успевает загрузиться несколько килобайт тела файла, пока HC разрывает соединение с сервером, и с этим ничего не поделать...
Сообщить модератору
Записан
peleccom
Новичок
Репутация: +0/-0
Offline
Сообщений: 10
Расширения на языке Lua в HandyCache
«
Ответ #46 :
04 июня 2009, 23:21:02 »
А ну тогда понятно.
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Расширения на языке Lua в HandyCache
«
Ответ #47 :
09 июня 2009, 09:22:59 »
Переделал свои скрипты в расширения для HC v1.00 RC2 (1.0.0.180).
Порядок следования расширений в списке
extensions.lst
у меня такой:
Названия расширений
Названия файлов
Блокировать внешние ссылки (R-ext)
eR_Block_external_links.lua
Не обновлять картинки по типу в кэше (R-img)
eR_Dont_update_image_by_type_in_cache.lua
Не обновлять видео по типу в кэше (R-vid)
eR_Dont_update_video_by_type_in_cache.lua
Сохранять или блокировать ответы 403 и 404 (A-40X)
eA_Save_or_block_403_and_404.lua
Сохранять нужные ответы 404 (A-404s)
eA_Save_404.lua
Не обновлять картинки по типу с сервера (A-img)
eA_Dont_update_image_by_type.lua
Не обновлять видео по типу с сервера (A-vid)
eA_Dont_update_video_by_type.lua
Не обновлять файлы по размеру (A-size)
eA_Dont_update_file_by_size.lua
Блокировать загрузку больших файлов (A-long)
eA_Block_long_file.lua
Функционал тот же, что и у одноименных скриптов, но с парой дополнений:
1. Информация о том, какое расширение сработало теперь выводится в Монитор HC в колонку "Правила".
2. Расширения будут выполнять свои действия только в случае активности соответствующих списков.
Например: действие "stop-" заблокирует загрузку, только если Черный список не был отключен галкой "Разрешить", горячей клавишей или Белым списком. Таким образом, действия скриптов можно будет отключать горячими клавишами для списков, а правила из Белого списка будут распространяться и на скрипты. Это позволяет не дублировать исключения для обычных списков в расширениях.
Внимание!
В версии HC 1.0.0.175 есть баг, из-за которого неправильно работает действие "dont_update" в расширениях, обрабатывающих ответы сервера, а именно:
- Не обновлять картинки по типу с сервера (A-img)
- Не обновлять видео по типу с сервера (A-vid)
- Не обновлять файлы по размеру (A-size)
Рекомендуется скачать новую версию HC RC2 1.0.0.180, в которой эти расширения работают, как им положено.
HC_Extensions.rar
(3.5 Кб - загружено 150 раз.)
«
Последнее редактирование: 18 июня 2009, 08:39:41 от DenZzz
»
Сообщить модератору
Записан
The Alex
Новичок
Репутация: +1/-1
Offline
Сообщений: 28
Расширения на языке Lua в HandyCache
«
Ответ #48 :
10 июня 2009, 18:31:20 »
После обновления HC до последней версии 1.0.0.175 серверы-посредники блокируют весь трафик...
Браузер выдает:
Цитировать
ОШИБКА
Запрошенный URL не может быть доставлен.
Во время доставки URL: script://lua/requestforum.qrz.ru/index.php
Произошла следующая ошибка:
Неправильный URL
Некоторые аспекты URL неправильны. Возможные проблемы:
Отсутствует либо неверный протокол доступа (должен быть `http://'' или похожий)
Отсутствует имя сервера
Некорректный двойной управляющий символ в URL-пути
Недопустимый символ в имени сервера; подчёркивания недопустимы
Скрин монитора HC:
Возвращаюсь на предыдущую версию - все ОК!
Списки LUA во вложении:
lua.lst
(0.47 Кб - загружено 86 раз.)
luaR.lst
(0.38 Кб - загружено 75 раз.)
Сообщить модератору
Записан
mai62
Автор HC
Репутация: +226/-4
Offline
Сообщений: 6383
Расширения на языке Lua в HandyCache
«
Ответ #49 :
10 июня 2009, 18:53:10 »
The Alex
Старые скрипты не работают в новой версии. Читай это
http://handycache.ru/content/view/38/26/
Сообщить модератору
Записан
The Alex
Новичок
Репутация: +1/-1
Offline
Сообщений: 28
Расширения на языке Lua в HandyCache
«
Ответ #50 :
10 июня 2009, 19:08:06 »
mai62
ОК! Сори! Разобрался.... Спасибо!
Осталось понять как вводить исключения...
Сообщить модератору
Записан
flash
Пользователь
Репутация: +1/-0
Offline
Сообщений: 74
Расширения на языке Lua в HandyCache
«
Ответ #51 :
11 июня 2009, 15:09:37 »
DenZzz
Проблемка со скриптом eR_Block_external_links.lua... Не знаю только у меня так или нет, но происходит следующим образом: когда я смотрю какую-то страницу, на ней существуют ссылки на другие, не связанные с ней, если я клацаю по этой ссылке она открывается в новом окне и сразу же срабатывает блокировка ее R-ext. В опере стоит галка Отправлять данные о ссылающейся странице, может дело в этом? Хотя в мониторе хэндикэша таки ссылки отображаются как несвязанные с предыдущим сайтом, то есть в дереве идут отдельной строкой. Лечится это если на заблоканной странице по адресу нажать enter, тогда скрипт похоже адекватно воспринимает и не блокирует, но както неудобно.На скрине видны 2 заблоканных адреса, и потом разрешенные после нажатия enter в адресной строке.
23.jpg
(61.22 Кб, 1092x228 - просмотрено 180 раз.)
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Расширения на языке Lua в HandyCache
«
Ответ #52 :
11 июня 2009, 16:25:50 »
Цитата: flash от 11 июня 2009, 15:09:37
если я клацаю по этой ссылке она открывается в новом окне и сразу же срабатывает блокировка ее R-ext.
Да, этот так. Из HC нет возможности определить, кто иницировал запрос: пользователь или браузер.
Цитировать
В опере стоит галка Отправлять данные о ссылающейся странице, может дело в этом?
Если ее снимешь, то Опера вообще перестанет посылать рефереры и расширение работать не сможет вообще.
Цитировать
Хотя в мониторе хэндикэша таки ссылки отображаются как несвязанные с предыдущим сайтом, то есть в дереве идут отдельной строкой.
Это потому, что у этих ссылок появились зависимые, а посмотри в логе HC - реферер там есть.
Цитировать
Лечится это если на заблоканной странице по адресу нажать enter, тогда скрипт похоже адекватно воспринимает и не блокирует
Да, в этом случае браузер считает, что адрес введен вручную пользователем и не шлет реферер.
В общем, фича известная и я о ней предупреждал, когда выкладывал первую версию этого скрипта. Жаль, что Опера не умеет по желанию пользователя слать нужные запросы без реферера. В Макстоне, например, это делается просто кликом средней кнопкой мыши по ссылке. В Опере ничего подобного я, к сожалению, не нашел. Если есть тут спецы по Опере подскажите, может ли она при клике мышью по ссылкам удалять реферер или хотя бы вставлять какой-нибудь свой заголовок-метку? Тогда я смогу в HC его обработать...
Как вариант, можно настроить горячую клавишу для "Черного списка" и в момент клика по ссылке ее зажимать, тогда расширение блокировать загрузку ссылки не станет.
Сообщить модератору
Записан
flash
Пользователь
Репутация: +1/-0
Offline
Сообщений: 74
Расширения на языке Lua в HandyCache
«
Ответ #53 :
11 июня 2009, 18:24:29 »
вот из лога с реферером, он подставляет тот сайт с которого клацнуто как реферер
11.06.09 13:43:06,937 # 143/1208 >>> URL:
http://depositfiles.com/files/1076727
DeniedDo:
GET
http://depositfiles.com/files/1076727
HTTP/1.1
User-Agent: Opera/10.00 (Windows NT 5.1; U; ru) Presto/2.2.0
Host: depositfiles.com
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Referer:
http://smallurl.ru/anonym/?http://depositfiles.com/files/1076727
Cookie: __utmz=10246176.1238524336.2.2.utmcsr=drivec.ru|utmccn=(referral)|utmcmd=referral|utmcct=/; __utma=10246176.777232328940154500.1236858154.1236858154.1238524336.2; v_auth=1244542453dc9e4cd9514cb696ff0815; autologin=c346ded259bf35d55bc86569fc40dd00
Cookie2: $Version=1
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Расширения на языке Lua в HandyCache
«
Ответ #54 :
11 июня 2009, 18:32:15 »
Цитата: flash от 11 июня 2009, 18:24:29
вот из лога с реферером, он подставляет тот сайт с которого клацнуто как реферер
Да, поэтому расширение и срабатывает. Когда нет реферера, расширение не работает.
Сообщить модератору
Записан
4e4ako
Пользователь
Репутация: +3/-0
Offline
Сообщений: 68
Расширения на языке Lua в HandyCache
«
Ответ #55 :
11 июня 2009, 19:36:29 »
Цитата: DenZzz от 11 июня 2009, 16:25:50
В Макстоне, например, это делается просто кликом средней кнопкой мыши по ссылке. В Опере ничего подобного я, к сожалению, не нашел. Если есть тут спецы по Опере подскажите, может ли она при клике мышью по ссылкам удалять реферер или хотя бы вставлять какой-нибудь свой заголовок-метку? Тогда я смогу в HC его обработать...
ползовательские скрипты на яве могут все... - поищите на форуме проекта opera-ac
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Расширения на языке Lua в HandyCache
«
Ответ #56 :
14 июня 2009, 17:31:52 »
Цитата: Wonderboy от 14 июня 2009, 15:30:19
Было бы здорово вообще не кешировать разные *.flv и иже с ними, но без расширения, а я не знаю, умеет уже НС анализировать хотя бы начало файла.
Можно анализировать "Content-Type" с сервера и запрещать писать файлы с типом "video" в кэш:
Код:
--[[ <HCExtension>
@name Не сохранять видео по типу с сервера (A-vid Dont_save )
@author DenZzz
@version 0.1 для HC v1.00 RC2 (1.0.0.180) и возможно выше
@description Не сохранять видео по типу файла в заголовке ответа сервера
@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 Answer()
-- Только для GET-запросов
if hc.method == 'GET' then
-- забираем тип файла из заголовка 'Content-Type'
type = GetContentType(hc.answer_header)
-- есть ли в поле заголовка 'Content-Type' слово 'video'
if type~=nil then vid = string.find(type,'video',1,true)
else vid = nil end
if vid~=nil then
hc.action = 'dont_save'
hc.monitor_string = hc.monitor_string..'A-vid Dont_save '
end
end
end -- Конец функции Answer
Сообщить модератору
Записан
Wonderboy
Новичок
Репутация: +0/-1
Offline
Сообщений: 27
Расширения на языке Lua в HandyCache
«
Ответ #57 :
14 июня 2009, 17:35:55 »
DenZzz
, большое спасибо! Предлагаю это расширение включить в дефолтные списки
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Расширения на языке Lua в HandyCache
«
Ответ #58 :
14 июня 2009, 17:49:05 »
Цитата: Wonderboy от 14 июня 2009, 17:35:55
Предлагаю это расширение включить в дефолтные списки
Это расширение совсем не способствует экономии трафика, а в дефолтном списке расширений у меня как раз есть противоположное: "
Не обновлять
видео по типу с сервера (A-vid)".
Сообщить модератору
Записан
Wonderboy
Новичок
Репутация: +0/-1
Offline
Сообщений: 27
Расширения на языке Lua в HandyCache
«
Ответ #59 :
15 июня 2009, 08:18:56 »
DenZzz
Зато это расширение весьма способствует не превращению кеша в мусорною корзину. Есть много обладателей безлимиток и тем не менее пользователей НС. Если я на YouTube и иже с ними видео смотрю только для ознакомления - зачем мне его пихать в кеш? Хотя вам решать.
Сообщить модератору
Записан
Страниц:
1
2
[
3
]
4
5
...
29
Вверх
Отправить эту тему
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Главная категория
-----------------------------
=> Общие вопросы
=> Новые предложения
=> Дополнения, плагины
=> Сжатие трафика
=> English forum
=> Indonesian forum
-----------------------------
Гостевая
-----------------------------
=> Гостевая
-----------------------------
Дела домашние
-----------------------------
=> Сайт и форум HandyCache
=> Курилка
© 2006-2014 HandyCache Team. Все права защищены.
Загружается...