Toon posts:

[Perl] $nntp->head()

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer met een Perl script het een en ander van uit nieuwsgroepen te leechen.

Ik maak gebruik van Net::NNTP. Meer info over deze module kan je vinden op http://search.cpan.org/dist/libnet/Net/NNTP.pm.

Nu haal ik uit een groep het eerste ($first_server) en het laatste nummer ($last_server) van alle articles. Met $nntp->head($article); haal je een header op van het artikel wat je speceficeert in $article; zie ook bovenstaande link.

Perl:
1
2
3
4
5
6
7
8
9
10
11
...
       $article = $first_server;        
       while($article < $last_server)
        {
    $header = $nntp->head($article);

                print $header;

                $article++;
        }
...


Nu krijg ik alleen maar errors dat $header niet bestaat zodra ik het script uitvoer. Als ik $code = $nntp->code(); draai na elke $header = $nntp->head($article); binnen de while-lus, krijg ik ook telkens code 423 terug van de server, wat betekent dat het artikel niet gevonden is.

Hoe kan dit? Heeft iemand hier ervaring mee? Ik kan er zeer weinig over vinden op GoT en Google.

  • BOOTZ
  • Registratie: Maart 2001
  • Laatst online: 09-02 10:21
Hoe kom je aan de $first_server en de $last_server? Ik kan daarover op de manpage niks terugvinden.

Wat wel op de manpage staat is dat je een lijst (array) terug kan krijgen met alle message-id's er in. Misschien is het een idee om een foreach te doen over die lijst? Je krijgt dan zoiets:

Perl:
1
2
3
4
5
6
7
8
@articles = $nntp->newnews(0);
  # de 0 hierboven is een timestamp (unixtime) sinds
  # wanneer je nieuwe headers wilt hebben

foreach $article (@articles) {
    $header = $nntp->head($article);
    print $header;
}

Maak je eigen poll


Verwijderd

Topicstarter
group ( [ GROUP ] )
Set and/or get the current group. If GROUP is not given then information is returned on the current group.

In a scalar context it returns the group name.

In an array context the return value is a list containing, the number of articles in the group, the number of the first article, the number of the last article and the group name.


Jouw foreach is inderdaad een goede. Ga ik proberen :) .