fixed confusion over DXCluster->get_exact and DXUser->get
[spider.git] / cmd / set / node.pl
index 78baa1893397aa84d018d086169a36487663b826..2a8c1479508b12c303c6da25a20ee503f2a1c887 100644 (file)
@@ -13,23 +13,26 @@ my @args = split /\s+/, $line;
 my $call;
 my @out;
 my $user;
+my $create;
 
-return (0) if $self->priv < 5;
+return (1, $self->msg('e5')) if $self->priv < 5;
 
 foreach $call (@args) {
-  $call = uc $call;
-  my $chan = DXChannel->get($call);
-  if ($chan) {
-       push @out, DXM::msg('nodee1', $call);
-  } else {
-    $user = DXUser->get($call);
-       if ($user) {
-         $user->sort('A');
-         $user->close();
-      push @out, DXM::msg('node', $call);
+       $call = uc $call;
+       my $chan = DXChannel->get($call);
+       if ($chan) {
+               push @out, $self->msg('nodee1', $call);
        } else {
-      push @out, DXM::msg('e3', "Set Node", $call);
+               $user = DXUser->get($call);
+               $create = !$user;
+               $user = DXUser->new($call) if $create;
+               if ($user) {
+                       $user->sort('A');
+                       $user->close();
+                       push @out, $self->msg($create ? 'nodec' : 'node', $call);
+               } else {
+                       push @out, $self->msg('e3', "Set Node", $call);
+               }
        }
-  }
 }
 return (1, @out);