[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Usenet-Artikel finden (was: Re: [Debian] Frage an pan Experten)



> Zweitens: Wenn ich tausend postings vor mir sehe, dann wär es
> obendrein praktisch, wenn die Zeile in der mein Name vorkommt
> durch eine Farbe hervorgehoben wäre.

Ich habe für sowas ein Extraprogramm, daher ist es für jeden
Newsreader (mit .newsrc) geeignet :-)

--cut-here--
#!/usr/bin/perl -w
use strict;
use News::Newsrc;
use Set::IntSpan;
use News::NNTPClient;
my $newsrc = new News::Newsrc; $newsrc->load or die "Cannot load .newsrc: $!\n";
my $nntp = new News::NNTPClient("localhost", 119) || die "Cannot open newsserver: $!\n"; 
$nntp->mode_reader; my $toread = 0; $nntp->debug(0);
GROUP: for my $group (sort $newsrc->sub_groups) {
  my $read= Set::IntSpan->new($newsrc->get_articles($group));
  my ($first, $last) = $nntp->group($group);
  if ($first == 0 || $last == 0) { next GROUP; }
  if (!defined($read) || !defined($read->max)) { next GROUP; }
  if ($read->max > $last) { next GROUP; }
  my $avail = Set::IntSpan->new("$first-$last"); $read = run_list $read;
  my $diff = diff $avail $read; my $diff1 = run_list $diff;
  my $unread = cardinality $diff; $toread += $unread;
  next GROUP unless $unread; my $got = 0;
  print STDERR "$group ";
  ART: for (my $art = $diff->first; defined $art; $art=$diff->next) {
      next ART unless $nntp->stat($art);
      $got++; my @article = $nntp->article($art);
      for (@article) {
	if (/FOO/oi || /BAR/oi) { print "Group: $group Article: $art\n"; print @article; print "\n"; next ART; }
      }
    }
  print STDERR "$got"; if ($got != $unread) { print STDERR " !!!"; }; print STDERR "\n";

}
if ($toread) { print STDERR "$toread\n"; }
--cut-here--

Als "newsgrep" abspeichern, FOO und BAR anpassen und dann mit

    newsgrep >artikel.txt && less artikel.txt

suchen und lesen.

HTH
-- 
"I'm working on it."   <http://www.psyche.kn-bremen.de/>
<http://www.amazon.de/exec/obidos/wishlist/AQP0BN7EPJIH>

-- 
-----------------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie bitte eine
E-Mail an debian-user-de-request@lehmanns.de die im Subject
"unsubscribe <deine_email_adresse>" enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@Lehmanns.de
-----------------------------------------------------------

1088 eingetragene Mitglieder in dieser Liste.


Reply to: