Форумы Форум www.proxomitron.ru
Все о программе Proxomitron
Главная  • FAQ для форума  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Личные сообщения  •  Вход
 Подмена адреса: URL-Filter: URL substitute (out) [ALX]
 Сайт -> Форумы » Фильтры
Следующая тема
Предыдущая тема

Новая тема  Ответить
Автор Сообщение
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Вс, Ноя 26 2006 16:21 Цитировать |  |  | 

#
# Фильтр вырос из топика Универсальный фильтр Печатный.
# Предназначен для шаблонной замены адресов в исходящих 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
Platinum Member


Зарегистрирован: 11.10.2006
Сообщения: 315

СообщениеДобавлено: Пн, Ноя 27 2006 01:32 Цитировать |  |  | 

Класс. Razz

Новый вариант думаю лучше, т.к. не всегда ссылки такие простые, бывают разного содержания для одного сайта (hard/soft), бывают оооочень длинные.

Предыдущее содержимое HostSubst легко подправить.

Нада потестировать, но вроде как все отлично работает. Спасибо.

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


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Пн, Ноя 27 2006 10:34 Цитировать |  |  | 

Nan0miT:

Напиши лучше, из какого URLа какой надо получить. Я понял, что как-то так:

( rapidshare.(de|com)/files/[^/]+/[^/.]+. (^(htm|html)) * )\0 $SET(1=.html)
К началу Профиль Сообщение
Nan0miT
Platinum Member
Platinum Member


Зарегистрирован: 11.10.2006
Сообщения: 315

СообщениеДобавлено: Вт, Ноя 28 2006 02:25 Цитировать |  |  | 

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
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Вт, Ноя 28 2006 10:34 Цитировать |  |  | 

Код:
( rapidshare.(de|com)/files/*. (^(htm|html)) [^/.]+ (^?) )\0 $SET(1=.html)
К началу Профиль Сообщение
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Вт, Ноя 28 2006 11:46 Цитировать |  |  | 

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


Зарегистрирован: 11.10.2006
Сообщения: 315

СообщениеДобавлено: Вт, Ноя 28 2006 13:00 Цитировать |  |  | 

Спасибо. Вроде работает. (Не подумал насчет ограничения после html).
К началу Профиль Сообщение
гвоздик
Гость





СообщениеДобавлено: Пн, Дек 11 2006 20:11 Цитировать |  |  | 

chAlx писал(а):
Код:
( rapidshare.(de|com)/files/*. (^(htm|html)) [^/.]+ (^?) )\0 $SET(1=.html)

А куда и как его вставлять? Объясните для тех, кто в танке, пожалуйста! Embarassed
К началу
Nan0miT
Platinum Member
Platinum Member


Зарегистрирован: 11.10.2006
Сообщения: 315

СообщениеДобавлено: Вт, Дек 12 2006 05:43 Цитировать |  |  | 

гвоздик писал(а):
chAlx писал(а):
Код:
( rapidshare.(de|com)/files/*. (^(htm|html)) [^/.]+ (^?) )\0 $SET(1=.html)

А куда и как его вставлять? Объясните для тех, кто в танке, пожалуйста! Embarassed

В папке с программой есть папка Lists, а в ней файл HostSubst.txt. Вот в него и вставлять.
К началу Профиль Сообщение
гвоздик
Гость





СообщениеДобавлено: Вт, Дек 12 2006 07:57 Цитировать |  |  | 

Большое спасибо за помощь! Smile
К началу
Гость






СообщениеДобавлено: Вт, Дек 12 2006 08:54 Цитировать |  |  | 

Втавил по указанному пути, но все равно включается закачка, а не выбрасывает на страницу загрузки. Sad Подставлять каждый раз в ссылку .html тяжеловато. Может что-то не так делаю? Помогите, пожалуйста. Sad
К началу
gvozdik
Member
Member


Зарегистрирован: 12.12.2006
Сообщения: 42
Откуда: Украина

СообщениеДобавлено: Вт, Дек 12 2006 20:49 Цитировать |  |  | 

chAlx писал(а):
Код:
( rapidshare.(de|com)/files/*. (^(htm|html)) [^/.]+ (^?) )\0 $SET(1=.html)

Подскажите, пожалуйста, как и куда это вставить, чтобы заработало? Embarassed
К началу Профиль Сообщение ICQ
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Вт, Дек 12 2006 21:59 Цитировать |  |  | 

gvozdik:

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


Зарегистрирован: 12.12.2006
Сообщения: 42
Откуда: Украина

СообщениеДобавлено: Ср, Дек 13 2006 07:24 Цитировать |  |  | 

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


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Ср, Дек 13 2006 10:15 Цитировать |  |  | 

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


Зарегистрирован: 12.12.2006
Сообщения: 42
Откуда: Украина

СообщениеДобавлено: Ср, Дек 13 2006 12:09 Цитировать |  |  | 

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


Зарегистрирован: 14.10.2006
Сообщения: 31
Откуда: Беларусь

СообщениеДобавлено: Чт, Дек 21 2006 15:44 Цитировать |  |  | 

Код:
(news.ferra.ru/hard/*/*/*/[#0-99999](^*/print))\5 $SET(1=\5/print/)

В чём ошибка? Почему не работает?..
К началу Профиль Сообщение WWW ICQ
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Чт, Дек 21 2006 16:58 Цитировать |  |  | 

S0ldier:

Не знаю, что требовалось заменить, но проверку не-вхождения лучше вставлять перед фрагментом, в котором оно должно работать:

news.ferra.ru/*/(^666/)[#0:*]/
К началу Профиль Сообщение
S0ldier
Junior Member
Junior Member


Зарегистрирован: 14.10.2006
Сообщения: 31
Откуда: Беларусь

СообщениеДобавлено: Чт, Дек 21 2006 21:40 Цитировать |  |  | 

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
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Чт, Дек 21 2006 23:28 Цитировать |  |  | 

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

 Перейти:   




Следующая тема
Предыдущая тема
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


P o w e r e d b y p h p B B © p h p B B G r o u p :: T h e m e b a s e d o n FI T h e m e :: Часовой пояс: GMT + 3