WatzNew

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

Элегантное решение, позволяющее знать все обо всем, называется href="http://www.watznew.com">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. Так
сказать, с особой циничностью:

Комментирование закрыто.