parser

/faq/faq
/authors/авторы
/docs/документация

/powered_by_parser/в действии
/feedback/куда говорить
/jargon/жаргон

/download/скачать

/examples/примеры
/forum/форум



Поиск по форуму

По умолчанию ключевое слово ищется только в заголовке сообщения.

Ключевое слово:

Фильтровать по автору:



ICQ online status

Sanja | bougakov@mailru.com 13.10.2001 00:05

Наверное, я сильно не в тему, но, тем не менее, надеюсь, что мне кто-нибудь поможет..

Вытащить удалённый файл по HTTP парсер не умеет, посему вызываем маленький перловый скрипт такого вот содержания с помощью ^exec[]

#!/usr/bin/perl
print "Content-type: text/html\n\n";
 
use LWP::Simple;
 
my $uin="84619830";

my $url="http://wwp.icq.com/scripts/" . 
   "online.dll?icq=${uin}&img=2";
my $cachefile="temp/icqstatus.temp.gif";

my $messageonline="<font color=green><nobr>" . 
   "В онлайне ;-)</nobr></font>";
my $messageoffline="<font color=red><nobr>В" . 
   " оффлайне :-(</nobr></font>";
my $messageunknown="<font color=gray>" . 
   "<nobr>Неизвестно :-|</nobr></font>";

my $html = get $url;

open(CLEAR, ">$cachefile");
print CLEAR "Empty file.";
close(CLEAR);
if (defined $html){
 open(CACHE, ">$cachefile") || 
  die $messageunknown;
 binmode(CACHE);
 print CACHE $html;
 close(CACHE)
}
 
my $size=(stat($cachefile))[7];

# Размер '$url' составляет: $size байт, а должно быть:
#  1035 байт, когда статус неизвестен (т.е. WebAware выключен)
#   653 байт, когда ICQ в онлайне
#   670 байт, когда ICQ в оффлайне
#    11 байт, когда не удалось связяться с www.icq.com

print "<p><a href=\"http://www.icq.com/\"><img";
print "src=\"http://www.icq.com/images/downloadanim.gif\"";
print "alt=\"\" valign=baseline width=\"32\" height=\"32\"";
print " border=\"0\"></a> <font size=+2><b>Состояние моей";
print " ICQ $uin:</b> ";

if ($size == "653"){
 print $messageonline;
}
elsif ($size == "670"){
 print $messageoffline;
}
else {
 print $messageunknown;
}
print "</b></font>";
Скрипт делает чрезвычайно простую вещь - определяет, в онлайне ли я, хозяин сайта, основываясь на размере стандартной картинки-индикатора, и на этой основе выводит сообщение на странце (а можно и формочку нарисовать или ещё что).

Трабл в том, что icq.com теперь не выводит картинку, а осуществляет редирект на другой адрес, где и располагается искомый гифчик - и я не знаю, как выяснить свой online presence status скриптом.

Ау, откликнитесь те, кто сталкивался с проблемой выяснения состояния ICQ из перла или же, желательно, из Парсера. Так не хочется вставлять в страницы уродские картинки, предлагаемые на ICQ.com... Может быть, существуют и другие, без использования LWP / Wget'оподобных методов, способы определения состояния ICQ?

<<  Вернуться к списку сообщений


E-mail: mailbox@parser.ruCopyright © 1997-2001 Студия Артемия Лебедева