+  HandyCache форум
|-+  Главная категория» Общие вопросы» Расширения на языке Lua в HandyCache
Имя пользователя:
Пароль:
Страниц: 1 ... 9 10 [11] 12 13 ... 29   Вниз
  Отправить эту тему    Печать  
Автор Тема: Расширения на языке Lua в HandyCache  (Прочитано 437592 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Ubiquitous_Nothing
Новичок
*

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

Сообщений: 8


« Ответ #200 : 26 апреля 2010, 17:04:53 »

Главное - уже что-то работает!!!
k_ok_o_s, а не могли бы вы этим кое-чем поделиться? Вдруг оно еще кому-нибудь полезным будет Подмигивающий
Сообщить модератору   Записан
toobig
Новичок
*

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

Сообщений: 13


« Ответ #201 : 26 мая 2010, 19:20:02 »

что-то у меня скрипт, который блокирует загрузку больших файлов в зависимости от системного времени(в начале топика есть) вообще никак не работает. поставил специально 1мб на закачку, а реакции ноль. Может есть более новая версия скрипта?
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #202 : 26 мая 2010, 21:56:38 »

Может есть более новая версия скрипта?

Приложил к посту.

P.S. Эту тему лучше читать с конца. Скрипты с первых страниц не будут работать в свежих версиях HC.

* eA_Block_long_file_by_time.zip (0.82 Кб - загружено 64 раз.)
Сообщить модератору   Записан
toobig
Новичок
*

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

Сообщений: 13


« Ответ #203 : 27 мая 2010, 12:02:45 »

Спасибо, похоже пора сделать что-то вроде закрепленного сообщения, где напечатать название скиптов, и что они делают.
Ну и само собой все их кучей прикрепить архивом или поодиночке...
Это я для удобства...
P.S. У меня еще один вопросик, или просьба...
А можно как-нибудь сделать блок по определенной фразе в ссылке, тоже по времени (запросы на торрент блокировать)- а то  в черный список внес правило, оно работает, но ведь не будешь его каждый раз включать-выключать...
« Последнее редактирование: 27 мая 2010, 12:18:49 от toobig » Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #204 : 27 мая 2010, 12:34:21 »

Это
Цитировать
блок по определенной фразе в ссылке
как понимать? Имеется ввиду фраза в URL или в получаемых данных?
Можно и то, и другое. Второе сложней, но тоже можно.
Сообщить модератору   Записан
toobig
Новичок
*

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

Сообщений: 13


« Ответ #205 : 27 мая 2010, 22:19:38 »

В URL конечно, торренты ведь проверяют себя периодически отсылая запросы вида
_http://torrent.com/announce?info_hash=%CNRQ8_
Думаю, если блокировать по фразе ( announce?info_hash=% ) то закачка просто заглохнет без подтверждения наличия файла на сервисе...
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #206 : 28 мая 2010, 14:45:21 »

toobig
Попробуй так
Код:
--[[ <HCExtension>
@name          block files by time
@author        mai62
@version       0.01
@description   Блокирует некоторые URL по времени
@rule          announce\?info_hash=%
@event         RequestHeaderReceived/request
</HCExtension> ]]

function request()
 -- Узнаем текущее системное время
  time = os.date("*t")
 -- Если системное время с 17:00 до 23:00, то
 if time.hour >= 17 and time.hour <= 23 then
    hc_action = "stop"
 end

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

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

Сообщений: 13


« Ответ #207 : 29 мая 2010, 08:40:49 »

Сделал, пока проверить некогда. Хочу уточнить момент один- стал смотреть ссылки, ну насчет фразы- там она присутствует, но с вариациями, есть прямо как (announce?info_hash=%) а есть (announce.php?passkey=5...&info_hash=%...)
Чтобы перехватить оба варианта как должна выглядеть фраза?
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #208 : 29 мая 2010, 12:34:07 »

Можно так
announce(?:\.php)?\?(?:.+)?info_hash=%
Сообщить модератору   Записан
toobig
Новичок
*

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

Сообщений: 13


« Ответ #209 : 29 мая 2010, 16:31:05 »

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

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

Сообщений: 13


« Ответ #210 : 29 мая 2010, 19:38:01 »

announce(?:\.php)?\?(?:.+)?info_hash=%
В таком виде не работает, пока остановился на упрощеной версии только если есть
info_hash=%
Блин, и так не блокирует...
А если в черный список вношу +info_hash= то да, работает....
« Последнее редактирование: 29 мая 2010, 20:40:34 от toobig » Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #211 : 29 мая 2010, 22:07:08 »

Блин, и так не блокирует...

Поправь строку:
    hc_action = "stop"
на:
    hc.action = "stop"
Сообщить модератору   Записан
toobig
Новичок
*

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

Сообщений: 13


« Ответ #212 : 30 мая 2010, 11:01:57 »

Поправил, теперь все заработало. Ура!!!
P.S. Спасибо.
Сообщить модератору   Записан
Jenova
Новичок
*

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

Сообщений: 2


« Ответ #213 : 02 июня 2010, 06:18:32 »

Помогите пожалуйста с расширением.
Нужно что бы UserAgent браузера заменялся на другой.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #214 : 02 июня 2010, 07:52:00 »

Нужно что бы UserAgent браузера заменялся на другой.

Код:
--[[ <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
Сообщить модератору   Записан
Jenova
Новичок
*

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

Сообщений: 2


« Ответ #215 : 02 июня 2010, 09:00:07 »

DenZzz премного благодарен :-) Всё работает отлично.
Сообщить модератору   Записан
aurumkey
Новичок
*

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

Сообщений: 3


« Ответ #216 : 06 июня 2010, 02:05:22 »

Нид хэлп

Есть адрес(например) http://r0.ru/
в теле есть тэг <title>Рамблер Легкая версия</title>

страница подгружает картинку http://i.rl0.ru/_projects/r0.ru/rambler.gif

Как сохранить эту картинку в кэш с названием 'Рамблер Легкая версия.gif'
т.е. на основе тэга выдрать строку из тела
local x = re.match(hc.answer_body, [[<title>(.*)</title>]])
local name=re.substr(1)
и сохранить с именем

local ext='gif'
local cache_file_name = string.format("somefolder\\%s.%s",name,ext)
hc.preform_cache_file_name(cache_file_name)
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #217 : 06 июня 2010, 14:45:48 »

Как сделать? Писать расширение. И это расширение не будет тривиальным. Возможно надо взять за основу Content Master и доделывать недостающий функционал.
Не совсем понял, что будет, если на странице несколько картинок? Им же всем не будешь одно имя давать.
Сообщить модератору   Записан
the_ghost
Новичок
*

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

Сообщений: 7


« Ответ #218 : 24 июня 2010, 16:32:19 »

Хочу выводить собственное сообщение о блокировке. Пробую использовать answer_body в таком скрипте:

Код:
--[[ <HCExtension>
@name          Блокировать загрузку больших файлов в зависимости от времени (A-long-T)
@author        DenZzz
@version       1.2 для HC v1.00 RC2 (1.0.0.175) и возможно выше
@description   Блокирует загрузку больших файлов в зависимости от системного времени
@event         AnswerHeaderReceived/Answer
</HCExtension> ]]


function GetContentLength(s)
  _,_,x = string.find(s, '[cC]ontent%-[lL]ength: *(%d+)')
  if x==nil then return -1 else return tonumber(x) end
end


function Answer()
 
 -- Узнаем текущее системное время
 local time = os.date("*t")
 -- Если системное время с 20:00 до 24:00, то
 if time.hour >= 10 then

  -- забираем размер файла из заголовка 'Content-Length'
  local len = GetContentLength(hc.answer_header)

   -- если размер файла есть в заголовке и он больше 10 МБайт
    if len > 10485760 then
     -- и действие HC еще не присвоено или присвоено 'Сохранять', то блокировать загрузку
      if hc.action=='' or hc.action==nil or hc.action=='save' or hc.action=='save-' then
        hc.answer_body = "file=c:\\obed.htm"
        hc.action = 'stop'
        hc.put_msg(10, GetContentLength(hc.answer_body))
        hc.monitor_string = hc.monitor_string ..'A-long-T'
      end
    end
 end
end  -- Конец функции Answer


Содержимое файла obed.htm:
Код:
           <html>
             <head>
             </head>

             <body>
<b>xaxax</b>
             </body>

           </html>

Подскажите, пожалуйста, как правильно вывести свое сообщение об ошибке из html файла
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #219 : 24 июня 2010, 17:03:07 »

Подскажите, пожалуйста, как правильно вывести свое сообщение об ошибке из html файла

Вместо hc.action = 'stop' присваивай значения переменным hc.answer_header и hc.answer_body.
Сообщить модератору   Записан
Страниц: 1 ... 9 10 [11] 12 13 ... 29   Вверх
  Отправить эту тему    Печать  

 
Перейти в: