Anymore
|
|
« Ответ #500 : 11 февраля 2013, 15:00:14 » |
|
hc.url меняется во время загрузки страницы
Докажите это, пожалуйста.
|
|
|
|
|
GregoryPek
Новичок
Репутация: +2/-0
Offline
Сообщений: 48
|
|
« Ответ #501 : 11 февраля 2013, 16:01:42 » |
|
Докажите это, пожалуйста.
сузьте пожалуйста задачу, доказать что : 1) hc.url меняется во время загрузки страницы или 2) "window.location.href" нет Добавлено: 11 Февраль 2013, 15:05:00
Докажите это, пожалуйста. вот вроде: --[[ <HCExtension> @name TEST @event RequestHeaderReceived/Request @rule handycache.ru/forum/ </HCExtension> ]]
function Request() hc.put_to_log('URL_TEST - '..hc.url) end
лог приложил
|
|
|
|
|
Anymore
|
|
« Ответ #502 : 11 февраля 2013, 16:22:03 » |
|
Работает, согласно документации. Возможно, вам нужен рефер?
|
|
|
|
|
GregoryPek
Новичок
Репутация: +2/-0
Offline
Сообщений: 48
|
|
« Ответ #503 : 11 февраля 2013, 16:27:15 » |
|
Работает, согласно документации. я вот не понял, я доказал вам или нет, меняется или нет? Возможно, вам нужен рефер?
рефер тоже не то, а вот что нибудь типа "window.location.href", чтобы не менялось всю загрузку страницы
|
|
|
|
|
DenZzz
|
|
« Ответ #504 : 11 февраля 2013, 22:48:22 » |
|
рефер тоже не то, а вот что нибудь типа "window.location.href", чтобы не менялось всю загрузку страницы
HC не может точно знать, какая страница сформировала запрос. В расширении можно использовать переменную hc.monitor_parent_url, но она берется из реферера, если он есть.
|
|
|
|
|
GregoryPek
Новичок
Репутация: +2/-0
Offline
Сообщений: 48
|
|
« Ответ #505 : 12 февраля 2013, 07:18:40 » |
|
HC не может точно знать, какая страница сформировала запрос.
Ясно, жаль, благодарю.
|
|
|
|
|
GregoryPek
Новичок
Репутация: +2/-0
Offline
Сообщений: 48
|
|
« Ответ #506 : 12 февраля 2013, 14:57:32 » |
|
Подскажите товарищи, а в адресной строке браузера можно менять URL на URL1 который получился после изменений через hc.request_header? т.е. к примеру в адресной строке было : http://1.jpg , через request_header я поменял на http://2.jpg , все это загрузилось в браузер, а как эти изменения отразить в адресной строке браузера? через answer_header не получается. Выложите пожалуйста образец кому не лень.
|
|
|
|
|
DenZzz
|
|
« Ответ #507 : 12 февраля 2013, 17:05:32 » |
|
а как эти изменения отразить в адресной строке браузера?
Через переадресацию с помощью ответа "302 Found". Больше никак браузер не узнает, что URL изменился.
|
|
|
|
|
GregoryPek
Новичок
Репутация: +2/-0
Offline
Сообщений: 48
|
|
« Ответ #508 : 13 февраля 2013, 10:04:47 » |
|
DenZzz понял, благодарю.
Вопрос по мере изучения Lua: я так понял что ".lua" понимает только в кодировке ANSI (я сужу по Notepad++) или не так?
|
|
|
|
|
DenZzz
|
|
« Ответ #509 : 13 февраля 2013, 14:16:26 » |
|
В каком смысле "понимает"?
Библиотека функций языка Lua написана на языке С (точнее на подмножестве ANSI C и C++). Расширение на Lua может обрабатывать тексты в любых кодировках. Например, расширение Content Master работает с HTML в кодировках windows-1251 (ANSI), utf-8 и koi8-r.
|
|
|
|
|
GregoryPek
Новичок
Репутация: +2/-0
Offline
Сообщений: 48
|
|
« Ответ #510 : 13 февраля 2013, 20:54:35 » |
|
В каком смысле "понимает"?
Библиотека функций языка Lua написана на языке С (точнее на подмножестве ANSI C и C++). Расширение на Lua может обрабатывать тексты в любых кодировках. Например, расширение Content Master работает с HTML в кодировках windows-1251 (ANSI), utf-8 и koi8-r.
я имел ввиду сам текст программы, текстовый файл
|
|
|
|
|
wenny
Новичок
Репутация: +0/-0
Offline
Сообщений: 1
|
|
« Ответ #511 : 27 февраля 2013, 16:41:42 » |
|
Доброго времени суток. Можно ли посредством lua из дополнения получить содержимое файла, находящегося на винте? Спасибо
|
|
|
|
|
DenZzz
|
|
« Ответ #512 : 28 февраля 2013, 02:20:46 » |
|
Можно.
|
|
|
|
|
ThermIt
Новичок
Репутация: +0/-0
Offline
Сообщений: 3
|
|
« Ответ #513 : 26 марта 2013, 16:10:19 » |
|
Искал, не нашёл, может кто подскажет, как используя Lua разорвать соединение ICQ в заданное время? Или любое другое соединение.
|
|
|
|
|
mai62
|
|
« Ответ #514 : 26 марта 2013, 23:15:21 » |
|
Так hc.client_disconnect(ind)
ind - индекс соединения.
Индекс текущего соединения (соединения, для которого вызван текущий обработчик события) можно прочитать из переменной hc.connection_index.
Получается такая схема: в обработчике RequestHeaderReceived отловить соединение с ICQ и сохранить где-то индекс соединения. Когда наступит время, взять сохраненный индекс и по нему разорвать нужное соединение.
|
|
|
|
|
ThermIt
Новичок
Репутация: +0/-0
Offline
Сообщений: 3
|
|
« Ответ #515 : 27 марта 2013, 09:32:00 » |
|
О, спасибо. Стал копать в эту сторону и наткнулся на hc.user_disconnect, которого для моих нужд за глаза хватит. Осталось придумать как запустить код в определённое время и понять как это будет себя вести при включении-выключении дополнения. ps: получилось что-то типа такого (формат дурной, потому что форум в нормальном формате не пропускает): AnswerHeaderReceived/Answer Timer1m/Timer
function Answer() time = os.date("*t") if time.hour >= 21 or time.hour < 7 then if hc.action=="" or hc.action==nil or hc.action=="save" then hc.action = "stop" end end end
function Timer() time = os.date("*t") if time.hour >= 21 or time.hour < 7 then hc.user_disconnect('user1'); end end
pps: как получить список имён пользователей? Нашёл только таблицу статистики, но не понимаю как из неё получить имена.
|
|
|
|
|
mai62
|
|
« Ответ #516 : 27 марта 2013, 12:00:35 » |
|
Так --[[ <HCExtension> @name Test_users_stat @event Options </HCExtension> ]]
function Options() local users = hc.get_users_stat('#all') or {} local s='' for user,v in pairs(users) do s= s..user..'\r\n' end hc.put_to_log(s) end
|
|
|
|
|
mirny
Пользователь
Репутация: +11/-1
Offline
Сообщений: 84
|
|
« Ответ #517 : 28 марта 2013, 15:40:51 » |
|
mai62, зачем вы так длинно пишете table.concat(users, '\r\n')? function Options() local users = hc.get_users_stat('#all') or {} hc.put_to_log(users:concat'\r\n') end [/autism] upd: А, понял. Не посмотрел что там словарь.
|
|
|
|
|
ThermIt
Новичок
Репутация: +0/-0
Offline
Сообщений: 3
|
|
« Ответ #518 : 28 марта 2013, 20:28:49 » |
|
Да не, всё правильно и работает.
|
|
|
|
|
Andrey_04.05
Новичок
Репутация: +3/-0
Offline
Сообщений: 18
|
|
« Ответ #519 : 16 августа 2013, 15:26:59 » |
|
Выдалось немного времени, попробовал накидать расширение для сбора статистики обращения к файлам. С луа абсолютно незнаком, пробовал делать по аналогии с "IgnoreOnceVisitedSites" от Inversion. Первый блин - по моей задумке в файл пишется имя файла целиком, вместе с путем. В получившемся варианте пишутся все время только пустые строки. Где-то не попал ))) И сразу второй вопрос - следом за файлом в эту же строку хочу писать дату и время обращения. Кто подскажет? Результат моего "труда": --[[ <HCEXTENSION> @name Statistika @author Andrey_04.05@mail.ru@version 0.1 @description Собирает информацию об обращениях к файлам в текстовом виде для вычисления "рейтинга". @event BeforeRequestHeaderSend/on_BeforeRequestHeaderSend </HCEXTENSION> ]] g_name = re.find(hc.script_name, [[([^\\]+)\.lua$]], 1) g_extensionRoot = re.replace(hc.script_name, g_name..[[\.lua$]], '') function on_BeforeRequestHeaderSend() hc.monitor_string = hc.monitor_string ..'Test' f = io.open(g_extensionRoot..g_name..'DB.txt', 'a') if (f) then f:write(hc.cache_file_name..'\n') f:close() else hc.put_to_log('Save failed') hc.monitor_string = hc.monitor_string ..' Save failed' end end
|
|
|
|
|
|