+  HandyCache форум
|-+  Главная категория» Общие вопросы» Re: Скрипты Lua в HandyCache
Имя пользователя:
Пароль:
Страниц: 1 ... 8 9 [10] 11   Вниз
  Отправить эту тему    Печать  
Автор Тема: Re: Скрипты Lua в HandyCache  (Прочитано 47856 раз)
0 Пользователей и 1 Гость смотрят эту тему.
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #180 : 21 января 2009, 12:19:28 »

скрипт, запрещающий открывать сайты однокласники.ру и в контакте.ру всем юзерам, кроме одного. Короче, шефу можно, всем остальным нет.

В luaR.lst добавь строку:   
+odnoklassniki.ru|vkontakte.ru  <script=lua\_block_for_users.lua>

В папке Lua создай файл _block_for_users.lua с таким содержимым:

Код:
-- Скрипт для HandyCache v1.00 RC2 (1.0.0.103)
function main()
 hc_action = 'stop'
 if hc_user_name == 'Boss' then
  hc_action = ''
 end
end
Сообщить модератору   Записан
zed
Постоялец
***

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

Сообщений: 141


« Ответ #181 : 21 января 2009, 22:00:23 »

Ещё - есть такая штука, как LuaSQL

LuaSQL is a simple interface from Lua to a DBMS. It enables a Lua program to:

    * Connect to ODBC, ADO, Oracle, MySQL, SQLite and PostgreSQL databases;
    * Execute arbitrary SQL statements;
    * Retrieve results in a row-by-row cursor fashion.

LuaSQL is free software and uses the same license as Lua 5.1.

Цитировать
Ещё - есть такая штука, как LuaSQL
Есть. А еще мне запомнились сокеты для lua и возможность формирования/показа из lua окошек с контролами.
Хотелось бы увидеть развитие HC по данному направлению...
Сообщить модератору   Записан
divinets
Пользователь
**

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

Сообщений: 59


« Ответ #182 : 31 января 2009, 22:27:28 »

Подскажите как сделать?
У меня реализовано через скрипты ограничение размера файла в зависимости от времени block_long_file_by_time.lua
Как можно поставить один сайт (www.divinets.ru) в исключение для этого скрипта?
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #183 : 01 февраля 2009, 23:25:39 »

Как можно поставить один сайт (www.divinets.ru) в исключение для этого скрипта?

Вставь в lua.lst соответствующее исключение: !divinets.ru
Подробности в Документации...
Сообщить модератору   Записан
divinets
Пользователь
**

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

Сообщений: 59


« Ответ #184 : 02 февраля 2009, 22:13:32 »

У меня в луа:
#.* <script=lua\block_long_file_by_time.lua>
работает для всех сайтов.

Пробовал:
#!divinets.ru <script=lua\block_long_file_by_time.lua>
не работает (вообще не срабатывает, на любом сайте, в том числе и на divinets.ru)
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #185 : 03 февраля 2009, 12:06:39 »

Не правильно сделал! Вместо той строки вставь 3 таких:

!divinets.ru
#.* <script=lua\block_long_file_by_time.lua>
<new_block>

Сообщить модератору   Записан
Kserg
Новичок
*

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

Сообщений: 3


« Ответ #186 : 06 февраля 2009, 23:36:54 »

Исходные данные - HandyCache 1.0.0.64a
Настроен сервер-посредник
#5#~#True#~#lua2#~#script://lua/request#~#luaR.lst#~#.*

Содержимое файла luaR.lst :
Код:
; lua list
!#^http://192\.168\.\d+\.
#.  <script=lua\_delete_referer.lua>
Содержимое файла _delete_referer.lua
Код:
function main()
x, n = string.gsub(hc_header, "[Rr]eferer:[^\n]*\n", "", 1)
if n > 0 then
hc_header = x
hc_header_replace = true
end
end
От содержимого собственно скрипта (_delete_referer.lua) поведение сервера не зависит.
Проблема:
При включении обработки скриптов lua2 (script://lua/request) при совпадении условий (в данном случае  " #.  ", условия менял на другие, важен факт совпадения условий) любой запрос сервером обрабатывается с ошибкой.
В браузере
Код:
Service Unavailable
HandyCache: No DNS records for www.ya.ru (err 123)
В мониторе
Код:
06.02.2009/22:50:28 local1/127.0.0.1 http://www.ya.ru/ 0 0/131 0 0 "503 Service Unavailable (HC)" lua2
lua2 
В логе
Код:
06.02.09 22:50:28,375 # 35 <<< URL: http://www.ya.ru/
Sleep(ConnectRepeatPause)

06.02.09 22:50:33,000 # 35 <<< URL: http://www.ya.ru/
Connection to lua:80

06.02.09 22:50:36,062 # 35:  Outbound Connection failed

06.02.09 22:50:37,062 # 35 <<< URL: http://www.ya.ru/
HTTP/1.1 503 Service Unavailable (HC)
Server: HandyCache
Content-Type: text/html
Content-Length: 240
Connection: Keep-alive


06.02.09 22:50:37,062 # 35/268 >>> URL: http://www.ya.ru/
Connected to host: lua, port: 80

06.02.09 22:50:37,062 # 35/268 >>> URL: http://www.ya.ru/
GET /requestwww.ya.ru/ HTTP/1.1
Host: lua
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
If-Modified-Since: Sun, 11 Jan 2009 11:50:37 GMT
If-None-Match: "2065176078"
Cache-Control: max-age=0


06.02.09 22:50:37,062 # 35:  Client Disconnection

06.02.09 22:50:41,937 # 34:  Client Disconnection

06.02.09 22:51:08,562 # 36: Connection from local1/127.0.0.1 to HC Version 1.00 RC1 (1.0.0.64a)

06.02.09 22:51:10,656 # 36: DNS resolve lua --> Err 123

как видно идет обращение к обработчику, как lua:80 в итоге не ресолвиться DNS

Что я не так делаю?

PS кстати, парсинг прокси файлов lua.lst и luar.lst  (возможно и скриптов) критично относится к присутствию символа перевода каретки (CR LF) в конце строки и в конце файла. пока это понял, ронял прокси постоянно.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #187 : 09 февраля 2009, 15:38:31 »

Версия HandyCache 1.0.0.64a не умеет работать со скриптами запросов!
Их подержка введена с версии 1.0.0.103, что указано во всех анонсах и даже в шапке скрипта _delete_referer.lua, на котором ты ставил опыты!
Сообщить модератору   Записан
Kserg
Новичок
*

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

Сообщений: 3


« Ответ #188 : 09 февраля 2009, 16:21:28 »

Действительно,  твоем скрипте http://handycache.ru/component/option,com_smf/Itemid,10/topic,1120.msg15653/#msg15653 указано
-- Скрипт для HandyCache v 1.00 RC2 (1.0.0.103)
Тоже и в анонсе на главной странице (Добавлены скрипты для заголовков запросов)
К сожалению, я анонсы читаю невнимательно, ориентировался на документацию
http://handycache.ru/content/view/8/5/1/5/ а там об этом ни слова.

Спасибо за разъяснение Улыбка
Сообщить модератору   Записан
Oleg
Новичок
*

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

Сообщений: 29


WWW
« Ответ #189 : 24 февраля 2009, 22:43:23 »

 Возможен сценарий, если не Content-Encoding:gzip, то на WebWarper.
Сообщить модератору   Записан
Torren
Новичок
*

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

Сообщений: 3


« Ответ #190 : 01 марта 2009, 10:45:32 »

Помогите пожалуйста, заранее извините если где такое уже проходило.

Система такая, есть 2 юзера, которые доступ в интернет получают через внешний прокси:

-Vova

-Vasya

Что надо сделать на внешнем прокси-сервере, чтобы:

1) Обоим поставить ограничение скорости по времени с 01.00 до 09.00 в 2000 к/бит, а в остальное время - 1000 к/бит, при этом ограничения накладываются при одновременном доступе, а когда пользуется проксей только один юзер, то с него ограничения снимаются.

2) Ограничения по скорости действуют только для файлов размером свыше 50 мб.


P.S. Что еще надо сделать на клиентских машинах, если у каждого юзера есть свой список доменов, на которые они хотели бы заходить в обход внешнего прокси. Например для ресурсов своей локальной сети.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #191 : 02 марта 2009, 13:11:06 »

при этом ограничения накладываются при одновременном доступе, а когда пользуется проксей только один юзер, то с него ограничения снимаются.

В зависимости от активности нескольких пользователей канал разделить не получится, т.к. динамическое распределение канала пока в HC не реализовано.

Цитировать
2) Ограничения по скорости действуют только для файлов размером свыше 50 мб.

Это можно. Выше были примеры.

Цитировать
P.S. Что еще надо сделать на клиентских машинах, если у каждого юзера есть свой список доменов, на которые они хотели бы заходить в обход внешнего прокси. Например для ресурсов своей локальной сети.

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

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

Сообщений: 3


« Ответ #192 : 02 марта 2009, 22:51:01 »

Всем добрый вечер!Сегодня поставила последнюю версию программы все сделала по инструкции и по умолчанию.У меня вылетает синий экран смерти.И вот такая запись.
DRIVER_IRQL_NOT_LESS_OR_EQUAL
И в конце
FTPFILT-Adress F799A6CA base AtF7999000
STOP:OK
contact your system administrator or technical support group for furtcher assistance
Сообщить модератору   Записан
olDjeka
Постоялец
***

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

Сообщений: 117


« Ответ #193 : 13 марта 2009, 20:20:01 »

Недавно проявились проблемы HandyCache RC2 1.0.0.103 с gzip.
Для решения необходимо чтобы по заданным адресам отлючался запрос сжатия.
Предполагаю что с помощью правил это не получится, возможно ли это спомощью скрипта?
Если да, то буду благодарен за помощь.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #194 : 16 марта 2009, 10:14:26 »

