Добавить в цитаты Настройки чтения

Страница 30 из 133

· $server=«FH»;

· $server=~ s/n//;

· $group=«FH»;

· $group =~ s/n//;

·}

· else

· {

· print "failn";

·}

·

· print "Server [$server]:";

· $tmp=«»; if (length($tmp)»2) {$server=$tmp; $server=~ s/n//;}

·

·

· print "Command (MSG|LIST|EXIT):";

· $tmp=«»;

·

· if ($tmp=~/MSGn/)

· {

· print "Group [$group]:";

· $tmp=«»;

· if (length($tmp)»2) {$group=$tmp; $group=~ s/n//;}

· getmsg();

·}

·

· if ($tmp=~/LISTn/)

· {

· LIST();

·}

·

· if ($tmp=~/EXITn/)

· {

· EXIT();

·}

·

· #Сохраняем настойки в файле

· if (open(FH,"»nr.cfg"))

· {

· print FH "$servern";

· print FH "$groupn";

·}

· close (FH);

·

·

· sub getmsg()

· {

·

· $cmdcount=0;

· print "Co

· socket(NNTP, PF_INET(), SOCK_STREAM(), getprotobyname("tcp") || 6);

· co

· print "ok!n";

·

· recv(NNTP,$rc,200,0); # Приглашение сервеа

· print "$rcn";

·

· send(NNTP,"GROUP $grouprn",0); # Выбор группы

· $group_res=«NNTP»;

· if(substr($group_res,0,3)-411)

· {

· print "$group_resn";

· die;

·}

· print "$group_resn";

·

· open(FH,"»$msgfile"); # Открыть файл сообщений

· print FH "$group_resn";

· $cmdcount=0;

·

· $reader=1; # цикл

· $msgdone=0; # Сообщений прочитано

·

· while($reader)

· {

· send(NNTP,"ARTICLErn",0); # Новая статья

·

· while(substr(($rc=«NNTP»),0,3)!~/.rn/)

· {# Чтение статьи

·

· if (!$rc) {print "Close co

· print FH $rc;

·}

· print FH $rc;

· $msgdone++; # Следующее сообщение

· print "=$msgdone;r"; # Протокол на экран

·

· send(NNTP,"NEXTrn",0); # Следующее сообщение

· $nx=«NNTP»;

·

· $add=1;

· while($add)

· {

· if (substr($nx,0,1)!~/./){$add=0;}

· if (substr($nx,0,1)=~/./){$nx=«NNTP»;}

·

·}

· $nx++;

·

· if ($nx-422) {$reader=0;} # Выход из цикла

·}

·

· close (FH);

·

· if (open(CF,"$msgfile.gz")) # Удалить файл если он уже есть!

· {

· close(CF);

· unlink("$msgfile.gz");

·}

·

· open(FG,"|gzip $msgfile"); # Сжать!

· print "Donen";

· close(NNTP);

·}

·

· sub LIST()

· {

· print "Co

· socket(NNTP, PF_INET(), SOCK_STREAM(), getprotobyname("tcp") || 6);

· co

· print "okn";

·

· recv(NNTP,$rc,200,0);

· print $rc;

·

· print "»LISTn";

· send(NNTP,"LISTrn",0);

·

· open(FH,"»$listfile");

· print FH "Server: $server nLIST:n";

·

· $cmdcount=0;

·