+  HandyCache форум
|-+  Главная категория» Общие вопросы» Написание правил по заявкам
Имя пользователя:
Пароль:
Страниц: 1 ... 48 49 [50] 51 52 ... 89   Вниз
  Отправить эту тему    Печать  
Автор Тема: Написание правил по заявкам  (Прочитано 1122866 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
sergtch
Новичок
*

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

Сообщений: 9


« Ответ #980 : 15 ноября 2009, 23:12:13 »

Возможно, если напишешь такое расширение для HC.



Тоесть просто правилами - не получится, а готового расширения для этого нет?
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #981 : 15 ноября 2009, 23:29:44 »

Тоесть просто правилами - не получится

В пределах папки кэша - без проблем. Вне папки кэша тоже есть лазейка: http://handycache.ru/component/option,com_smf/Itemid,10/topic,1381.msg11296/#msg11296
но в расширении это делать удобнее.

Цитировать
готового расширения для этого нет?

Нет, но там всего пара строк кода.

Сообщить модератору   Записан
Aleksei N
Постоялец
***

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

Сообщений: 125


« Ответ #982 : 22 ноября 2009, 03:56:23 »

Скажите как правильно написать правило.
Составил такое правило (преобразования) для Опера турбо
#5#~#False#~#(global-turbo-1.opera-mini.net:80/[www.]{4})(.*)#~#\3\2#~#False#~#True
Оно срабатывает в тренажоре, но на деле оно не работает
Понял, там срабатывает другое правило
#5#~#True#~#:(?!443/)\d+/#~#/#~#False#~#True
Как сделать что бы срабатывало мое?
« Последнее редактирование: 22 ноября 2009, 04:13:28 от Aleksei N » Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #983 : 22 ноября 2009, 09:28:59 »

Aleksei N

Все равно с одним твоим правилом Турбо-режим Оперы не сможет работать!

Используй расширение "Opera Turbo Agent", оно само делает все нужные преобразования:
http://handycache.ru/component/option,com_smf/Itemid,10/topic,2208.msg21737/#msg21737

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

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

Сообщений: 9


« Ответ #984 : 24 ноября 2009, 11:20:56 »

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

Здравствуйте, нужно специфическое правило (по моему скромному мнению).
Проблема: GPRS провайдер (а может и не он?) во все входящие страницы (http://) включает скрипт, назначение которого для меня туманно. Предположение такое - периодическая перегрузка картинок в странице под видом упаковки, распаковки.... Внешне проявляется так - картиника мигнет, не успев загрузиться и грузится заново. Из кэша провайдера. Он (провайдер) адреса картинок подменяет на свои, из кэша. Скрипт  (JS) вставляется перед завершающими </body></html>.
Задача: вырезать этот скрипт из всех станиц.
Попытки решения предпринимались, была найдена статья [a href="простите, потерял ссылку. кажется на citforum.ru"]"Учимся регулярно выражаться"[/a] где приводится рег.выражение : <(\w+)[^>]*>((?Грустный?!</\1>).)*))</\1> - Оно захватывает любые парные теги вместе с содержимым. на этом все закончилось, т.к. в вашей Реализации оператор (?: не поддерживается. И еще мне не понятно, куда это выражение вставлять в HC.
Я уверен, что HC справится с моей задачей, но сам я пока не могу Грустный, поэтому прошу помочь.

скрипт привожу ниже, опять просьба к Вам, сожмите его как-нибудь сами (скрипт), а то много места занимает...

Код:
<script type="text/javascript"><!--
var FN_IR_el;
function FN_IR_reload()
{
var el = FN_IR_el;
if(el && el.hasNGData)
{
el.alt = el.NGAlt;
el.title = el.NGTitle;
el[el.NGAttrib] = el.NGSrc + 'nguncompressed';
el.hasNGData = false;
el.NGDone = true;
}
}
function FN_IR_mouseout(e)
{
if(!e)
e = window.event;
var el;
el = e.target || e.srcElement;
if(el && el.hasNGData)
{
clearTimeout(el.NGTimeout);
}
}
function FN_IR_mousein(e)
{
if(!e)
e = window.event;
var el;
el = e.target || e.srcElement;

if( (el.NGDone == true) && el.NGSrc && (el.src.search('nguncompressed') == -1) && (el.src.search(el.NGSrc) == -1) )
{
el.NGDone = false;
el.hasNGData = false;
}

if(!el.NGDone && !el.hasNGData)
{
if(el.tagName=="IMG")
{
var uri = el.src;
var imgName = uri;
if (uri.search(/\/$/) != -1)
{
return;
}
if(uri.search(/^mhtml:http:\/\//i) == 0)
{
var mp = imgName.search("!");
if(mp != -1)
{
imgName = imgName.substring(mp+1);
if(el.onmouseover)
el.src = imgName;
}
}
else if(uri.search(/^(http|file):\/\//i) == -1)
{
el.NGDone = true;
return;
}

var endUrl = imgName.search(/[\?\!\&]/);
if(endUrl == -1)
endUrl = imgName.length;
var extension = imgName.substring(endUrl - 4);
if(extension.search(/^\.(bmp|png)/i) == 0)
{
el.NGDone = true;
return;
}

el.hasNGData = true;
el.NGSrc = imgName;
el.NGAttrib = "src";
el.NGAlt = (el.alt)?el.alt:"";
el.NGTitle = (el.title)?el.title:"";
el.alt = 'please wait 1 second(s) for an uncompressed image, or press Ctrl+F5 for original quality page';
el.title = 'please wait 1 second(s) for an uncompressed image, or press Ctrl+F5 for original quality page';
}
else
{
el.NGDone = true;
}
}
if(el && el.hasNGData)
{
FN_IR_el = el;el.NGTimeout = setTimeout("FN_IR_reload()", 1000*1);
}
}

function FN_IR_error(e)
{
if(!e)
e = window.event;
var el;
el = e.target || e.srcElement;
if(el && el.checkMht)
{
el.checkMht = false;
var uri = el.src;
if(uri.search(/^mhtml:http:\/\//i) == 0)
{
var mp = uri.search("!");
if(mp != -1)
{
el.src = uri.substring(mp+1);
}
}
}
}

function FN_IR_register_image(bod)
{
bod.checkMht = true;
if(bod.attachEvent)
{
bod.attachEvent("onmouseover", FN_IR_mousein);
bod.attachEvent("onmouseout", FN_IR_mouseout);
bod.attachEvent("onerror", FN_IR_error);
}
else if(bod.addEventListener)
{
bod.addEventListener("mouseover", FN_IR_mousein, false);
bod.addEventListener("mouseout", FN_IR_mouseout, false);
bod.addEventListener("error", FN_IR_error, false);
}
else
{
var tmp1 = bod.onmouseover;
if(tmp1)
{
bod.onmouseover = function()
{
tmp1();
FN_IR_mousein();
};
}
else
{
bod.onmouseover = FN_IR_mousein;
}
var tmp2 = bod.onmouseout;
if(tmp2)
{
bod.onmouseout = function()
{
tmp2();
FN_IR_mouseout();
};
}
else
{
bod.onmouseout = FN_IR_mouseout;
}
}
}


function FN_IR_register()
{
var i;
for (i = 0 ; i < document.images.length ; i++)
{
FN_IR_register_image(document.images[i])
};
}

FN_IR_register();

--></script>
</body>
</html>


« Последнее редактирование: 24 ноября 2009, 11:26:02 от gp_handy » Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #985 : 24 ноября 2009, 11:39:02 »

в вашей Реализации оператор (?: не поддерживается.

Это неверно! Поддерживается.

Цитировать
И еще мне не понятно, куда это выражение вставлять в HC.
Я уверен, что HC справится с моей задачей, но сам я пока не могу Грустный, поэтому прошу помочь.

Тут надо либо с нуля писать свое расширение для обработки тела, либо добавить правило для вырезания твоего скрипта в один из списков расширения Content Master. Последний вариант, конечно, намного проще.

Сообщить модератору   Записан
Villi
Старожил
****

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

Сообщений: 347


WWW
« Ответ #986 : 26 ноября 2009, 09:14:04 »

на некоторых сайтах мешают изображения с таких урл: http://www.marketgid.com/ghits/16680/i/397/k/
Я пробовал занести эти изображения в черный список, но получалось, что блокировался только сайт marketgid.com, если заходить на него.
Как блокировать эти изображения?
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #987 : 26 ноября 2009, 11:25:27 »

на некоторых сайтах мешают изображения с таких урл: http://www.marketgid.com/ghits/16680/i/397/k/

Это редиректы на другие сайты и изображения грузятся с них напрямую, поэтому надо смотреть в мониотор HC и блокировать то, что грузится на самом деле.
Сообщить модератору   Записан
gp_handy
Новичок
*

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

Сообщений: 9


« Ответ #988 : 05 декабря 2009, 02:22:37 »

Это неверно! Поддерживается.

Простите, не разобрался до конца.

Тут надо либо с нуля писать свое расширение для обработки тела, либо добавить правило для вырезания твоего скрипта в один из списков расширения Content Master. Последний вариант, конечно, намного проще.


Спасибо,  работает так:
Включил Content_master;
включил в нем adMuncher (удалять HTML элементы типа "скрипт")
в файл adMuncherList.txt строчку: Remove scripts with text: FN_IR_el;
и скрипт стал вырезаться из страниц. Сразу стало намного приятнее работать в браузере.
(при наведении мышки на картинку она заново перезагружалась). да и трафик стал поменьше.

Еще два вопроса есть.

1.  Cайт RP5.ru (расписание погоды) при работе через HC теряет картинки ( "солнечно", "облачно" и тд.) не разобрался почему, и не только на моем ПК.
2. Провайдер подменяет адреса картинок: http://62.0.5.134/handycache.ruu/forum/Themes/SlickPro_Graphite/images/im_on.gif. Он обращает к своему кэшу (62.0.5...).
составил правило: (62\.0\.5\.13[0-9]/)([^(ruu)]*)(ruu)(.*)|\2ru\4 чтобы восстановить справедливость (их НС кэширует и так, но не понятно, по какому принципу их кэширует провайдер, возможно меняются IP...).
Куда его включать - не пойму, подскажите, пожалуйста.
и как обобщить это правило для других доменов - ua, org, net... в одном правиле, чтобы не писать столько правил, сколько доменов им обрабатывать?
« Последнее редактирование: 05 декабря 2009, 02:27:17 от gp_handy » Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #989 : 05 декабря 2009, 09:43:51 »

1.  Cайт RP5.ru (расписание погоды) при работе через HC теряет картинки ( "солнечно", "облачно" и тд.) не разобрался почему, и не только на моем ПК.

В Черном списке есть правило:  (\b|_)cn(stat(ic)?s?)?[^a-z]  добавь ему исключение: rp5\.ru/img/
Сохрани список и перечитай Content Master, на всякий случай.

Цитировать
2. Провайдер подменяет адреса картинок: http://62.0.5.134/handycache.ruu/forum/Themes/SlickPro_Graphite/images/im_on.gif. Он обращает к своему кэшу (62.0.5...).
составил правило: (62\.0\.5\.13[0-9]/)([^(ruu)]*)(ruu)(.*)|\2ru\4 чтобы восстановить справедливость (их НС кэширует и так, но не понятно, по какому принципу их кэширует провайдер, возможно меняются IP...).
Куда его включать - не пойму, подскажите, пожалуйста.

Твое правило содержит несколько ошибок, а включать его надо, видимо, в список "Преобразование URL".

Цитировать
и как обобщить это правило для других доменов - ua, org, net... в одном правиле, чтобы не писать столько правил, сколько доменов им обрабатывать?

А твой провайдер все домены коверкает по типу .ruu ? Если это не опечатка, то как у него выглядят другие домены: ua, org, net и т.д.? Приведи примеры таких URL.

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

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

Сообщений: 9


« Ответ #990 : 06 декабря 2009, 01:19:31 »


А твой провайдер все домены коверкает по типу .ruu ? Если это не опечатка, то как у него выглядят другие домены: ua, org, net и т.д.? Приведи примеры таких URL.

копирую из HC монитора:

http://62.0.5.134/softkey.uaa/images/t/icon/lock.gif
http://62.0.5.134/www.w3.orgg/2008/site/images/logo-w3c-mobile-lg
http://62.0.5.136/softkey.infoo/images/top_back.gif

и другие домены аналогичным образом

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

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

Сообщений: 9


« Ответ #991 : 06 декабря 2009, 09:24:33 »

Цитировать
Твое правило содержит несколько ошибок
попытался сделать универсальное правило: 62\.0\.5\.13[0-9]/([^/]*) замена на \1, но как оттяпать у этого \1 последний символ???

Пока не решил эту задачу, пришлось использовать исключение rp5\.ruu/img/ ...
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #992 : 06 декабря 2009, 12:18:08 »

Цитировать
попытался сделать универсальное правило: 62\.0\.5\.13[0-9]/([^/]*) замена на \1, но как оттяпать у этого \1 последний символ???
Попробуй так:
правило: 62\.0\.5\.13[0-9]/(.*?)\w/
замена: \1/
Сообщить модератору   Записан
gp_handy
Новичок
*

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

Сообщений: 9


« Ответ #993 : 07 декабря 2009, 02:26:29 »

Цитировать
попытался сделать универсальное правило: 62\.0\.5\.13[0-9]/([^/]*) замена на \1, но как оттяпать у этого \1 последний символНепонимаю
Попробуй так:
правило: 62\.0\.5\.13[0-9]/(.*?)\w/
замена: \1/

Попробовал в тренажере, работает Улыбка включил в список "преобразование URL", поставил все галочки. Количество попаданий за 30 мин - 486 !!!

Не понял только почему в исходных текстах страниц остались не преобрзованные ссылки (опять 62.0.5...) и как при этом будет вести себя кеш, останутся ли там 62.0.5...

Еще забываю все время сказать по SSL (порт 443), если я не ошибаюсь, HC мне помог избавиться
от h t t p s:/ / ssl. google-analytics. com: 443, (пробелы- чтобы не терялась ссылка, а то я ее не вижу) который появляется в мониторе при любых соединениях HTTPS, а это как правило связано с важной и часто финансовой информацией, не знаю, что он делает, но без него спокойнее. Занес в черный список. Так что если это работает, то смысл включать proxy на HTTPS есть.

И еще одно спасибо за то, что я увидел в мониторе и отключил вот такой ресурс:
+safebrowsing.clients.google.com/safebrowsing/downloads?..., он цеплялся практически за всё, и отъедал 60-80 % трафика, какбудто забирал весь мой трафик в зашифрованном виде.

Вот так. Спасибо Вам большое !!!
P.S. Проверьте yandex.money.
« Последнее редактирование: 07 декабря 2009, 02:33:12 от gp_handy » Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #994 : 07 декабря 2009, 11:50:48 »

Не понял только почему в исходных текстах страниц остались не преобрзованные ссылки (опять 62.0.5...)

Потому что список "Преобразование URL" не правит HTML-код страниц, он преобразует только пути к файлам в кэше.
Сообщить модератору   Записан
gp_handy
Новичок
*

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

Сообщений: 9


« Ответ #995 : 07 декабря 2009, 13:00:09 »

Потому что список "Преобразование URL" не правит HTML-код страниц, он преобразует только пути к файлам в кэше.

А существует возможность править HTML-код страниц (URL) ? если да, то куда включать правило преобразования ?
Сообщить модератору   Записан
inep
Новичок
*

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

Сообщений: 11



WWW
« Ответ #996 : 07 декабря 2009, 13:49:34 »

Это мой отрывок из белого списка:
+pinbay.net/*
+open.net/*
+sourceforge.net/*
+mobile.net/*
Как видите, они состоят из четырех строк.
Как можно их написать в одной строке?
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #997 : 07 декабря 2009, 14:43:42 »

А существует возможность править HTML-код страниц (URL) ?  если да, то куда включать правило преобразования ?

Да, если напишешь такое расширение. В принципе, тот же Content Master мог бы это в будущем делать, если его автора заинтересует такая идея. Написал ему об этом...
А если он не пожелает, то выложу свое расширение с таким функционалом.

Как можно их написать в одной строке?

(pinbay|open|sourceforge|mobile)\.net/

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

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

Сообщений: 9


« Ответ #998 : 08 декабря 2009, 04:55:54 »

Да, если напишешь такое расширение.

Посмотрите пожалуйста:

Код:
--[[ <HCExtension>
@name          Преобразование URI
@author        ?
@version       0.0
@description   Преобразовывает URL по правилу gp_handy
@rule        62\.0\.5\.13[0-9]/.*
@event         RequestHeaderReceived/Request
</HCExtension> ]]


function ChangeHost(s)
 -- редактируем ссылку
  s, _ = string.gsub(s, '^(http://)62\.0\.5\.13[0-9]/(.*?)\w/', '%1/', 1)
  return s
end

function Request()
 -- Только для GET-запросов
  if hc.method == 'GET' then
    hc.url =   ChangeHost(hc.url)
    hc.monitor_string = hc.monitor_string..'gph '
  end
end  -- Конец функции Request


Все на что способен Улыбка

Но не работает у меня преобразование URL, хотя расширение отрабтывает, и в нужных случаях, судя по монитору.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #999 : 08 декабря 2009, 08:46:03 »

Но не работает у меня преобразование URL, хотя расширение отрабтывает, и в нужных случаях, судя по монитору.

Не работает, потому что содержит несколько концептуальных ошибок.
Что-то не пойму, ты вроде хотел править HTML-код, а в расширении пытаешься изменить только URL запросов. Если этого достаточно, то просто добавь свое правило в список "Переадресация" и писать расширение тебе тогда не нужно.
Сообщить модератору   Записан
Страниц: 1 ... 48 49 [50] 51 52 ... 89   Вверх
  Отправить эту тему    Печать  

 
Перейти в: