Главная
Форум
Контакты
Купить
Поддержи проект
Поиск
Искать:
Расширенный поиск
[Закрыть]
Правила форума
Войти
Регистрация
Russian
English
HandyCache форум
Главная категория
»
Общие вопросы
»
Расширения на языке Lua в HandyCache
Имя пользователя:
1 час
1 день
1 неделя
1 месяц
Навсегда
Пароль:
Страниц:
1
...
7
8
[
9
]
10
11
...
29
Вниз
« предыдущая тема
следующая тема »
Отправить эту тему
Печать
Автор
Тема: Расширения на языке Lua в HandyCache (Прочитано 438306 раз)
0 Пользователей и 1 Гость смотрят эту тему.
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Расширения на языке Lua в HandyCache
«
Ответ #160 :
25 декабря 2009, 18:23:08 »
Цитата: gromaster от 25 декабря 2009, 12:29:20
ребят помогите, как можно сделать чтобы определенному пользователю можно было вместо некоторых сайтов выводить текст вроде доступ запрещен
http://handycache.ru/component/option,com_smf/Itemid,10/topic,2716.0/
Сообщить модератору
Записан
gromaster
Новичок
Репутация: +0/-0
Offline
Сообщений: 8
Расширения на языке Lua в HandyCache
«
Ответ #161 :
25 декабря 2009, 19:06:14 »
Цитата: DenZzz от 25 декабря 2009, 18:23:08
http://handycache.ru/component/option,com_smf/Itemid,10/topic,2716.0/
а чтобы сообщение выдавалось с определенным текстом как реализовать?
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Расширения на языке Lua в HandyCache
«
Ответ #162 :
25 декабря 2009, 19:20:02 »
Цитата: gromaster от 25 декабря 2009, 19:06:14
а чтобы сообщение выдавалось с определенным текстом как реализовать?
Вместо hc.action = 'stop' нужно присваивать значения переменным hc.answer_header и hc.answer_body.
Сообщить модератору
Записан
k_ok_o_s
Новичок
Репутация: +0/-0
Offline
Сообщений: 19
Расширения на языке Lua в HandyCache
«
Ответ #163 :
27 декабря 2009, 13:38:24 »
Уважаемый
mai62
, спасибо за классный продукт!
У меня к Вам просьба: сделайте, пожалуйста, для работы с расширениями ещё 3 таких
Функции
:
hc_user_from_internet_stopwatch
Количество данных, полученных пользователем из интернета с момента последнего обнуления.
hc_user_from_cache_stopwatch
Количество данных, полученных пользователем из кэша с момента последнего обнуления.
hc_user_to_internet_stopwatch
Количество данных, отправленных пользователем с момента последнего обнуления.
Аргументы функции
:
stop
- обнуление счётчика;
start
- старт счётчика.
Возвращаемое значение
: Количество данных в байтах, полученных\отправленных пользователем с момента последнего обнуления.
Хочу сделать, чтобы можно было определять сетевую активность программ, работающих через прокси, и в зависимости от степени этой активности выполнять нужные действия.
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Расширения на языке Lua в HandyCache
«
Ответ #164 :
27 декабря 2009, 14:08:55 »
k_ok_o_s
Новые предложения - в другом разделе. По динамическому распределению скорости есть уже такая тема:
http://handycache.ru/component/option,com_smf/Itemid,10/topic,98.msg20929/#msg20929
Добавлено: 27 Декабря 2009, 14:54:49
Цитата: k_ok_o_s от 27 декабря 2009, 13:38:24
Аргументы функции
:
stop
- обнуление счётчика;
start
- старт счётчика.
Возвращаемое значение
: Количество данных в байтах, полученных\отправленных пользователем с момента последнего обнуления.
Все это можно сделать уже сейчас в самом расширении без добавления новых функций в HC.
Сообщить модератору
Записан
k_ok_o_s
Новичок
Репутация: +0/-0
Offline
Сообщений: 19
Расширения на языке Lua в HandyCache
«
Ответ #165 :
27 декабря 2009, 20:23:07 »
DenZzz
, спасибо за обнадёживающий ответ! :-)
DenZzz
, не могли бы Вы написать такое расширение (к сожалению, я не программер):
Код:
метка_А:
Ждать n сек.
Начало цикла
Если траффик клиента за последние n сек. >a КБ
то запустить bat1.bat
переход на метка_Б
иначе ждать n сек.
переход в начало цикла
Конец цикла
метка_Б:
Ждать m сек.
Начало цикла
Если траффик клиента за последние m сек. <b КБ
то запустить bat2.bat
переход на метка_А
иначе ждать m сек.
переход в начало цикла
Конец цикла
Расширение запускается при старте HC и постоянно работает
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Расширения на языке Lua в HandyCache
«
Ответ #166 :
27 декабря 2009, 22:58:35 »
Цитата: k_ok_o_s от 27 декабря 2009, 20:23:07
DenZzz
, не могли бы Вы написать такое расширение (к сожалению, я не программер):
Чтобы писать расширения на языке Lua, не обязательно быть программером. Язык очень прост и интуитивно понятен.
Сообщить модератору
Записан
k_ok_o_s
Новичок
Репутация: +0/-0
Offline
Сообщений: 19
Расширения на языке Lua в HandyCache
«
Ответ #167 :
30 декабря 2009, 11:27:58 »
Приветствую! С Рождеством! :-)
Пару вопросов агронома-программиста :-)
1. Как сделать вывод значения переменной ? Для сообщения я использовал
hc.put_msg
.
2. Чем отличается родная функция Lua
sleep()
от
hc.sleep()
?
3. Подскажите, пожалуйста, что в этой
Код:
last_traffic=hc_user_to_internet+hc_user_from_cache+hc_user_from_internet
строке не нравится LuaTest :
вот моё расширение:
Код:
--[[ <HCExtension>
@name Сторож сетевой активности клиентов
@author k_ok_o_s
@version 1.0
@description Автоматическое изменения скорости работы FDM в зависимости от сетевой активности клиентов HC
@event Init/Main
</HCExtension> ]]
function Main()
--если за n сек. траффик >a Кб., то скорость FDM снижается
n=3
a=10
--если за m сек. траффик <b Кб., то скорость FDM повышается
m=60
b=300
while n~=nil do
repeat
last_traffic=hc_user_to_internet+hc_user_from_cache+hc_user_from_internet
sleep(n)
--print(last_traffic)
until ((hc_user_to_internet+hc_user_from_cache+hc_user_from_internet-last_traffic)>a*1024)
--hc.shell_execute('fdm_speed_down.exe', nil, nil, 'SW_HIDE')
hc.put_msg(2, 'Скорость FDM снижена')
repeat
last_traffic=hc_user_to_internet+hc_user_from_cache+hc_user_from_internet
sleep(m)
--print(last_traffic)
until ((hc_user_to_internet+hc_user_from_cache+hc_user_from_internet-last_traffic)<b*1024)
--hc.shell_execute('fdm_speed_up.exe', nil, nil, 'SW_HIDE')
hc.put_msg(2, 'Скорость FDM повышена')
end
end
«
Последнее редактирование: 30 декабря 2009, 11:39:45 от k_ok_o_s
»
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Расширения на языке Lua в HandyCache
«
Ответ #168 :
30 декабря 2009, 12:17:15 »
Цитата: k_ok_o_s от 30 декабря 2009, 11:27:58
1. Как сделать вывод значения переменной ? Для сообщения я использовал
hc.put_msg
.
Вывод куда? В лог, трей? hc.put_msg формирует всплывающее сообщение в трее.
Цитата: k_ok_o_s от 30 декабря 2009, 11:27:58
2. Чем отличается родная функция Lua
sleep()
от
hc.sleep()
?
У Lua нет родной функции
sleep()
, поэтому появилась
hc.sleep()
Цитата: k_ok_o_s от 30 декабря 2009, 11:27:58
3. Подскажите, пожалуйста, что в этой
Код:
last_traffic=hc_user_to_internet+hc_user_from_cache+hc_user_from_internet
строке не нравится LuaTest :
Переменные таблицы hc сейчас имеют вид: hc.user_to_internet+hc.user_from_cache+hc.user_from_internet , т.е. после hc идет точка, а не "_".
Сообщить модератору
Записан
k_ok_o_s
Новичок
Репутация: +0/-0
Offline
Сообщений: 19
Расширения на языке Lua в HandyCache
«
Ответ #169 :
30 декабря 2009, 15:04:09 »
Спасибо за ответ.
Я хочу сделать вывод на экран :
За последние n сек. траффик составил a Кб."
,
но чтобы вместо
n
и
a
отобразилось значение этих переменных.
насколько я понял, вывод на экран можно организовать только функцией
hc.put_msg
Сообщить модератору
Записан
mai62
Автор HC
Репутация: +226/-4
Offline
Сообщений: 6383
Расширения на языке Lua в HandyCache
«
Ответ #170 :
30 декабря 2009, 16:46:43 »
hc.put_msg("За последние "..n.." сек. траффик составил "..a.." Кб.")
Сообщить модератору
Записан
k_ok_o_s
Новичок
Репутация: +0/-0
Offline
Сообщений: 19
Расширения на языке Lua в HandyCache
«
Ответ #171 :
30 декабря 2009, 17:08:21 »
mai62
Спасибо за ответ и за программу!!!
Сообщить модератору
Записан
k_ok_o_s
Новичок
Репутация: +0/-0
Offline
Сообщений: 19
Расширения на языке Lua в HandyCache
«
Ответ #172 :
30 декабря 2009, 22:49:35 »
HC 1.0.0.252 . Все расширения, кроме моего, выключены :-)
1. Подскажите, пожалуйста, почему пока не отключу "Серверы-посредники", браузер выдаёт:
Цитировать
HTTP-шлюз не отвечает (код ошибки: 504)
а в мониторе HC -
Цитировать
30.12.2009/21:36:46 local/127.0.0.1
http://www.promoroz.ru/raznoe/raznoe10.php
0 0/148 0 0 "504 Gateway Timeout (HC)" LuaR
LuaR
2. Моё расширение, поскольку запускается как обработчик события
Init
, не нужно прописывать ни в
lua.lst
, ни в
luaR.lst
?
3. Это из-за вышеозначенных непоняток во всплывающем окошке выводится:
Цитировать
За последние 3 сек. траффик составил
0
Кб.
?
Галочка "Вести статистику" отмечена. Почему ж не подсчитывается траффик?
содержимое файла
lua.lst
:
Код:
; Файл-список скриптов LUA для обработки заголовков ответов серверов
;-------------------------------------------------------------------
#. <script=lua\save_or_block_403_and_404.lua>
#/favicon\.ico$ <script=lua\save_404.lua>
#. <script=lua\dont_update_image_by_type.lua>
#. <script=lua\dont_update_file_by_size.lua>
#. <script=lua\block_long_file.lua>
содержимое файла
luaR.lst
:
Код:
; Файл-список скриптов LUA для обработки заголовков запросов клиентов
;--------------------------------------------------------------------
#. <script=lua\_dont_update_image_by_type_in_cache.lua>
!#\b(imageshack\.us|photofile\.ru|radikal\.ru)/
#. <script=lua\_block_external_links.lua>
Код расширения (альфа :-) :
Код:
--[[ <HCExtension>
@name Сторож сетевой активности клиентов
@author k_ok_o_s
@version 1.0
@description Автоматическое изменения скорости работы FDM в зависимости от сетевой активности клиентов HC
@event Init/Main
</HCExtension> ]]
function Main()
--если за n сек. траффик >a Кб., то скорость FDM снижается
n=3
a=10
--если за m сек. траффик <b Кб., то скорость FDM повышается
m=60
b=300
while n~=nil do
repeat
last_traffic=hc.user_to_internet+hc.user_from_cache+hc.user_from_internet
hc.sleep(n)
delta_traffic=hc.user_to_internet+hc.user_from_cache+hc.user_from_internet-last_traffic
hc.put_msg(2, "За последние "..n.." сек. траффик составил "..delta_traffic.." Кб.")
until ((hc.user_to_internet+hc.user_from_cache+hc.user_from_internet-last_traffic)>a*1024)
--hc.shell_execute('fdm_speed_down.exe', nil, nil, 'SW_HIDE')
hc.put_msg(2, 'Скорость FDM снижена')
repeat
last_traffic=hc.user_to_internet+hc.user_from_cache+hc.user_from_internet
hc.sleep(m)
hc.put_msg(2, "За последние "..m.." сек. траффик составил "..(hc.user_to_internet+hc.user_from_cache+hc.user_from_internet-last_traffic).." Кб.")
until ((hc.user_to_internet+hc.user_from_cache+hc.user_from_internet-last_traffic)<b*1024)
--hc.shell_execute('fdm_speed_up.exe', nil, nil, 'SW_HIDE')
hc.put_msg(2, 'Скорость FDM повышена')
end
end
«
Последнее редактирование: 30 декабря 2009, 22:57:29 от k_ok_o_s
»
Сообщить модератору
Записан
mai62
Автор HC
Репутация: +226/-4
Offline
Сообщений: 6383
Расширения на языке Lua в HandyCache
«
Ответ #173 :
31 декабря 2009, 00:33:24 »
В НС для использования расширений давно не нужны серверы посредники и файлы lua.lst, и в luaR.lst. Перейди на вкладку Настойки/Расширения. Там есть кнопка для добавления расширения. Нажми ее и выбери файл расширения.
Функция main тоже не нужна. В архиве, который ты скачал, есть папка Extensions. Там есть справка по написанию расширений и примеры расширений.
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Расширения на языке Lua в HandyCache
«
Ответ #174 :
31 декабря 2009, 00:47:43 »
Цитата: k_ok_o_s от 30 декабря 2009, 22:49:35
1. Подскажите, пожалуйста, почему пока не отключу "Серверы-посредники", браузер выдаёт:
Потому что там прописаны старые списки
lua.lst
и
luaR.lst
, которые надо удалить совсем, чтобы не мешали.
Цитировать
3. Это из-за вышеозначенных непоняток во всплывающем окошке выводится: ?
Галочка "Вести статистику" отмечена. Почему ж не подсчитывается траффик?
Основная ошибка - переменные hc.user_to_internet+hc.user_from_cache+hc.user_from_internet не доступны из события Init и они содержат объем трафика только одного пользователя HC, а не всех (см. HCExtensions.html).
Есть и другие ошибки, но в данном случае надо пересматривать всю концепцию твоего расширения.
Сколько пользователей у тебя ходит через HC?
Хорошо, если только один. Если же их больше, то пока невозможно узнать реальную нагрузку на канал всех пользователей HC в конкретный момент времени. Я предложил создать новую функцию
hc.active_users_list
, но это предложение пока не реализовано...
Сообщить модератору
Записан
k_ok_o_s
Новичок
Репутация: +0/-0
Offline
Сообщений: 19
Расширения на языке Lua в HandyCache
«
Ответ #175 :
31 декабря 2009, 15:17:37 »
mai62
Цитировать
Перейди на вкладку Настойки/Расширения. Там есть кнопка для добавления расширения. Нажми ее и выбери файл расширения.
так я и делал
Цитировать
В архиве, который ты скачал, есть папка Extensions.
отдельно Extensions я не скачивал, в последний раз всё обновилось автоапдейтером, а до этого просто накатывал zip-ы сверху установленного HC (уже несколько лет)
Цитировать
Там есть справка по написанию расширений и примеры расширений.
а ещё в корневой папке HC у меня есть
HC_Lua_scripts.html
, я его вкладываю в сообщение.
Может, настроить Вам апдейтер так, чтоб он потёр этот старый файл и папку Lua ?
HandyCache.zip
(13.85 Кб - загружено 53 раз.)
Сообщить модератору
Записан
mai62
Автор HC
Репутация: +226/-4
Offline
Сообщений: 6383
Расширения на языке Lua в HandyCache
«
Ответ #176 :
31 декабря 2009, 16:20:36 »
Цитировать
отдельно Extensions я не скачивал, в последний раз всё обновилось автоапдейтером, а до этого просто накатывал zip-ы сверху установленного HC (уже несколько лет)
Скачивать Extensions отдельно не нужно, эта папка находится в файле HandyCacheRC3.1.0.0.252.zip (доступен из раздела Файлы на сайте).
Установить автоапдейтом сборку 252 Вы не могли. Сейчас автоапдейт устанавливает только сборку 193.
В любом случае автоапдейт скачивает тот же архив, что и при ручном скачивании, а затем распаковывает и копирует файлы из архива. Скачанный автоапдейтом архив после обновления не удаляется, посмотрите может у Вас есть этот архив.
Цитировать
а ещё в корневой папке HC у меня есть HC_Lua_scripts.html , я его вкладываю в сообщение.
Может, настроить Вам апдейтер так, чтоб он потёр этот старый файл и папку Lua ?
Не считаю правильным что-то удалять автоматом на компьютере пользователя, а уж тем более целую папку. Мало ли, что там может находиться у пользователя, а я возьму да удалю. В той же папке lua у пользователя могут быть модифицированные или собственные файлы.
Основные изменения, происходящие в программе фиксируются в файле WhatsNew.txt. Более подробную информацию об изменениях можно найти на сайте. Например, информация о переходе от скриптов lua к расширениям на lua опубликована здесь
http://handycache.ru/content/view/38/26/
Там же упоминается папка Extensions и файл HCExtensions.html.
Сообщить модератору
Записан
k_ok_o_s
Новичок
Репутация: +0/-0
Offline
Сообщений: 19
Расширения на языке Lua в HandyCache
«
Ответ #177 :
06 января 2010, 19:17:53 »
С Рождеством!!!
mai62
Смотрю на Ваш ответ и думаю: "Как я мог такие несерьёзные вещи предлагать в прошлом году?"
DenZzz
1.
Цитировать
Основная ошибка - переменные hc.user_to_internet+hc.user_from_cache+hc.user_from_internet не доступны из события Init
Естесственно, ведь таблица, содержащая
все
переменные, создаётся перед первым вызовом к.-л. функции:
Цитировать
(
из HCExtensions.html
)Перед вызовом функций расширения HandyCache создает в lua-машине две таблицы: hc и re. В первой собраны значения и функции, позволяющие получать информацию о значениях внутренних переменных HandyCache и изменять некоторые из них.
Как же они могут быть доступны из события Init, если оно
Цитировать
Возникает при загрузке расширений во время старта HandyCache
?
Или я совсем не понял, о чём речь?
2.
Цитировать
Есть и другие ошибки, но в данном случае надо пересматривать всю концепцию твоего расширения.
В чём же не верна концепция? Или ответ на это кроется в пункте 1?
3.
Цитировать
Сколько пользователей у тебя ходит через HC?
Один.
«
Последнее редактирование: 06 января 2010, 19:22:55 от k_ok_o_s
»
Сообщить модератору
Записан
MetersBonwe
Новичок
Репутация: +0/-0
Offline
Сообщений: 10
Расширения на языке Lua в HandyCache
«
Ответ #178 :
08 января 2010, 11:36:16 »
Доброго времени суток!
Сижу на работе в локалке, работаю через внешний безусловный прокси.
Периодически выхожу в И-нет через gprs, запарился галочку нажимать "резрешить" на вкладке "внешние прокси",
в связи с чем назрела необходимость:
можно ли создать расширение, которое будет переключать прокси по условию, например, имени содинения с И-нет, или отключать безусловный прокси при условии смены текущего соединения с И-нет.
В общем, разные внешние прокси для разных соединений.
Спасибо заранее
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Расширения на языке Lua в HandyCache
«
Ответ #179 :
09 января 2010, 10:27:22 »
Цитата: k_ok_o_s от 06 января 2010, 19:17:53
2.
В чём же не верна концепция? Или ответ на это кроется в пункте 1?
Ответ на это кроется в описании переменных в
HCExtensions.html
. Если лень вчитываться, то просто прими как аксиому: переменные hc.user_to_internet+hc.user_from_cache+hc.user_from_internet не доступны из события Init, а доступны только из событий:
RequestHeaderReceived, BeforeRequestHeaderSend, AnswerHeaderReceived, BeforeAnswerHeaderSend, BeforeAnswerBodySend.
Цитата: MetersBonwe от 08 января 2010, 11:36:16
В общем, разные внешние прокси для разных соединений.
Это давно есть в штатных настройках HC: "Общие => Дозвон => Внешний прокси для этого подключения".
Сообщить модератору
Записан
Страниц:
1
...
7
8
[
9
]
10
11
...
29
Вверх
Отправить эту тему
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Главная категория
-----------------------------
=> Общие вопросы
=> Новые предложения
=> Дополнения, плагины
=> Сжатие трафика
=> English forum
=> Indonesian forum
-----------------------------
Гостевая
-----------------------------
=> Гостевая
-----------------------------
Дела домашние
-----------------------------
=> Сайт и форум HandyCache
=> Курилка
© 2006-2014 HandyCache Team. Все права защищены.
Загружается...