+  HandyCache форум
|-+  Главная категория» Общие вопросы» Расширения на языке Lua в HandyCache
Имя пользователя:
Пароль:
Страниц: 1 ... 21 22 [23] 24 25 ... 29   Вниз
  Отправить эту тему    Печать  
Автор Тема: Расширения на языке Lua в HandyCache  (Прочитано 438265 раз)
0 Пользователей и 1 Гость смотрят эту тему.
olDjeka
Постоялец
***

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

Сообщений: 117


« Ответ #440 : 12 ноября 2012, 16:54:55 »

Не учёл, что на страницах могут быть зависимые ссылки (типа href="//mail.google.com/favicon.ico" и подобные), а также как теперь понимаю - воплотить задуманное таким способом невозможно.

Цитировать
Как узнали, что не меняет?
Адресная строка FF всё равно показывает httр://https..accounts.google.com/Service...
Первоначально расширение и задумывалось для её подмены, но как оказалось (см.выше) это неверный путь.

Цитировать
выведите содержимое hc.answer_header в лог НС
Спасибо за подсказку! Изменил расширение:
Код:
function Answer()
hc.put_to_log('m1='..hc.answer_header)
hc.answer_header = re.replace(hc.answer_header, [[https\.\.]], '')
hc.put_to_log('m2='..hc.answer_header)
end
Результат во вложении.

P.S. Данная проблема не существенна (рабочие, но необычные ссылки в закладках, истории ...) пока сайт не потребует "куки" (предположение), а они сохраняютя не в Host, а в https..Host.

* hcext-log.txt (3.69 Кб - загружено 41 раз.)
« Последнее редактирование: 12 ноября 2012, 17:05:31 от olDjeka » Сообщить модератору   Записан
Влад22
Пользователь
**

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

Сообщений: 97


« Ответ #441 : 27 декабря 2012, 07:37:50 »

Код:
--[[ <HCExtension>
@name         Менять User-Agent в заголовках запросов на свой
@event        RequestHeaderReceived/Request
</HCExtension> ]]

function Request()
hc.request_header = re.replace(hc.request_header, [[^User-Agent: \K[^\r\n]+]], 'My_Agent')
end

Можно ли доработать это расширение таким образом, что бы User-Agent выбирался случайным образом из заранее подготовленного массива User-Agent-ов?
Заранее спасибо
Сообщить модератору   Записан
mirny
Пользователь
**

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

Сообщений: 84


« Ответ #442 : 27 декабря 2012, 07:55:01 »

Можно. Заготовь массив и выбирай из него случайно.

Use math.random([n [, m]), Luke.
Сообщить модератору   Записан
Влад22
Пользователь
**

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

Сообщений: 97


« Ответ #443 : 27 декабря 2012, 08:48:51 »

Можно. Заготовь массив и выбирай из него случайно.

Use math.random([n [, m]), Luke.

Не силён в lua  Грустный
делаю так
Код:
--[[ <HCExtension>
@name         Менять User-Agent случайно заголовках запросов на свой
@event        RequestHeaderReceived/Request
</HCExtension> ]]

-- заготавливаем массив агентов
ua={'My_Agent1','My_Agent2','My_Agent3'}

function init()
  rua=math.random(ua)
end

function Request()
hc.request_header = re.replace(hc.request_header, [[^User-Agent: \K[^\r\n]+]], rua)
end
Получаю пустой агент  Непонимаю
Сообщить модератору   Записан
mirny
Пользователь
**

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

Сообщений: 84


« Ответ #444 : 27 декабря 2012, 09:28:42 »

Должно быть что-то вроде:
Код:
--[[ <HCExtension>
@name         Менять User-Agent случайно заголовках запросов на свой
@event        RequestHeaderReceived/Request
</HCExtension> ]]

-- заготавливаем массив агентов
ua={'My_Agent1','My_Agent2','My_Agent3'}

function Request()
  hc.request_header = re.replace(
    hc.request_header,
    [[^User-Agent: \K[^\r\n]+]],
    ua[math.random(#ua)]
  )
end

Сообщить модератору   Записан
Влад22
Пользователь
**

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

Сообщений: 97


« Ответ #445 : 27 декабря 2012, 10:29:29 »

Спасибо, так работает. Но выдаёт случайный User-Agent при каждом запросе. А хотелось бы чтобы смена User-Agent-а была через заданный интервал времени. Так можно?
Сообщить модератору   Записан
mirny
Пользователь
**

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

Сообщений: 84


« Ответ #446 : 27 декабря 2012, 11:19:44 »

Спасибо, так работает. Но выдаёт случайный User-Agent при каждом запросе. А хотелось бы чтобы смена User-Agent-а была через заданный интервал времени. Так можно?
Можно. Я разрешаю.
Сообщить модератору   Записан
Влад22
Пользователь
**

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

Сообщений: 97


« Ответ #447 : 27 декабря 2012, 19:13:23 »

Можно. Я разрешаю.
Юмор конечно великая сила  Улыбка
Перебрал все похожие расширения, прочитал инструкции... Мне не осилить за пару дней lua, и вряд-ли за пару месяцев тоже )
Попробую конкретизировать проблему:
Нужно что бы юзер-агент менялся единожды при запуске этого расширения.
Похожее решение делал многоуважаемый mai62 в теме http://handycache.ru/component/option,com_smf/Itemid,10/topic,5146.0/
Помогите, please...
Сообщить модератору   Записан
Anymore
Beta tester
*****

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

Сообщений: 339


« Ответ #448 : 27 декабря 2012, 20:15:22 »

тогда так. а зачем тебе это?
Код:
--[[ <HCExtension>
@name         Менять User-Agent случайно заголовках запросов на свой
@event        RequestHeaderReceived/Request
@event        Init/NewFakeUserAgent
</HCExtension> ]]

-- заготавливаем массив агентов
ua={'My_Agent1',
    'My_Agent2',
    'My_Agent3'}

function NewFakeUserAgent()
  hc.set_global('Fake-User-Agent', ua[math.random(#ua)])
end

function Request()
  hc.request_header = re.replace(hc.request_header, [[^User-Agent: \K[^\r\n]+]], hc.get_global('Fake-User-Agent'))
end
Сообщить модератору   Записан
Влад22
Пользователь
**

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

Сообщений: 97


« Ответ #449 : 28 декабря 2012, 07:20:28 »

Anymore, спасибо огромное!  Благодарю Заработало сразу и уже на новой версии HandyCache RC3 1.0.0.408  Отлично!
Сообщить модератору   Записан
mirny
Пользователь
**

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

Сообщений: 84


« Ответ #450 : 30 декабря 2012, 15:29:55 »

Новые версии это хорошо, но вот то, что расширение, которое я пишу потихоньку, работало в 377, а теперь отвалилось, как-то настораживает.
Сообщить модератору   Записан
Anymore
Beta tester
*****

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

Сообщений: 339


« Ответ #451 : 30 декабря 2012, 17:59:09 »

mirny, там lua5.x.dll обновился может в нём дело?
Сообщить модератору   Записан
HKLM
Старожил
****

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

Сообщений: 305


« Ответ #452 : 30 декабря 2012, 18:27:10 »

Новые версии это хорошо, но вот то, что расширение, которое я пишу потихоньку, работало в 377, а теперь отвалилось, как-то настораживает.
Выкладывай, потестим если не жалко Улыбка
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #453 : 30 декабря 2012, 18:46:55 »

Цитировать
mirny, там lua5.x.dll обновился может в нём дело?
Библиотека lua5.1.dll заменена для обеспечения совместимости с новой версией расширения СМ, которая, вероятно, скоро будет доступна для тестирования.
Сообщить модератору   Записан
mirny
Пользователь
**

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

Сообщений: 84


« Ответ #454 : 30 декабря 2012, 19:20:23 »

>mirny, там lua5.x.dll обновился может в нём дело?
Не, это вряд ли. Я ж им не пользуюсь.

Fun fact: Если lua5.x.dll и другие Lua модули поудалять из папки HC, то расширения все равно работают, при условии, что в системе стоит Lua for Windows.

>Выкладывай, потестим если не жалко
Hе жалко.

Там в зависимостях Penlight и LFS, поэтому чтобы оно работало нужно их скачать и скопировать куда-то там, чтобы расширение их видело, но проще установить Lua for Windows и прописать переменные среды:
Код:
LUA_DEV=c:\Lua
LUA_PATH=.\?.lua;.\?\init.lua;%LUA_DEV%\lua\?.lua;%LUA_DEV%\lua\?\init.lua;
LUA_CPATH=.\?.dll;.\?51.dll;%LUA_DEV%\?.dll;%LUA_DEV%\?51.dll;%LUA_DEV%\clibs\?.dll;%LUA_DEV%\clibs\?51.dll;%LUA_DEV%\loadall.dll;%LUA_DEV%\clibs\loadall.dll;
В список переадресации добавить правило:
Код:
#5#~#True#~#(^.+?)--(/)?$#~#http://c.hc/_\1\2#~#False#~#True
Теперь, если в адресной строке браузера к адресу допечатать "--", то оно перенаправит на список файлов в кэше, это пока в качестве заглушки, а в перспективе я допилю нормальный файловый менеджер.

Кого вся эта хрень не запугала — хватай и тести.

http://rghost.net/42626145
Сообщить модератору   Записан
Anymore
Beta tester
*****

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

Сообщений: 339


« Ответ #455 : 03 января 2013, 23:48:26 »

help, как на lua из http://adshow.cmd/http://host/blablabla получить host
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #456 : 04 января 2013, 03:19:31 »

Как-то так
host= re.find(url, [[(?:\w+:\/\/)?(?:[^@/]+@)?([^/]+)/?.*$]], 1)
Сообщить модератору   Записан
mirny
Пользователь
**

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

Сообщений: 84


« Ответ #457 : 04 января 2013, 09:26:57 »

Или так:
Код:
function url_parse(url)
  -- scheme://netloc/path;parameters?query#fragment
  local scheme, netloc, path = string.match(url, [[^(%a+://)([^/]+)(/.*)]])
  return {scheme=scheme, netloc=netloc, path=path}
end

url = [[http://adshow.cmd/http://host/blablabla]]
url_path = url_parse(url).path:sub(2)
url_host = url_parse(url_path).netloc
Сообщить модератору   Записан
olDjeka
Постоялец
***

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

Сообщений: 117


« Ответ #458 : 16 января 2013, 22:13:41 »

Прошу в тренажёре HC Version 1.00 RC3 (1.0.0.409) проверить ("Применить") правило
^http://[^:]+:443 для
url: http://addons.cdn.mozilla.net:443/media/img/app-icons/med/firefox.png
Перед проверкой галочку "Удалять лидирующий http://" необходимо снять.

У меня выдаёт следующий результат:
Код:
Mark:
RegEx error - PCRE_ERROR_NOMATCH
Хотя должен быть:
Код:
0(1): http://addons.cdn.mozilla.net:443
Mark:

Проверил в старых версиях HC, там работает правильно.
Если правило изменить на ^http://[^:]+:44, то работает верно.
Сообщить модератору   Записан
Anymore
Beta tester
*****

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

Сообщений: 339


« Ответ #459 : 16 января 2013, 22:54:22 »

Подтверждаю, точно так. olDjeka, ещё вариант http://[^:]+:443 работает.
Сообщить модератору   Записан
Страниц: 1 ... 21 22 [23] 24 25 ... 29   Вверх
  Отправить эту тему    Печать  

 
Перейти в: