+  HandyCache форум
|-+  Главная категория» Общие вопросы» Расширения на языке Lua в HandyCache
Имя пользователя:
Пароль:
Страниц: 1 ... 17 18 [19] 20 21 ... 29   Вниз
  Отправить эту тему    Печать  
Автор Тема: Расширения на языке Lua в HandyCache  (Прочитано 438262 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #360 : 11 апреля 2012, 20:08:36 »

Эту страницу (файл) мне в личку киньте, плиз.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #361 : 12 апреля 2012, 19:52:55 »

Цитировать
В коде страници, URL которой имет вид:
steamcommunity.com/trade/цифирки/
Цитировать
Так есть слэш в конце или нет? Если нет, то правило будет выглядеть так:
Код:
steamcommunity\.com/trade/\d++#~#(?-x)(<h2>Предложение [^:]++:</h2>)(.*?)UserThem\.SetProfileURL\( "http:\\/\\/steamcommunity\.com\\/profiles\\(/\d++)" \);#~#<a  href="http://steamcommunity.com/profiles\3">\1</a>\2http://steamcommunity.com/profiles\3
Попробуйте, отпишитесь...
Цитировать
UserThem.SetProfileURL( "http:\/\/steamcommunity.com\/profiles\/цифирки" );
Удалить в ней все, оставив только голый адрес http://steamcommunity.com/profiles/цифирки
По-моему, скрипт не сохранит работоспособность при замене
UserThem.SetProfileURL( "http:\/\/steamcommunity.com\/profiles\/цифирки" );
на
http://steamcommunity.com/profiles/цифирки
Точно ли это то, что нужно?
Сообщить модератору   Записан
Aleksei N
Постоялец
***

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

Сообщений: 125


« Ответ #362 : 12 апреля 2012, 20:24:34 »

Нет, не то что нужно. На страницы есть определенная надпись, ее нужно сделать кликабельной, ссылка на которую должна вести эта надпись, содержится в коде этой же страницы. Адрес не имеет в конце слеша.
Предложение Ник: - это и есть тот самый текст, из которого надо сделать ссылку. Я уже запутался в терминах и понятиях ))))) Кароче из простого текста надо сделать кликабельный текст ) Адрес на который должен ссылатся эта ссылка содержится в коде этой же страницы, в такой строке UserThem.SetProfileURL( "http:\/\/steamcommunity.com\/profiles\/цифирки" );
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #363 : 12 апреля 2012, 20:29:02 »

Пробуем:
Код:
steamcommunity\.com/trade/\d++#~#(?-x)(<h2>Предложение [^:]++:</h2>)(?=.*?UserThem\.SetProfileURL\( "http:\\/\\/steamcommunity\.com\\/profiles\\(/\d++)" \);)#~#<a  href="http://steamcommunity.com/profiles\2">\1</a>
Сообщить модератору   Записан
Aleksei N
Постоялец
***

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

Сообщений: 125


« Ответ #364 : 13 апреля 2012, 03:33:53 »

Не работает. Лог чистый. CM:0 hits
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #365 : 13 апреля 2012, 07:02:23 »

Проверьте, убрав из правила слово "Предложение".
Если появится срабатывание, то похоже имеют место проблемы с кодировкой.
Тогда сделайте, плиз, лог НС при загрузке этой страницы с отключенными опциями "Отладочная информация" и "Информация только из расширений".
Сообщить модератору   Записан
Aleksei N
Постоялец
***

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

Сообщений: 125


« Ответ #366 : 13 апреля 2012, 15:04:31 »

Убрал слово "Предложение" - 0 срабатываний
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #367 : 13 апреля 2012, 21:13:36 »

А пробел после этого слова убран?
Т.е. дает ли срабатывания такое правило:
Код:
steamcommunity\.com/trade/\d++#~#(?-x)(<h2>[^:]++:</h2>)(?=.*?UserThem\.SetProfileURL\( "http:\\/\\/steamcommunity\.com\\/profiles\\(/\d++)" \);)#~#<a  href="http://steamcommunity.com/profiles\2">\1</a>
Сообщить модератору   Записан
Aleksei N
Постоялец
***

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

Сообщений: 125


« Ответ #368 : 14 апреля 2012, 06:49:32 »

Убрал пробел, все равно 0 срабатываний.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #369 : 14 апреля 2012, 10:01:24 »

У меня с тем файлом, что Вы прислали, правило работает.
Сообщить модератору   Записан
Anymore
Beta tester
*****

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

Сообщений: 339


« Ответ #370 : 28 мая 2012, 17:05:23 »

Здравствуйте.
Кто мне может помочь? Мой провайдер иногда портит страницы возвращая примерно такое:

Код:
URL: http://google.com/downloads?client=navclient-auto-ffox
HTTP/1.1 302 Found
Location: https://deneg.day.ru/overload/?h=google.com&u=/downloads&p=client=navclient-auto-ffox
Content-Type: text/html; charset=utf-8
Content-Length: 380
Connection: keep-alive

Как мне написать скрипт так, чтоб при обнаружении такого заголовка происходил reload?
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #371 : 29 мая 2012, 03:01:55 »

Попробуйте так:
Код:
--[[ <HCExtension>
@name          antiprovider
@author        mai62
@version       0.1
@description   Correct answer from bad provider
@event         AnswerHeaderReceived/Answer
</HCExtension> ]]


function GetAnswerCode()
  _,_,x = string.find(hc.answer_header, 'HTTP/1%.%d +(%d+)')
  if x==nil then return -1 else return tonumber(x) end
end

function Answer()
  answ_code = GetAnswerCode()
  if answ_code == 302 and re.find(hc.answer_header, [[deneg\.day\.ru]]) then
    hc.put_to_log('Correction')
    hc.answer_header=
    'HTTP/1.1 302\r\n'..
    'Server: HandyCache\r\n'..
    'Location: '..hc.url..'\r\n'..
    'Connection: close\r\n\r\n'
  end
end
Сообщить модератору   Записан
Anymore
Beta tester
*****

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

Сообщений: 339


« Ответ #372 : 30 мая 2012, 00:07:02 »

Работает на УРА! Спасибо!
Сообщить модератору   Записан
LordMerlin
Старожил
****

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

Сообщений: 488


« Ответ #373 : 31 мая 2012, 10:31:17 »

Доброго дня.
Прошу ответить на вопрос, можно ли сделать расширение, которое работало по следующей логике:
Происходит запрос страницы, весь трафик направляется на основной прокси сервер.
В случае невозможности загрузить страницу либо же по определенному ответу от основного проксика расширение перекидывает запрос на запасной проксик, возможно что для уменьшения задержек не повторять со следующим запросом долбить основной а например продолжать использовать запасной минут 5, затем снова попытка соединиться на основной.
Если попытка прошла снова переключаем весь траффик на основной проксик и так до следующего инцидента.
Просто на основном проксике анлим а на запасном тариф по трафику, приходится постоянно сидеть и ручками клацать.
Сообщить модератору   Записан
Anymore
Beta tester
*****

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

Сообщений: 339


« Ответ #374 : 31 мая 2012, 14:15:18 »

Прошу ответить на вопрос, можно ли сделать расширение, которое работало по следующей логике...
Меня интересует подобный вопрос. Рассматривая форум пришёл к выводу что можно, вот только писать его придётся самостоятельно. Странно что я не могу найти информацию о том как это сделать, например, какое событие вызывается в случае noanswer или как уменьшить таймаут до 20 секунд. Я так понимаю стоит создать тему типа "Автоматическое переключение интернет канала(Proxy & getway auto switch)" и выкладывать туда всё что может пригодиться.
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #375 : 01 июня 2012, 01:26:39 »

Цитировать
например, какое событие вызывается в случае noanswer
Возвращается ответ с ошибкой, перед этим вызывается для этого ответа обработчик BeforeAnswerHeaderSend.
Цитировать
как уменьшить таймаут до 20 секунд
Из расширения нельзя.
Сообщить модератору   Записан
Anymore
Beta tester
*****

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

Сообщений: 339


« Ответ #376 : 01 июня 2012, 22:24:09 »

to LordMerlin (глубокая альфа, ибо это моя первая программа на lua)

Код:
--[[ <HCExtension>
@name          Автопереключение на резевный прокси (#2)
@author        Anymore
@version       0.0.001
@description   http://handycache.ru/forum/index.php?topic=1120.msg35365#msg35365
@event         Init/init
@event        Timer1m/timer
@event         BeforeAnswerHeaderSend/Event
@event         RequestHeaderReceived/Request
</HCExtension> ]]

function init()
  hc_static['count']=0
  hc.set_global('sw2reserve', '')
  hc_static['CheckURL']='http://www.google.de/'
end

function GetAnswerCode()
  _,_,x = string.find(hc.answer_header, 'HTTP/1%.%d +(%d+)')
  if x==nil then return -1 else return tonumber(x) end
end

function Request()
  if hc.url==hc_static['CheckURL'] then
    hc.monitor_string = '#?'
  else
    if hc_static['count']>1 or hc.get_global('sw2reserve')=='sw' then
      hc.monitor_string = '#2 '..hc.monitor_string
      hc.use_proxy="127.0.0.1:80" --Внешинй прокси
      hc.use_proxy_login="user:password"
    end
  end
end

function timer()
  if not hc.offline_on and hc_static['count']>0 then
    hc_static['count']=hc_static['count']-1
  end
  if hc.get_global('sw2reserve')=='sw' then
    hc.put_msg(10, 'Резервный прокси')
    hc.set_global('sw2reserve', '')
    hc_static['count']=3
  end
  if hc_static['count']==2 then
    hc.execute_cmd('LoadURL '..hc_static['CheckURL'])
  end
  if hc_static['count']==1 then
    hc.put_msg(10, 'взврат на основной канал')
  end

end

function Event()
  answ_code = GetAnswerCode()
  if answ_code == 502 or answ_code == 504 then
    hc.set_global('sw2reserve', 'sw')
    hc.action='dont_save'
    if hc.url==hc_static['CheckURL'] then
    else
      hc.answer_header=
      'HTTP/1.1 302\r\n'..
      'Server: HandyCache\r\n'..
      'Location: '..hc.url..'\r\n'..
      'Connection: close\r\n\r\n'
    end
  end
end
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #377 : 02 июня 2012, 02:02:34 »

Как ловили новый мега-вирус, написанный на lua.
Сообщить модератору   Записан
Dzhakandak
Постоялец
***

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

Сообщений: 119


WWW
« Ответ #378 : 02 июня 2012, 03:14:34 »

 Отлично!
Цитировать
Как ловили новый мега-вирус, написанный на lua.[/url]
Подмигивающий Ребята, кто из ВАС балуется? Хватит баловаться. Сколько раз говорили: "Подглядывать - не хорошо!"  Веселый

З.Ы. Ну или скажите где взять, я себе тоже такое "расширение" поставлю, поподглядываю Улыбка
З.Ы.2. Извиняюсь перед тем, у кого с чувством юмора не очень.  Благодарю
Сообщить модератору   Записан

LordMerlin
Старожил
****

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

Сообщений: 488


« Ответ #379 : 02 июня 2012, 10:03:21 »

to LordMerlin (глубокая альфа, ибо это моя первая программа на lua)
А можете пояснить логику работы. А то я в коде совсем тупой.
Правильно ли я понял, что идет работа напрямую и переодический пинг на гугль.де и если не отвечает подключается внешний проксик, потом при каждом запросе проверяется состояние ответов до него (гугл) и если получается нормальный ответ то проксик отключается и работает снова напрямую.
Добавлено: 02 Июнь 2012, 09:36:51

Это только подтверждение того, что ЛУА мощный язык, но в то же время и достаточно простой для освоения.
Да и если быть до конца честным, то на ЛУА написана только обертка и логика, а все низкоуровневые таки на С.
Сообщить модератору   Записан
Страниц: 1 ... 17 18 [19] 20 21 ... 29   Вверх
  Отправить эту тему    Печать  

 
Перейти в: