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

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

Сообщений: 6235


« Ответ #200 : 06 Апрель 2009, 15:36:30 »

Про опции emSpawn.exe вот, что написано
Цитировать
emSpawn.exe /?
      Display emSpawn version info

emSpawn.exe /! [REST OF YOUR COMMAND]
      Spawns windows based run without cmd box
Ключ "/!" предотвращает появление окна. Может это касается только вызова системных команд?
А про опции invmp3.exe ничего неизвестно? Может у него есть какой-то ключ для проигрывания без появления окошка?
Сообщить модератору   Записан
Влад22
Пользователь
**

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

Сообщений: 97


« Ответ #201 : 06 Апрель 2009, 16:05:41 »

Про опции emSpawn.exe вот, что написано
Ключ "/!" предотвращает появление окна. Может это касается только вызова системных команд?
А про опции invmp3.exe ничего неизвестно? Может у него есть какой-то ключ для проигрывания без появления окошка?
Известно   Веселый У invmp3.exe совсем НЕТ ОКНА!   lol
Т.е мелькает не окошко вызываемой проги, а окно cmd.
Пробовал запускать блокнот и другие проги, все равно окошко кратковременно появляется.

Может кто-нибудь тоже использовал эту функцию из под ХК? Интересно было бы услышать опыт других, если такой имеется.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5276



« Ответ #202 : 06 Апрель 2009, 17:31:03 »

Когда-то тоже наткнулся на эту неприятность os.execute и io.popen. Выхода не нашел, и мысль использовать в скрипте внешнюю программу пришлось предать забвению.
PS Если я правильно помню (не факт), вместо os.execute+emSpawn.exe можно использовать io.popen.
Сообщить модератору   Записан
Walder
Новичок
*

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

Сообщений: 17


« Ответ #203 : 13 Апрель 2009, 15:28:42 »

DenZzz благодарю !

Есть еще один вопрос : имеется скрипт -
function FindUrl(s)
  x,_ = string.find(hc_url, s)
  return x
end

function main()

 hc_action = "stop"

 if hc_user_name == "Sergey" and
  (FindUrl("mail%.ru")~=nil or
   FindUrl("autodesk%.com")~=nil) then
  hc_action = ""
 end

который Блокирует все, кроме определенных сайтов для определенных пользователей!  а мне нужно чтоб он не блокировал ВСЕХ, а блокировал тока "Sergey" на все сайты  кроме (FindUrl("mail%.ru")~=nil or
FindUrl("autodesk%.com")~=nil) then, а у всех остальных все работало как обычно ! заранее благодарю !
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #204 : 15 Апрель 2009, 14:23:09 »

мне нужно чтоб он не блокировал ВСЕХ, а блокировал тока "Sergey" на все сайты  кроме (FindUrl("mail%.ru")~=nil or
FindUrl("autodesk%.com")~=nil) then, а у всех остальных все работало как обычно !

Скрипт будет таким:

Код:
-- Скрипт для HandyCache v1.00 RC2 (1.0.0.103)

function FindUrl(s)
  x,_ = string.find(hc_url, s)
  return x
end

function main()

 if hc_user_name == "Sergey" and
  (FindUrl("mail%.ru")==nil and
   FindUrl("autodesk%.com")==nil) then
  hc_action = "stop"
 end

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

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

Сообщений: 2


« Ответ #205 : 15 Апрель 2009, 20:25:08 »

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

В 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


Можно ли как то дописать скрип чтоб кроме запрета на экран броузера выдавадлось еще и сообщение что мол доступ такомоту пользователь в даному сайту запрещен.
Если можно то подскажите как это можно сделать!
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #206 : 19 Апрель 2009, 19:00:24 »

Можно ли как то дописать скрип чтоб кроме запрета на экран броузера выдавадлось еще и сообщение что мол доступ такомоту пользователь в даному сайту запрещен.

Можно просто прописать свой файл в поле "Показывать файл" в Черном списке, тогда пользователь будет получать твое сообщение. Либо формировать ответ прямо скриптом. Например так:

Код:
-- Скрипт для HandyCache v1.00 RC2 (1.0.0.103)
function main()
 if hc_user_name ~= 'Boss' then
  hc_answer_header=
  'HTTP/1.1 430 OK\13\10'..
  'Server: Lua-script\13\10'..
  'Content-Type: text/html\13\10'..
  'Connection: close\13\10\13\10'

  hc_answer_body= 'file=d:\\blocked.htm'
 end
end

В файл d:\blocked.htm пишешь любой свой текст в формате HTML.
Сообщить модератору   Записан
doctor_ORZ
Новичок
*

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

Сообщений: 25


« Ответ #207 : 20 Апрель 2009, 14:55:46 »

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


Чё-то не работает Грустный
Там имя компа должно быть или имя юзера? Прописал и то и другое - не работает. Сайты должны быть внесены в черный список я полагаю? У меня внесены.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #208 : 26 Апрель 2009, 22:56:17 »

Там имя компа должно быть или имя юзера?

Имя юзера, как в списке "Доступ".

Цитировать
Прописал и то и другое - не работает.

У меня все работало!

Цитировать
Сайты должны быть внесены в черный список я полагаю?

Неправильно полагаешь. Тогда они будут блокироваться для всех пользователей, а тебе надо выборочно для некоторых, поэтому блокировкой должен заниматься скрипт _block_for_users.lua, а не "Черный список".

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

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

Сообщений: 25


« Ответ #209 : 29 Апрель 2009, 11:06:05 »

Нашел причину - двойные кавычки (") заменены были на одиночные ('). Потому и не работало. Спасибо. Но есть ещё вопрос - синтаксис добавления юзеров какой? Ну, что бы не только "Boss", но ещё и других добавить?
Опс... нашел, разобрался. Сорри.
« Последнее редактирование: 29 Апрель 2009, 11:40:53 от doctor_ORZ » Сообщить модератору   Записан
olDjeka
Постоялец
***

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

Сообщений: 117


« Ответ #210 : 01 Май 2009, 03:47:15 »

Взамен скриптов "save_no_update_403_and_404.lua" и "save_404.lua" собрал скрипт
"Сохранять ответы 403 и 404, если их нет в кэше".
Буду благодарен если проверите и поможете оптимизировать.

Код:
function GetAnswerCode(s)
  _,_,x = string.find(s, "HTTP/1%.%d +(%d+)")
  if x==nil then return -1 else return tonumber(x) end
end

function main()
 -- выясняем код ответа из заголовка
  answ_code = GetAnswerCode(hc_header)
 -- если код ответа 403 или 404
  if answ_code==403 or answ_code==404 then
   -- и если его нет в кэше
    if hc_cache_file_size<0 then
     -- то сохранить ответ
       hc_action = "save" end
  end
end
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #211 : 01 Май 2009, 14:30:15 »

Нашел причину - двойные кавычки (") заменены были на одиночные (').

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

Буду благодарен если проверите и поможете оптимизировать.

Проверить и отладить скрипт ты можешь сам в LuaTest.exe. А что оптимизировать в 10 строках кода?
Сообщить модератору   Записан
avk02
Новичок
*

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

Сообщений: 5


« Ответ #212 : 02 Май 2009, 15:33:23 »

1. Я делаю ежедневные бэкапы кэша HC (только файлы, добавленные за этот день, запуск в автозагрузке, либо по таймеру)
Первоначально с помощью самописной утилитки создавал список файлов (перелопатив весь кэш) и передавал его архиватору (архив при этом создаётся быстро), затем стал использовать WinRar - там есть ключи для выбора даты-времени добавляемых файлов ("до" и "после").
Но по времени это примерно одинаково. И довольно прилично нагружается процессор при запуске ОС.
Хотелось бы, чтобы HC сам создавал список файлов, добавленных в кэш за определённый день.
Пробовал для этого lua, но он похоже не имеет выхода "вовне".
По крайней мере элементарно создать файл и записать туда строку не получается:
local aFile = assert( io.open( dateToday, 'a+' ) )
aFile:write( hc_answer_body )
aFile:close()

Буду благодарен за какие-либо идеи по этому поводу.

Ещё чуток.
2. LuaTest не работает с кэшем?  У меня версия от 26/12/2007.
3. Где доступен hccmd?
4. Можно ли как-то посмотреть заголовки после работы lua-скриптов (с server=lua) - HC их наружу не отдаёт, только с server=hc. В логе тоже нет.

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

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

Сообщений: 1



« Ответ #213 : 06 Май 2009, 17:22:09 »

Добрый день.
В сетке нужно заблокировать скачивание файлов (#\.(avi|exe|flv|iso|mov|mp3|mp4|mpg|mpeg|msi|ogg|wma|wmv)(\?|$) ) для группы людей, кроме одного или несколько человек, подскажите как правильно это реализовать в скриптах?
Сообщить модератору   Записан
Влад22
Пользователь
**

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

Сообщений: 97


« Ответ #214 : 07 Май 2009, 03:46:55 »

Буду благодарен за какие-либо идеи по этому поводу.
Проблема давно уже решена. Для этого можно использовать 2 набора кешей. Первый (большой, для чтения) - это основной кеш. А второй - это новые файлы. Делаем бекап второго и переносим его в первый. Операция занимает несколько секунд )
Сообщить модератору   Записан
Walder
Новичок
*

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

Сообщений: 17


« Ответ #215 : 12 Май 2009, 08:13:54 »

Зравствуйте 

Такой вопрос - есть скипт-function main()

 if hc_user_name == 'Mishustik' and hc_user_from_internet > 10485760 then
  hc_action = 'stop'
 end

Можно ли сделать так чтоб когда закончился лимит он блокировал все кроме Аськи например! Спасибо !
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #216 : 12 Май 2009, 17:30:40 »

Можно ли сделать так чтоб когда закончился лимит он блокировал все кроме Аськи например!

Впиши исключения в файл luaR.lst перед вызовом твоего скрипта.



Тема закрыта в связи с переходом на систему расширений на основе скриптов на языке Lua. Новая тема по расширениям находится здесь...
« Последнее редактирование: 09 Август 2010, 20:25:11 от DenZzz » Сообщить модератору   Записан
Страниц: 1 ... 9 10 [11]   Вверх
  Отправить эту тему    Печать  

 
Перейти в: