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

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

Сообщений: 2


« Ответ #220 : 09 июля 2010, 12:50:21 »

Добрый день! Может у кого есть скрипт для блокировки заданных типов файлов по размеру, Например, заблокировать загрузку изображений более 100 кбайт?*
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #221 : 09 июля 2010, 13:19:01 »

Возьми расширение eA_Dont_update_image_by_type.lua из дистрибутива НС и замени функцию Answer на эту
Код:
function Answer()

 -- Только для GET-запросов
  if hc.method == 'GET' then

   -- забираем тип файла из заголовка 'Content-Type'
    type = GetContentType(hc.answer_header)
   -- есть ли в поле заголовка 'Content-Type' слово 'image'
    if type~=nil then img = string.find(type,'image',1,true)
    else img = nil  end
   -- забираем размер файла из заголовка 'Content-Length'
    len = GetContentLength(hc.answer_header)

      if img~=nil then
         -- если это картинка и ее размер больше 100 кбайт
          if len > 100*1024 then
           -- то блокируем загрузку
            hc.action = 'stop-'
            hc.monitor_string = hc.monitor_string..'block-img '
          end 
      end
  end

end  -- Конец функции Answer
Сообщить модератору   Записан
pmail
Новичок
*

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

Сообщений: 2


« Ответ #222 : 09 июля 2010, 15:23:28 »

спасибо, работает, а не подскажете, как можно для определенных пользователей запретить закачку по типу файлов , например запретить user1 скачивать exe,zip,avi и пр
Сообщить модератору   Записан
DenisVS
Новичок
*

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

Сообщений: 15


« Ответ #223 : 09 июля 2010, 23:41:01 »

Расскажите, как работает Cache cleaner. Именно, что оно делает, чего именно и на сколько чистит.
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #224 : 10 июля 2010, 00:09:53 »

Cache cleaner автоматически через заданный промежуток времени "нажимает" кнопку Запустить на вкладке Очистка кэша.
Сообщить модератору   Записан
Virus88
Новичок
*

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

Сообщений: 8


« Ответ #225 : 14 июля 2010, 14:54:51 »

нужно несколько скриптов...
1 замена страницы заблокированного файла
2 статистика(количество юзеров... не нашел в проге)
3) бан по ип
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #226 : 14 июля 2010, 16:01:26 »

А ты смотрел эту ветку? Ничего похожего не нашел?
Сообщить модератору   Записан
Virus88
Новичок
*

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

Сообщений: 8


« Ответ #227 : 14 июля 2010, 16:21:34 »

смотрел в начале страниц 5.... подходящего не нашел... времени нет.... решил просто вопрос задать может помогут найти....
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #228 : 14 июля 2010, 16:48:44 »

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

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

Сообщений: 8


« Ответ #229 : 14 июля 2010, 17:28:24 »

Код:
--[[ <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

нашел вот это но оно не работает((( и еще там по времени я удал время ниже прочел как справить чтобы заработало

Код:
--[[ <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()
 
 -- Узнаем текущее системное время
 
 -- Если системное время с 20:00 до 24:00, то
 

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

   -- если размер файла есть в заголовке и он больше 10 МБайт
    if len > 3000000 then
     -- и действие HC еще не присвоено или присвоено 'Сохранять', то блокировать загрузку
      if hc.action=='' or hc.action==nil or hc.action=='save' or hc.action=='save-' then
        hc.answer_body = "file=D:\\HandyCache\Extensions\obed.htm"
hc.answer_header = 'stop'
               
        hc.put_msg(10, GetContentLength(hc.answer_body))
        hc.monitor_string = hc.monitor_string ..'A-long-T'
      end
    end
 end
end  -- Конец функции Answer
но все равно не работает
и еще нужно както ограничить число пользователей на 1 акаунте...
« Последнее редактирование: 14 июля 2010, 17:50:33 от Virus88 » Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #230 : 14 июля 2010, 23:15:58 »

но все равно не работает

Править скрипты, не зная теории - дело не благодарное! Оба этих скрипта некорректны, поэтому и не работают.

1 замена страницы заблокированного файла

Штатная опция "Показывать файл" Черного списка не устроит?

Цитировать
2 статистика(количество юзеров... не нашел в проге)

Есть отдельная вкладка рядом с настройками.

Цитировать
3) бан по ип

Кого надо банить по IP - юзера или сайт? Есть и то и другое. Первое через скрипт или список Доступа, а второе можно просто в Черном списке прописать.

и еще нужно както ограничить число пользователей на 1 акаунте...

Проще завести каждому пользователю по своему акаунту и авторизовать их по IP или по логину с паролем.
Сообщить модератору   Записан
Virus88
Новичок
*

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

Сообщений: 8


« Ответ #231 : 15 июля 2010, 11:34:43 »

DenZzz можешь поправить чтобы были коректны??

на счет замены в принципе можно перенаправление использовать.. но придется ставить вирт сервер... а так просто с кампа фаил указал и все....

количество юзеров... там показывает трафик.. .на вкладке о программе ипы... а я хочу чтобы количество пользователей в данный момент подключенных показывало...

каждому по Аккаунту... у меня их всего 5 а юзеров около 60)))
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #232 : 15 июля 2010, 14:40:43 »

DenZzz можешь поправить чтобы были коректны??

Могу, но зачем, когда есть более простое решение?

на счет замены в принципе можно перенаправление использовать.. но придется ставить вирт сервер... а так просто с кампа фаил указал и все....

Да не нужен никакой виртуальный сервер! Есть штатная опция "Показывать файл" в Черном списке, которая будет выдавать указанный файл вместо заблокированного - хоть картинку, хоть HTML.
Можно и через переадресацию сделать. Тогда кладешь файл в кэш в нужное место и заносишь путь в список "Не обновлять" и все, HC будет его выдавать и без всякого виртуального сервера!

Цитировать
количество юзеров... там показывает трафик.. .на вкладке о программе ипы... а я хочу чтобы количество пользователей в данный момент подключенных показывало...

На вкладке "О программе" нижний график показывает количество активных соединений. Количество активных пользователей можно узнать только через расширение, ну или просто в мониторе посмотреть, кто там запросы шлет.

Цитировать
каждому по Аккаунту... у меня их всего 5 а юзеров около 60

Купи HC и будет больше! А искать пути обхода ограничений бесплатной версии на оф.сайте - это совсем не скромно и не разумно...
Сообщить модератору   Записан
Virus88
Новичок
*

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

Сообщений: 8


« Ответ #233 : 15 июля 2010, 16:57:53 »

я не ищу способы обхода... раз разрешено на 1 акаунте несколько юзеров, значит не запрещено...
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #234 : 15 июля 2010, 17:05:45 »

Вообще-то в лицензии написано, что можно использовать в некоммерческих целях (у тебя дома 60 юзеров?) и если количество пользователей Программы не превышает пяти.
Цитировать
Пользователь имеет право
Использовать Программу для ознакомительных целей в течение 30 (тридцати) дней с момента ее первого запуска (инсталляции).
Использовать Программу для некоммерческих целей неограниченный срок в случае, если количество пользователей Программы не превышает пяти.
Сообщить модератору   Записан
Virus88
Новичок
*

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

Сообщений: 8


« Ответ #235 : 15 июля 2010, 17:17:53 »

хм... ну пользователей программы всего 2... использую в не коммерческих целей.... просто сделал прокси для знакомых...
Сообщить модератору   Записан
NataschaS
Новичок
*

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

Сообщений: 3


« Ответ #236 : 09 августа 2010, 18:42:32 »

Извините совсем не продвинутого юзера.
Возвращаясь к вопросу с запретом vkontakte и odnoklassniki. Какой должен быть скрипт, чтобы запретить эти сайты в рабочие дни в рабочее время с 9-30 до 18-30 определенным товарищам?
Не поняла где это сделать "в список Серверов-посредников необходимо добавить 2 строки (использовать команду Добавить из буфера):"
Не нашла в скачанном архиве  hc_script.zip файл luaR.lst
Буду очень признательна за помощь.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #237 : 09 августа 2010, 19:46:21 »

Возвращаясь к вопросу с запретом vkontakte и odnoklassniki. Какой должен быть скрипт, чтобы запретить эти сайты в рабочие дни в рабочее время с 9-30 до 18-30 определенным товарищам?

Привел пример здесь: http://handycache.ru/component/option,com_smf/Itemid,10/topic,2716.msg26936/#msg26936
Сохрани его в файл с расширением .lua и добавь этот файл в список расширений HC через соответствующую вкладку в настройках HC.

Не поняла где это сделать "в список Серверов-посредников необходимо добавить 2 строки (использовать команду Добавить из буфера):"
Не нашла в скачанном архиве  hc_script.zip файл luaR.lst

Все это делать уже не надо! Устарело! Тему надо было читать с конца и еще читать файл HCExtensions.html из комплекта HandyCache версии RC3 1.0.0.295.
Сообщить модератору   Записан
Sogenius
Новичок
*

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

Сообщений: 21


« Ответ #238 : 15 августа 2010, 11:47:34 »

Добрый день! Можно ли с помощью расширения заменить, либо вообще удалить все слова, наподобие "ИМХО", "УМВР", "ЧЯДНТ" и тому подобный мусор со страницы?
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #239 : 15 августа 2010, 12:55:30 »

Это можно сделать расширением СМ. Для этого нужно сделать свой файл с правилами замены. Первая строка файла должна быть такой:
## REPLACEMENTS
Дальше должны быть записи в таком формате:
правило для URL#~#Что заменить#~#Чем заменить
здесь "правило для URL" - регулярное выражение, которое будет выделять URL, где нужна замена;
Для твоей задачи нужно вписать такую строку:
.#~#ИМХО|УМВР|ЧЯДНТ#~#

Этот файл нужно положить в папку СМ. Дальше открыть настройки СМ и вписать имя нового файла с правилами в текстовое поле рядом с галкой ContentMaster через запятую после ContentMaster_Default.txt.
Сообщить модератору   Записан
Страниц: 1 ... 10 11 [12] 13 14 ... 29   Вверх
  Отправить эту тему    Печать  

 
Перейти в: