Скрипты в HandyCache RC1 |
Автор Rick | |
30.12.2007 г. | |
Поддержка скриптового языка Lua в HandyCache RC1Добавлена поддержка скриптового языка для обработки заголовков ответов.В HandyCache RC1 c помощью скриптов можно обрабатывать заголовки ответов удаленного сервера на запросы HC и выбирать одно из действий:
Чтобы опробовать работу скриптов, необходимо скачать zip-архив и распаковать его в папку НС. На данный момент скрипты в HandyCache могут использоваться для обработки ответов сервера. Для начала использования скриптов в HandyCache необходимо:
В списке серверов-посредников может быть несколько строк с файлами-списками для скриптов. В файле lua.lst должны быть строки вида:rule <script=lua\scriptname.lua> здесь rule - правило, при его выполнении будет работать скрипт из файла lua\scriptname.lua. Пример файла-списка:drweb.com <script=lua\ex1.lua> lostfilm.ru <script=lua\ex2.lua> micex.ru <script=lua\ex3.lua> pragma.ru <script=lua\ex2.lua> !otc-stock.rbc.ru/targets/graph.ser? rbc.ru <script=lua\ex1.lua> rbcdaily.ru <script=lua\ex3.lua> rin.ru <script=lua\ex3.lua> <new_block> #update.*\.drweb\.com <script=lua\ex1.lua> finam.ru <script=lua\ex3.lua> !www.am.troika.ru/graph/ <script=lua\ex2.lua> www.am.troika.ru <script=lua\ex1.lua> www.troika.ru <script=lua\ex3.lua> <new_block> narod.ru <script=lua\ex1.lua> citforum.ru <script=lua\ex1.lua>Все скрипты, соответсвующие сработавшим правилам, будут запущены НС в том порядке, в котором они расположены в файле-списке. При выполнении скрипта HC всегда ищет и запускает функцию main. Скрипт может использовать предопределенные глобальные переменные:
если скрипт изменяет заголовок, то он помещает результат в эту же переменную - в этом случае он должен присвоить переменной hc_header_replace значение true; Пример скрипта находится в файле first.lua. Если запускается несколько скриптов подряд, то очередному скрипту передаются глобальные переменные в том виде, в каком они остались после выполнения предыдущего скрипта. После выполнения последнего скрипта НС выполняет действие, заданное в переменной hc_action. Информацию о языке Lua можно найти, например, здесь: |