Автор |
Сообщение |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
#
# Фильтр вырос из топика Универсальный фильтр Печатный.
# Предназначен для шаблонной замены адресов в исходящих HTTP-запросах по блокфайлу.
#
Код: |
In = FALSE
Out = TRUE
Key = "URL-Filter: URL substitute (out) [ALX]"
Match = "$STOP() $URL( (ftp|http(s|)://(www.|))\8 $LST(HostSubst) ) ( $TST((\0)=http://*) $SET(7=\0\1\9) | $SET(7=\8\0\1\9) )"
Replace = "$LOG(RJump: \7)$JUMP(\7)" |
Позволяет использовать простые правила: \0 для префикса, \9 для суффикса, \1 для вставки в середину и любой другой замены:
(overclockers.ru/softnews/)\0 ([0-9]+.shtml)\9 $SET(1=print/)
Можно даже $SET(1=) между \0 и \9 вставить, для наглядности. Хотя то же самое можно записать и без использования фич автоподстановки:
overclockers.ru/softnews/([0-9]+.shtml)\5 $SET(1=overclockers.ru/softnews/print/\5)
Новая версия позволяет редиректить на другой сайт. Т.е. если в \0 попадёт что-то, похожее на полный url, то перед ним не будет подставляться лишнее http://.
ПС: Если кто не догадался, для работы фильтра используется блокфайл HostSubst, который надо создать ( Program Files\Proxomitron\Lists\HostSubst.txt) и прописать в Проксе (Config -> Blockfile -> Add -> HostSubst). Потом все строки для фильтра закидываются в этот файл.
|
Последний раз редактировалось: chAlx (Вс, Сен 02 2012 21:11), всего редактировалось 7 раз(а) |
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Класс.
Новый вариант думаю лучше, т.к. не всегда ссылки такие простые, бывают разного содержания для одного сайта (hard/soft), бывают оооочень длинные.
Предыдущее содержимое HostSubst легко подправить.
Нада потестировать, но вроде как все отлично работает. Спасибо.
ps.
как оптимизировать адрес, так чтоб работало для всех типов файлов кроме html?
Код: |
(rapidshare.(de|com)/files/*/*.(rar|zip)(^*.(htm|html)))\5 $SET(1=\5.html) |
|
|
|
К началу |
Профиль Сообщение |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
Nan0miT:
Напиши лучше, из какого URLа какой надо получить. Я понял, что как-то так:
( rapidshare.(de|com)/files/[^/]+/[^/.]+. (^(htm|html)) * )\0 $SET(1=.html)
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
chAlx ,
Пример ссылки
Код: |
http://rapidshare.com/files/4875863/TotC7b2.rar
|
в опере сразу включается закачка.
Нужно чтоб если адрес кончается не на htm|html то оно автоматически добавлялось в конец, т.е. чтоб получилось
Код: |
http://rapidshare.com/files/4875863/TotC7b2.rar.html
|
Используя указанный выше фильтр
Код: |
( rapidshare.(de|com)/files/[^/]+/[^/.]+. (^(htm|html)) * )\0 $SET(1=.html)
|
получается неправильная ссылка, а именно:
Код: |
http://rapidshare.com/files/4875863/TotC7b2.rar.html.html.html.html.html.html.html и т.д.
|
Мой фильтр, что я написал ранее, и щас использую работает
Код: |
(rapidshare.(de|com)/files/*/*.(rar|zip|jpg|mp3|djvu)(^*.(htm|html)))\5 $SET(1=\5.html)
|
я постепенно дописываю необходимые расширения, но хотелось бы чтоб как-то обозначить все расширения кроме htm|html
|
|
|
К началу |
Профиль Сообщение |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
Код: |
( rapidshare.(de|com)/files/*. (^(htm|html)) [^/.]+ (^?) )\0 $SET(1=.html) |
|
|
|
К началу |
Профиль Сообщение |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
Кстати, если сразу включается закачка -- попробуй отключить фильтры Content-Type: Fix MIME types (In).
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Спасибо. Вроде работает. (Не подумал насчет ограничения после html).
|
|
|
К началу |
Профиль Сообщение |
 |
гвоздик
Гость
|
chAlx писал(а): |
Код: |
( rapidshare.(de|com)/files/*. (^(htm|html)) [^/.]+ (^?) )\0 $SET(1=.html) |
|
А куда и как его вставлять? Объясните для тех, кто в танке, пожалуйста!
|
|
|
К началу |
|
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
гвоздик писал(а): |
chAlx писал(а): |
Код: |
( rapidshare.(de|com)/files/*. (^(htm|html)) [^/.]+ (^?) )\0 $SET(1=.html) |
|
А куда и как его вставлять? Объясните для тех, кто в танке, пожалуйста!  |
В папке с программой есть папка Lists, а в ней файл HostSubst.txt. Вот в него и вставлять.
|
|
|
К началу |
Профиль Сообщение |
 |
гвоздик
Гость
|
Большое спасибо за помощь!
|
|
|
К началу |
|
 |
Гость
|
Втавил по указанному пути, но все равно включается закачка, а не выбрасывает на страницу загрузки.  Подставлять каждый раз в ссылку .html тяжеловато. Может что-то не так делаю? Помогите, пожалуйста.
|
|
|
К началу |
|
 |
gvozdik
Member

Зарегистрирован: 12.12.2006
Сообщения: 42
Откуда: Украина
|
chAlx писал(а): |
Код: |
( rapidshare.(de|com)/files/*. (^(htm|html)) [^/.]+ (^?) )\0 $SET(1=.html) |
|
Подскажите, пожалуйста, как и куда это вставить, чтобы заработало?
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
gvozdik:
Есть фильтр, который использует блоклист HostSubst. В этот блоклист и вставлять (не забыв включить флиьтр в режим out).
|
|
|
К началу |
Профиль Сообщение |
 |
gvozdik
Member

Зарегистрирован: 12.12.2006
Сообщения: 42
Откуда: Украина
|
chAlx ,
Я сильно извиняюсь, но поясните для ламера, какой фильтр нужно включить в режим out? Я только начинаю пользоваться этой программой. Запись в HostSubst.txt
Код: |
( rapidshare.(de|com)/files/*. (^(htm|html)) [^/.]+ (^?) )\0 $SET(1=.html) |
я внес, но какой включить фильтр, не знаю.
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
Я же ссылку дал на фильтр URL-Filter: URL substitute (out) [ALX]. Добавь его в список заголовочных и сохрани конфиг -- будет счастье. Добавить можно, скопировав в буфер и вызвав команду импорта (по правому клику) в списке заголовочных фильтров.
|
|
|
К началу |
Профиль Сообщение |
 |
gvozdik
Member

Зарегистрирован: 12.12.2006
Сообщения: 42
Откуда: Украина
|
chAlx , большое спасибо за терпение! Сейчас добавил фильтр в заголовочные фильтры. Прошу не судить строго так как я еще плохо знаю программу и методы обращения с ней.
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
S0ldier
Junior Member

Зарегистрирован: 14.10.2006
Сообщения: 31
Откуда: Беларусь
|
Код: |
(news.ferra.ru/hard/*/*/*/[#0-99999](^*/print))\5 $SET(1=\5/print/) |
В чём ошибка? Почему не работает?..
|
|
|
К началу |
Профиль Сообщение WWW ICQ |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
S0ldier:
Не знаю, что требовалось заменить, но проверку не-вхождения лучше вставлять перед фрагментом, в котором оно должно работать:
news.ferra.ru/*/(^666/)[#0:*]/
|
|
|
К началу |
Профиль Сообщение |
 |
S0ldier
Junior Member

Зарегистрирован: 14.10.2006
Сообщения: 31
Откуда: Беларусь
|
chAlx:
Нужно заменять URL вида *http://news.ferra.ru/hard/2006/12/21/64447 на *http://news.ferra.ru/hard/2006/12/21/64447/print/
|
|
|
К началу |
Профиль Сообщение WWW ICQ |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2629
Откуда: SPb
|
Код: |
(news.ferra.ru/(hard|soft|companies)[0-9/]+{3,*}(^?))\0 $SET(9=print/) |
|
|
|
К началу |
Профиль Сообщение |
 |
|