+  HandyCache форум
|-+  Главная категория» Общие вопросы» Расширения на языке Lua в HandyCache
Имя пользователя:
Пароль:
Страниц: 1 ... 14 15 [16] 17 18 ... 29   Вниз
  Отправить эту тему    Печать  
Автор Тема: Расширения на языке Lua в HandyCache  (Прочитано 438696 раз)
0 Пользователей и 1 Гость смотрят эту тему.
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #300 : 30 августа 2011, 11:40:08 »

Цитировать
В событии 1-минутного таймера не определена переменная hc.event
Спасибо, поправлю.
Цитировать
Как сделать так: расширение в ходе инициализации или в ходе работы спрашивает пользователя, нужна ли ему предоставляемая им функциональность.
Это вопрос не по НС, а по lua. Есть разные библиотеки для реализации пользовательского интерфейса для lua, какой пользоваться выбирайте сами. В файле HCExtensions.html есть ссылки на несколько примеров таких библиотек.
Цитировать
Если да, то расширение работает дальше. Если нет то оно отключается на весь дальнейший сеанс работы НС. Как  это отключение осуществить, чтоб отключение было не псевдо а реальным, в том числе вызвался бы destroy?
Можно завести в расширении переменную, от состояния которой будет зависеть выполнение функций расширением.
Функцию - обработчик события destroy расширение может вызвать в любой момент.
Цитировать
Инициализация еще не завершилась, ждем ответ пользователя, а в расширении уже работают другие обработчики. По моему надо сделать чтобы все обработчики могли вызываться только после окончания инициализации.
Вы это проверяли? В крайней версии не должны вызываться обработчики событий до конца инициализации.
Сообщить модератору   Записан
Byfuglien
Новичок
*

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

Сообщений: 46


« Ответ #301 : 30 августа 2011, 19:33:47 »

Цитировать
Можно завести в расширении переменную, от состояния которой будет зависеть выполнение функций расширением.
Функцию - обработчик события destroy расширение может вызвать в любой момент.
Это как раз и имел в виду под "псевдо" отключением. На самом деле расширение не "разрегистрируется", а продолжает получать управление с каждым запросом
Цитировать
Вы это проверяли? В крайней версии не должны вызываться обработчики событий до конца инициализации.
Проверялось, вызывается RequestHeaderReceived. Другие не проверял, не исключено тоже вызываются
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #302 : 31 августа 2011, 12:39:07 »

Цитировать
Это как раз и имел в виду под "псевдо" отключением. На самом деле расширение не "разрегистрируется", а продолжает получать управление с каждым запросом
"Разрегистрировать" расширение можно функцией hc.enable_extension(), но тогда оно не запустится при следующем старте.
Количество вызываемых обработчиков можно радикально уменьшить с помощью переменной hc.extensions_on.
Цитировать
Проверялось, вызывается RequestHeaderReceived. Другие не проверял, не исключено тоже вызываются
А точно обработчик Init у Вас висит (не завершает выполнение)? Я предпринимал меры для того, чтобы обработчики в такой ситуации не вызывались. Надо будет проверить, возможно что-то и пролазит.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #303 : 31 августа 2011, 13:00:06 »

Цитировать
Проверялось, вызывается RequestHeaderReceived. Другие не проверял, не исключено тоже вызываются
А точно обработчик Init у Вас висит (не завершает выполнение)? Я предпринимал меры для того, чтобы обработчики в такой ситуации не вызывались. Надо будет проверить, возможно что-то и пролазит.

Подтверждаю. Во время работы Init расширение продолжает обрабатывать другие события.
Проверить легко: если сразу после загрузки обновления СМ пока идет переинициализация попытаться открыть какие-нибудь страницы, то получишь испорченные куски HTML кода от обработчика тела СМ.
Сообщить модератору   Записан
Byfuglien
Новичок
*

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

Сообщений: 46


« Ответ #304 : 01 сентября 2011, 09:23:18 »

Цитировать
"Разрегистрировать" расширение можно функцией hc.enable_extension(), но тогда оно не запустится при следующем старте.
Спасибо буду пробовать
Цитировать
А точно обработчик Init у Вас висит (не завершает выполнение)?
Точно, он ждет нажатия кнопки пользователем
Сообщить модератору   Записан
ViKtOrV
Пользователь
**

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

Сообщений: 85


« Ответ #305 : 13 сентября 2011, 21:45:01 »

И снова о старом.
Использую расширение
Цитировать
Код:--[[ <HCExtension>
@name BlackListDisabler
@author mai62
@version 0.01
@description Отключает Черный список для заданных пользователей
@event RequestHeaderReceived/request
</HCExtension> ]]

