Михаил
|
|
« Ответ #400 : 23 июля 2012, 23:24:51 » |
|
Почему так? Условие надо писать внутри обработчика: function request() if keysPressed('VK_CONTROL VK_CAPITAL') then hc.action="only_from_cache" hc.monitor_string = hc.monitor_string..'R-Offline' end end
|
|
|
|
|
HKLM
|
|
« Ответ #401 : 24 июля 2012, 00:40:28 » |
|
Написал функцию в dll для запроса состояния клавиши. Пример использования в архиве. Добавлено: 23 Июль 2012, 22:57:48
dll нужно положить в папку с НС и LuaTest, если он используется. Добавлено: 23 Июль 2012, 22:58:42
Исходники dll на случай, если кто-то захочет свою dll написать.
Еще бы примеров реального использования. Кажется все варианты перепробовал. Как правильно собрать? --[[ <HCExtension> @name 0 @author mai62 @version 0.01 @description 0 @rule ^http:// @event Init/init @event RequestHeaderReceived/request </HCExtension> ]]
function init() if x=1 then Caps Lock (20) is On x=keyboard.GetKeyState(20) hc.put_to_log(x) end
function request() hc.action="only_from_cache" hc.monitor_string = hc.monitor_string..'R-Offline' end end
|
|
|
|
|
mai62
|
|
« Ответ #402 : 24 июля 2012, 00:50:44 » |
|
Вы потеряли строку require 'keyboard'
Зачем-то раскомментировали строку комментария. В lua все, что находится после символов --, является комментарием.
|
|
|
|
|
HKLM
|
|
« Ответ #403 : 24 июля 2012, 08:02:15 » |
|
Вы потеряли строку require 'keyboard' С ней тоже не работает. Зачем-то раскомментировали строку комментария. Это был только как вариант, поскольку все равно не работает.
|
|
|
|
|
HKLM
|
|
« Ответ #404 : 07 августа 2012, 14:42:20 » |
|
при включении Test.lua выдает в лог 1 или 0. Это нормально? А если я пытаюсь заменить hc.put_to_log(x) на другие строчки, то получаю разные ошибки. require 'keyboard'
--[[ <HCExtension> @name test @author mai62 @version 0.01 @description 0 @rule ^http:// @event Init/init @event RequestHeaderReceived/request </HCExtension> ]]
-- VK_CAPITAL = 20 -- VK_NUMLOCK = 144 -- VK_SCROLL = 145
function init() -- If x=1 then Caps Lock (20) is On x=keyboard.GetKeyState(20) end function request() if x=1 then hc.action="only_from_cache" hc.monitor_string = hc.monitor_string..'R-Offline' end end
Это выдает ошибку в лог 07.08.12 18:36:06,601 # test "init" ERROR: [string "require 'keyboard'..."]:23: 'then' expected near '=' Если в строчке "if x=1 then" делаю "if x==1 then" то ничего нет в логе, но и не работает.
|
|
|
|
|
mai62
|
|
« Ответ #405 : 07 августа 2012, 18:50:21 » |
|
при включении Test.lua выдает в лог 1 или 0. Это нормально? Я же писал в тестовом примере -- If x=1 then Caps Lock (20) is On По русски это значит: если x = 1, то Caps Lock включен. Это комментарий, не надо убирать -- в начале строки. Эта строка предназначена только для пояснения работы, это не часть программы.
|
|
|
|
|
HKLM
|
|
« Ответ #406 : 07 августа 2012, 19:13:14 » |
|
Про комментарий я всегда знал, но тут много примеров расширений где используется похожая схема типа function answer() x= GetContentLength(hc.answer_header) if x>999 then блаблабла end end
А как правильно совместить эту dll с таким функционалом? function request() hc.action="only_from_cache" hc.monitor_string = hc.monitor_string..'R-Offline' end
|
|
|
|
|
mai62
|
|
« Ответ #407 : 08 августа 2012, 00:37:59 » |
|
function request() require 'keyboard' x=keyboard.GetKeyState(20) if x==1 then hc.action="only_from_cache" hc.monitor_string = hc.monitor_string..'R-Offline' end end
|
|
|
|
|
HKLM
|
|
« Ответ #408 : 09 августа 2012, 00:07:53 » |
|
Спасибо! Тут еще какой-то конфликт, но разобрался уже. Если нажата клавиша врем. отключения черного списка, некоторые запросы проходят в инет. Те, где срабатывает расширение R-ext. В R-ext нужно либо снять галку слежение за черным и белым списками, либо назначить клавишу врем. отключения как в черном. (у меня win+shift)
|
|
|
|
|
HKLM
|
|
« Ответ #409 : 09 августа 2012, 20:48:49 » |
|
Все равно остались ложные не срабатывания. Например пропускает, когда срабатывает одновременно R-Offline R-ext и Б.18. В Б.18 стоит галка Ч.Список. Можно это как то поправить?
|
|
|
|
|
mai62
|
|
« Ответ #410 : 09 августа 2012, 22:35:39 » |
|
Добавьте в свое расширение вывод в лог отладочной информации hc.put_to_log('Тут напишите что-то полезное, можно вывести значение какой-то переменной, например'..hc.url) Сделайте это таким образом, что бы эта информация помогла Вам понять почему расширение работает именно так, а не иначе.
|
|
|
|
|
ponand
Новичок
Репутация: +3/-0
Offline
Сообщений: 15
|
|
« Ответ #411 : 27 августа 2012, 09:08:08 » |
|
Подскажите пожалуста есть ли пример расширение для замены загружаемой из интернета страницы?
необходимо в место ссылки вида (.*showtopic=\d+)&view=getnewpost загружать страницу \1&st=0 или просто \1
|
|
|
|
|
mai62
|
|
« Ответ #412 : 27 августа 2012, 09:17:53 » |
|
Есть расширение Content Master (по нему есть одельная тема на форуме). Это расширение "на лету" фильтрует содержимое загружаемых страниц на предмет удаления рекламы. Это расширение может также сделать замену одного текста на другой.
|
|
|
|
|
ponand
Новичок
Репутация: +3/-0
Offline
Сообщений: 15
|
|
« Ответ #413 : 27 августа 2012, 09:26:43 » |
|
Мне нужно заменить саму загружаемую страницу Content Master поможет?
|
|
|
|
|
mirny
Пользователь
Репутация: +11/-1
Offline
Сообщений: 84
|
|
« Ответ #414 : 01 октября 2012, 17:20:23 » |
|
Захотел узнать про list comprehensions в Луа — Гугл вывел на их аналог КофеСкрипта. Кто-нибудь пользовался? Юзабельно? Есть смысл? Есть толк?
|
|
|
|
|
olDjeka
Постоялец
Репутация: +6/-0
Offline
Сообщений: 117
|
|
« Ответ #415 : 10 октября 2012, 00:08:16 » |
|
Здравствуйте! Помогите пожалуйста разобраться с расширением. Есть два пользователя, и они поочерёдно могут использовать канал без ограничений. При одновременном использовании, одному из них необходимо ограничить скорость. Пытался наваять , но не работает, и не знаю как проверить его работу не "на глаз". --[[ <HCExtension> @name Авторегулировка скорости для клиента "Idle" @event BeforeRequestHeaderSend/Request @event BeforeAnswerHeaderSend/Answer </HCExtension> ]]
function Request() if hc.user_name ~= 'Idle' then hc.set_user_speed('Idle', 2048) end end
function Answer() local t = hc.get_users_stat('#active') if t and t[hc.user_name] ~= 'Idle' then hc.set_user_speed('Idle', 0) end end
|
|
|
|
|
Михаил
|
|
« Ответ #416 : 10 октября 2012, 01:59:48 » |
|
Может, как-нибудь так: --[[ <HCExtension> @name Авторегулировка скорости для клиента "Idle" @event Timer1s </HCExtension> ]]
function Timer1s() local t = hc.get_users_stat('#active') if not t or not t['Idle'] then return end if next(t)~='Idle' or next(t, 'Idle') then if t['Idle'].speed_limit==0 then hc.set_user_speed('Idle', 2048) end elseif t['Idle'].speed_limit~=0 then hc.set_user_speed('Idle', 0) end end
|
|
|
|
|
olDjeka
Постоялец
Репутация: +6/-0
Offline
Сообщений: 117
|
|
« Ответ #417 : 10 октября 2012, 02:11:42 » |
|
Спасибо, попробую. Но хотелось бы без Timer1s - система и так еле ползает.
|
|
|
|
|
Михаил
|
|
« Ответ #418 : 10 октября 2012, 02:35:13 » |
|
Но хотелось бы без Timer1s Тогда Вам скорей всего придется пройти тернистый путь синхронизации потоков. Если даже это удастся сделать, не берусь сказать, сколько ресурсов будет поедать такая реализация. Добавлено: 10 Октябрь 2012, 02:27:51
И работать она не будет, как я понимаю, при использовании пользователем не-HTTP протоколов (HTTPS, SOCKS). Правада, в предложенном мной варианте один "подводный камень" тоже вижу.
|
|
|
|
|
olDjeka
Постоялец
Репутация: +6/-0
Offline
Сообщений: 117
|
|
« Ответ #419 : 10 октября 2012, 19:12:46 » |
|
И работать она не будет, как я понимаю, при использовании пользователем не-HTTP протоколов (HTTPS, SOCKS).
Правда, в предложенном мной варианте один "подводный камень" тоже вижу.
Действительно с этими протоколами не работает, а для меня это критично. Но Timer1s оказался совсем не тяжёлым, и не плохо работает такой вариант: --[[ <HCExtension> @name Авторегулировка скорости для клиента "Idle" @event Timer1s </HCExtension> ]]
function Timer1s() local t = hc.get_users_stat('#active') if not t['local'] then hc.set_user_speed('Idle', 0) else hc.set_user_speed('Idle', 2048) end end
Ещё раз спасибо! И хотелось бы узнать что это за "подводный камень", и есть ли он в этом варианте? Добавлено: 10 Октябрь 2012, 19:31:51Заметил, что иногда срабатывает с большыми задержками Попробую ещё покопаться, но и это лучше чем ничего.
|
|
|
|
|
|