Предполагаю что с помощью правил это не получится, возможно ли это спомощью скрипта?

Да, через удаление из заголовков запросов строки: "Accept-Encoding: ...".
Выше были примеры с похожими скриптами...
Сообщить модератору   Записан
Walder
Новичок
*

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

Сообщений: 17


« Ответ #195 : 21 марта 2009, 12:03:44 »

Доброго времени суток !

Есть вопросы:

1) Имеется скрипт - function main()
 if hc_user_name == 'ww' and hc_user_from_internet > 1000000 then
  hc_action = 'stop'
 end который устанавливает лимит дневного трафика по пользователям- 1000000 это сколько мегабайт? мне нужно 1 гиг разбить на user1 = 100mb, user2 = 200mb, user3 = 150mb и.т.д это какие числа будут ?

2) трафик будет считаться тока то что обновляет ? или и то что обновляет и берется из кеша в месте ?

3) нужно для всех пользователей поставить исключение, чтоб например локальный ресурс - handycache.ru не высчитывался из  заданного каждому  лимита ! это в luaR.lst  перед скриптом -#.  <script=lua\_day_traffic_limits_for_users.lua> нужно поставить !handycache.ru правильно ?

Заранее Благодарю Улыбка
« Последнее редактирование: 21 марта 2009, 12:10:11 от Walder » Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #196 : 23 марта 2009, 13:05:26 »

1000000 это сколько мегабайт? мне нужно 1 гиг разбить на user1 = 100mb, user2 = 200mb, user3 = 150mb и.т.д это какие числа будут ?

Ты в школе уроки информатики прогуливал, что ли? Подмигивающий

1000000 байт = 1000000/1024/1024 = 0,95 Мб
100 Мб = 100*1024*1024 = 104857600 байт
и т.д.

Цитировать
2) трафик будет считаться тока то что обновляет ? или и то что обновляет и берется из кеша в месте ?

Если у тебя в скрипте используется переменная hc_user_from_internet, то будет считаться только скачанное из интернета.

Цитировать
3) нужно для всех пользователей поставить исключение, чтоб например локальный ресурс - handycache.ru не высчитывался из  заданного каждому  лимита ! это в luaR.lst  перед скриптом -#.  <script=lua\_day_traffic_limits_for_users.lua> нужно поставить !handycache.ru правильно ?

Да, тогда скрипт эти сайты блокировать не будет, но в переменную hc_user_from_internet локальный трафик все равно приплюсуется! Совсем не учитывать локальный трафик не получится...
Сообщить модератору   Записан
Влад22
Пользователь
**

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

Сообщений: 97


« Ответ #197 : 06 апреля 2009, 06:30:28 »

Скачать программу http://forums.eccomagic.com/forum/Attachments/emSpawn.exe_file и поместить ее в папку НС (убрать _file в конце имени файла). Для вызова блокнота в скрипт добавить строку
os.execute([["emSpawn.exe /! notepad.exe"]])
Программа emSpawn нужна, чтобы скрипт не дожидался окончания работы вызванной программы.
Программу не удалось найти, а скрипт получился таким:
---
function GetContentLength(s)
  _,_,x= string.find(s, "[cC]ontent%-[lL]ength: (%d*)")
  if x==nil then return 0 else return tonumber(x) end
end

function main()
  x= GetContentLength(hc_header)
  if x>72 then os.execute([["d:\Program\HandyCache\lua\invmp3.exe d:\Program\HandyCache\lua\beep.mp3"]]) end
end
---
Все бы хорошо, но в момент срабатывания скрипта кратковременно появляется окошко cmd. Можно от этого как то избавиться? В мануалах ничего такого не нашел.  Help me!
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #198 : 06 апреля 2009, 12:04:34 »

Цитировать
Программу не удалось найти
Сейчас проверил, программа по той ссылке (http://forums.eccomagic.com/forum/Attachments/emSpawn.exe_file) качается. Попробуй ее использовать.
Сообщить модератору   Записан
Влад22
Пользователь
**

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

Сообщений: 97


« Ответ #199 : 06 апреля 2009, 15:00:15 »

Сейчас проверил, программа по той ссылке (http://forums.eccomagic.com/forum/Attachments/emSpawn.exe_file) качается. Попробуй ее использовать.
Спасибо, программу скачал (ip сайту оказывается не нравился), теперь вызов функии выглядит так:
---
os.execute([["emSpawn.exe /! invmp3.exe beep.mp3"]])
---
Все файлы лежат в папке HandyCache. Но экно все равно появляется, хотя и заметно кратковременнее. Нельзя его заставить совсем не показываться?
Сообщить модератору   Записан
Страниц: 1 ... 8 9 [10] 11   Вверх
  Отправить эту тему    Печать  

 
Перейти в: