WatzNew

Я всегда вовремя узнаю о новостях тех сайтов, которые мне интересны. При этом я не проверяю обновления каждый день – их слишком много, и на это уйдет прорва времени, которого и без того всегда не хватает. Более того, я никогда не подписываюсь на рассылки этих сайтов – спама и без этого килограммы приходят. И, тем не менее, я всегда в курсе.

Элегантное решение, позволяющее знать все обо всем, называется Watznew. Эта небольшая программа с заданной периодичностью проверяет странички на предмет обновлений и, буде таковые случились, сигнализирует об этом.

Разумеется, не все изменения нас интересуют – мало кому нужно знать о появлении нового баннера на страничке. Выбрать интересующую часть можно с помощью довольно примитивного, но, тем не менее, эффективного механизма шаблонов. При этом программа не просто сигнализирует о случившихся изменениях, а выводит то, что вы захотите. Так для новостного сайта это может быть заголовок последней статьи, для сайта с метеосводкой – прогноз погоды на завтра и т.д. Иногда этого вполне достаточно и на сайт можно не ходить вовсе.

Начнем, как водится, с конца – с результатов:

Теперь расскажу о том, как я создал канал, транслирующий новости любимого сервера - http://www.rusc.ru. Первым делом File / Add New / Setup a new HTTP channel, в соответствующем месте вводим URL новостной странички - http://www.rusc.ru и указываем периодичность проверок – 3 часа. По большому счету этого уже достаточно. Как только страничка изменится, программа нам об этом сообщит.

Однако хочется, чтобы при этом выводились заголовки новостей. Откроем окно свойств созданного канала (Channel Properties / Search Pattern) и посмотрим HTML код страницы, нажав на :

... ерунда ...
Последние новости:</font></b></td></tr>
<tr><td><img src="/images/trans.gif" width=1 height=5></td></tr>
<tr bgcolor=#4D6473><td><b>
<a class=sref href="/cgi-bin/newslist.pl?day=21&year=2002&month=06"&gt;
21 Июня 2002 г.
</a></b></div></td></tr><tr bgcolor=#8F9EA7><td>
<a class=tref href="/cgi-bin/newslist.pl?day=21&year=2002&month=06#a1024682527">
<b>Apache vs. IIS</b></a></div></td></tr>
... тут еще куча новостей ...
<tr bgcolor=#8F9EA7><td>
<a class=tref href="/cgi-bin/newslist.pl?day=21&year=2002&month=06#a1024666252">
<b>Unreal Tournament 2003 build #927</b></a></div></td></tr>
<tr bgcolor=#8F9EA7><td>
<a class=tref href="/cgi-bin/newslist.pl?day=21&year=2002&month=06#a1024605903">
<b>Internet Zone 279</b></a></div></td></tr>
<tr><td><img src="/images/trans.gif" width=1 height=6></td></tr>
<tr bgcolor=#4D6473><td><b>
<a class=sref href="/cgi-bin/newslist.pl?day=20&year=2002&month=06">
... на этом месте новости заканчиваются ...

Особо мудрить не будем, просто на глазок прикинем, как можно найти начало и конец новостей. На приведенном куске HTML кода я выделил цветом эти «границы».

В языке шаблонов Watznew это может быть записано как:

Последние новости:{*}">{%}</a>{%}<a class=sref href="/cgi-bin/newslist.pl

Как вы можете догадаться, {%} обозначает текст, который нам интересен. Замечу, что использовать {%} можно не один раз, выкусывая из странички разную информацию. Первая такая последовательность при выводе сообщения будет обозначаться %1, вторая – %2 и т.д. В нашем случае %1 будет означать дату, взятую со странички, а %2 – текст новостей.

{} обозначает последовательность любых символов, которые нас не интересуют и будут проигнорированы. Полезно, если часть страницы может произвольным образом меняться. Я использовал {} для того, чтобы пропустить некоторое количество тегов, которые мне писать было лень, к тому же без них шаблон выглядит понятней.

Все остальные знаки в шаблоне обозначают сами себя.

После ввода шаблона еще раз жмем на изображение лупы, дабы убедиться, что все сделано правильно. В нижней половине окна будут показаны значения переменных %1, %2, и т.д.:

Теперь осталось перейти на закладку «Message Template» и сформулировать, что именно должна нам «сказать» программа при обновлении страницы. Приблизительно таким вот образом:

Новости за %1:\n
%2

Для самых ленивых

Я подозреваю, что большая часть моих читателей просто не захочет создавать каналы самостоятельно - лениво станет. Ну что ж, автор программы ведет целую библиотеку каналов. Там уже есть готовые каналы для большинства известных сайтов, остается их только скачать.

Для самых любопытных

Помимо вышесказанного WatzNew отслеживает появление писем в ваших почтовых ящиках, синхронизирует время со специально обученными серверами точного времени и умеет использовать Perl для выполнения особо хитрых вещей.

Кстати, если вы делаете свою страничку, то рекомендую выполнить следующий трюк – после создания канала укажите его в HTML коде, например, таким вот образом:

<title>Записки Занятых</title>

<!-- WatzNew channel [Записки Занятых] Type=HttpDocument NotifyMethod=PopupWindow NotifySoundOn=0 Host=notes.rusc.ru SearchPattern=Последние записки</td><td class=menuhdr width=12> </td></tr><tr valign=top><td width=12 class=menu> <img src=/notes/images/menu-bullet.gif width=8 height=8 alt=''></td> <td width=163 class=menu>{%}</td> MsgTemplate=Новая записка: %1 Interval=3 IntervalUnit=1 ExtInterval=3 ExtIntervalUnit=1 -->

...

После этого, если кто-нибудь попытается создать канал для вашего сайта, то ему будет предложен именно ваш вариант – WatzNew проявляет интеллект.

Практически завершив очередную статью, я понял, что самое грустное и самое смешное едва не осталось за кадром.

Грустное и смешное

Грустное – программа далеко не бесплатна. А всем известно, что лекарства от жадности раздают тут. Однако асталависта сделала мне ручкой и сообщила, что версия 1.9 еще никем не сломана. Ожидать этого можно с минуты на минуту – выпущена она была не очень давно. Следовательно, появление лекарства от жадности следует поджидать совсем скоро. Вот для проверки, не появилось ли оно, и была приспособлена… программа watznew. Так сказать, с особой циничностью: