1 package URI::news; # draft-gilman-news-url-01
7 use URI::Escape qw(uri_unescape);
10 sub default_port { 119 }
12 # newsURL = scheme ":" [ news-server ] [ refbygroup | message ]
13 # scheme = "news" | "snews" | "nntp"
14 # news-server = "//" server "/"
15 # refbygroup = group [ "/" messageno [ "-" messageno ] ]
16 # message = local-part "@" domain
21 my $old = $self->path;
23 my($group,$from,$to) = @_;
25 $group =~ s/^<(.*)>$/$1/; # "<" and ">" should not be part of it
32 $path .= "-$to" if defined $to;
38 if ($old !~ /\@/ && $old =~ s,/(.*),, && wantarray) {
40 return (uri_unescape($old), split(/-/, $extra));
50 Carp::croak("Group name can't contain '\@'") if $_[0] =~ /\@/;
52 my @old = $self->_group(@_);
53 return if $old[0] =~ /\@/;
54 wantarray ? @old : $old[0];
61 Carp::croak("Message must contain '\@'") unless $_[0] =~ /\@/;
63 my $old = $self->_group(@_);
64 return unless $old =~ /\@/;