function request()
if hc.user_name == 'user1' then
 hc.white_mask="Ч"
 end
end

Работает хорошо, но всё же хотелось бы делать доступными не все сайты. Как будет выглядеть это расширение с блокировкой, например, всех социальных сетей?
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #306 : 13 сентября 2011, 22:44:12 »

Измените расширение так
Код:
--[[ <HCExtension>
@name BlackListDisabler
@author mai62
@version 0.01
@description Отключает Черный список для заданных пользователей
@event RequestHeaderReceived/request
</HCExtension> ]]

function request()
if hc.user_name == 'user1'
 and not re.find(hc.url, [[vcontacte\.ru|twitter\.ru]], 0) then
 hc.white_mask="Ч"
 end
end
Список запрещенных сайтов расширяйте через символ |
Сообщить модератору   Записан
ViKtOrV
Пользователь
**

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

Сообщений: 85


« Ответ #307 : 14 сентября 2011, 00:00:56 »

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

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

Сообщений: 46


« Ответ #308 : 22 октября 2011, 23:41:40 »

Как с помощью handycache сделать такое:
Я вписываю слова или выражения в текстовый файл построчно и каждое встреченное слово на сайтах выделяется цветом.

Очень прошу помочь с этой задачкой
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #309 : 23 октября 2011, 00:53:35 »

Пожалуй, только с помощью СМ...
Сообщить модератору   Записан
Enver
Новичок
*

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

Сообщений: 46


« Ответ #310 : 23 октября 2011, 07:57:43 »

Хорошо, запощу в его топике. Здесь мой пост просьба удалить
Сообщить модератору   Записан
HKLM
Старожил
****

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

Сообщений: 305


« Ответ #311 : 26 декабря 2011, 10:06:55 »

Для чего нужно расширение My 407-answer? Из описания не очень понятно: "Заменяет запрос в ответе 407".
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #312 : 26 декабря 2011, 14:05:03 »

Ответ 407 выдается когда нужно запросить пароль у пользователя. Это расширение позволяет заменить текст, который выводится при запросе пароля.
Сообщить модератору   Записан
Zoynels
Новичок
*

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

Сообщений: 42


« Ответ #313 : 25 января 2012, 17:13:07 »

Подскажите пожайлуста, как можно определить кодировку принимаемого текста...
И вот мой скрипт "тайм-сервера". он сохраняет одновременно в два места, при чём второй файл сохраняется с датой, таким образом не потеряется затёртая информация... Может кому и пригодится...

* history.lua (8.39 Кб - загружено 39 раз.)
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #314 : 25 января 2012, 18:48:06 »

Ищите в заголовке ответа строку типа
Content-Type: text/html; charset=utf-8
Сообщить модератору   Записан
Zoynels
Новичок
*

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

Сообщений: 42


« Ответ #315 : 25 января 2012, 20:07:44 »

Так и думал, а другого способа нет? Просто не факт что кодировка записывается каждый раз, или всё таки всегда?
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #316 : 25 января 2012, 21:22:26 »

Еще в коде страницы может быть строка вроде такой
<META content="text/html; charset=windows-1251" http-equiv=Content-Type>

Наличие и правильность этой информации, конечно, никто не гарантирует. Все зависит от добросовестности администратора сервера.
Сообщить модератору   Записан
Zoynels
Новичок
*

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

Сообщений: 42


« Ответ #317 : 08 февраля 2012, 13:17:53 »

Ещё вопросик. Может у кого-то уже имеется скрипт по алгоритму написанному в этой теме: http://handycache.ru/component/option,com_smf/Itemid,10/topic,72.msg508/#msg508 (Алгоритм работы опции "Индексные файлы"). Если не жалко то выложите пожайлуста.
Сообщить модератору   Записан
ViKtOrV
Пользователь
**

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

Сообщений: 85


« Ответ #318 : 12 февраля 2012, 20:38:36 »

Почему-то не работает расширение BlackListDisabler от mai62 приведенное в ответе №306  стр.16 (http://handycache.ru/component/option,com_smf/Itemid,10/topic,1120.300/). НС  1.0 RC3 (1.0.0.377)
Буду признателен за рабочую версию.
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #319 : 12 февраля 2012, 20:57:18 »

У меня оно работает. Или Вы его изменили и в таком виде оно не работает, или вы поставили неправильный диагноз.
Сообщить модератору   Записан
Страниц: 1 ... 14 15 [16] 17 18 ... 29   Вверх
  Отправить эту тему    Печать  

 
Перейти в: