Тема: трекер icq
Показать сообщение отдельно

  #4  
Старый 22.10.2007, 10:58
Nova
OpenVPN.CC
Регистрация: 15.07.2005
Сообщений: 1,599
С нами: 10958786

Репутация: 1034


По умолчанию

PHP код:
#!/usr/bin/perl

################
#      Code by PAA         #
################

use LWP::UserAgent;
use 
Mail::Sender;

$icq='641093';
$downmins=40;

$cur=check($icq);
my ($was,$icqtime,$smsstatus)=get($icq);
if((
$was == 0) && ($cur == 1))
{
    
#SMS ONLINE
    
if($smsstatus == 0)
    {
        
sms_event('+71111111111@sms.beline.ru',"$icq online");
        
$smsstatus=1;
    }
    
set($icq,1,time,$smsstatus);
}
elsif($cur == 0)
{
    
$icqtime = time if($was == 1);
    if((
time - $icqtime > $downmins*60) && ($smsstatus == 1))
    {
        
#SMS OFFLINE $downmins MINS
        
sms_event('+71111111111@sms.beline.ru',"$icq offline $downmins mins");
        
$smsstatus=0;
    }
    
set($icq,0,$icqtime,$smsstatus);
}


sub check
{
    
my $icq = shift;
    
my $link="http://status.icq.com/online.gif?icq=$icq&img=5";
    
my $res = LWP::UserAgent->new->request(new HTTP::Request GET => $link);
    
#print $res->request->url."\n";
    
if($res->request->url =~ /http:\/\/status.icq.com\/5\/online(\d).gif/)
    {
        return $
1;
    }
}

sub get
{
    
my $icq = shift;
    
my $file="/tmp/status$icq";
    
my $icqstatus;
    
my $icqtime;
    
my $smsstatus;
    if(-
e $file && -s $file)
    {
        
open(F,$file);
        
chomp($icqstatus=<F>);
        
chomp($icqtime=<F>);
        
chomp($smsstatus=<F>);
        
close F;
        
$icqstatus='0' if ($icqstatus ne '1');
        
$smsstatus='0' if ($smsstatus ne '1');
        return (
$icqstatus,$icqtime,$smsstatus);
    }
    else
    {
        return (
0,time,0);
    }
}

sub set
{
    
my $icq = shift;
    
my $icqstatus=shift;
    
my $icqtime=shift;
    
my $smsstatus=shift;
    
$icqstatus='0' if ($icqstatus ne '1');
    
$smsstatus='0' if ($smsstatus ne '1');
    
my $file="/tmp/status$icq";
    
open F,"> $file";
    print 
F "$icqstatus\n$icqtime\n$smsstatus\n";
    
close F;
}

sub sms_event
{
    
my $to=shift;
    
my $message=shift;
    
$message=~s/\n$//g;
    
my $from = 'icq@mail.sru';
    
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
    
$mon++;    $year+=1900;
    
my $time=sprintf("%02d:%02d %02d.%02d.%04d",$hour,$min,$mday,$mon,$year);

    
$Mail::Sender::NO_X_MAILER = 1;
    
my $sender = new Mail::Sender {smtp => 'smtp.mail.sru', from => 'icq@mail.sru'};
    
#$sender->MailMsg({to => $to, msg => "$message\n$time", charset => 'Windows-1251'});
    
$sender->MailMsg({to => $to, msg => "$message\n$time", charset => 'Windows-1251'});
} 
Вот тебе на подобе скриптеГ
 
Ответить с цитированием