Страница 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;
·