add set/believe code
[spider.git] / cmd / set / believe.pl
diff --git a/cmd/set/believe.pl b/cmd/set/believe.pl
new file mode 100644 (file)
index 0000000..aa31b36
--- /dev/null
@@ -0,0 +1,38 @@
+#
+# Add a believable node - used to filter nodes as being believable
+#
+# Copyright (c) 2004 - Dirk Koopman
+#
+# $Id$
+#
+
+my ($self, $line) = @_;
+my @args = split /\s+/, uc $line;
+my $call;
+my $node = shift @args;
+my @out;
+my @nodes;
+
+return (1, $self->msg('e5')) if $self->priv < 6;
+return (1, $self->msg('e22', $node)) unless is_callsign($node);
+my $user = DXUser->get_current($node);
+return (1, $self->msg('e13', $node)) unless $user->is_node;
+
+foreach $call (@args) {
+       return (1, $self->msg('e22', $node)) unless is_callsign($call);
+
+       my $u = DXUser->get_current($call);
+       if ($u->is_node) {
+                       push @nodes, $call;
+       } else {
+                       push @out, $self->msg('e13', $call);
+       }
+}
+
+foreach $call (@nodes) {
+       $user->set_believe($call);
+       push @out, $self->msg('believes', $call, $node);
+}
+$user->put if @nodes;
+               
+return (1, @out);