summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
e0e6a2d)
commands (for example to set variables) to a file called
/spider/scripts/startup. You can also put in scripts for a callsign which
will be executed when that callsign logs on. A sample script is in the
directory (you did remember to do cvs update -d?). User settable versions
of this will happen when the general mechanism for doing that is available.
2. Added set/unset/anntalk commands. If you unset/anntalk then you will
no longer see many of the of talk like announces. Unfortunately you may
miss the odd useful one as well (but since everything is repeated many times
you probably won't :-)
+14Sep01=======================================================================
+1. added the start of script files on login/startup. You can now add
+commands (for example to set variables) to a file called
+/spider/scripts/startup. You can also put in scripts for a callsign which
+will be executed when that callsign logs on. A sample script is in the
+directory (you did remember to do cvs update -d?). User settable versions
+of this will happen when the general mechanism for doing that is available.
+2. Added set/unset/anntalk commands. If you unset/anntalk then you will
+no longer see many of the of talk like announces. Unfortunately you may
+miss the odd useful one as well (but since everything is repeated many times
+you probably won't :-)
13Sep01=======================================================================
1. did some work on making talk more intelligent and fixed a>b problem.
2. fixed a nasty problem on input when being hit with full buffers of
13Sep01=======================================================================
1. did some work on making talk more intelligent and fixed a>b problem.
2. fixed a nasty problem on input when being hit with full buffers of
=== 0^SET/ANNOUNCE^Allow announce messages to come out on your terminal
=== 0^UNSET/ANNOUNCE^Stop announce messages coming out on your terminal
=== 0^SET/ANNOUNCE^Allow announce messages to come out on your terminal
=== 0^UNSET/ANNOUNCE^Stop announce messages coming out on your terminal
+=== 0^SET/ANNTALK^Allow talk like announce messages on your terminal
+=== 0^UNSET/ANNTALK^Stop talk like announce messages on your terminal
+The announce system on legacy cluster nodes is used as a talk
+substitute because the network is so poorly connected. If you:
+
+ unset/anntalk
+
+you will suppress several of these announces, you may miss the odd
+useful one as well, but you would probably miss them anyway in the
+welter of useless ones.
+
+ set/anntalk
+
+allows you to see them again. This is the default.
+
=== 5^SET/ARCLUSTER <call> [<call>..]^Make the callsign an AR-Cluster node
=== 5^SET/ARCLUSTER <call> [<call>..]^Make the callsign an AR-Cluster node
-=== 8^SET/BADDX <call>..^Stop words we do not wish to see in the callsign field
-of a dx spot being propagated
-=== 8^UNSET/BADDX <call>..^Allow a word to be seen again in a DX spot
-Setting a word as 'baddx' will prevent spots with that word in the
-callsign field of a DX spot from going any further. They will not be
-displayed and they will not be sent onto other nodes.
+=== 8^SET/BADDX <call>..^Stop callsigns in a dx spot being propagated
+=== 8^UNSET/BADDX <call>..^Propagate a dx spot with this callsign again
+Setting a word as 'baddx' will prevent spots with that word in the
+'spotted' field (as in: DX 14001.1 FR0G)of a DX spot from going any
+further. They will not be displayed and they will not be sent onto
+other nodes.
-The word must be wriiten in full, no wild cards are allowed eg:-
+The word must be written in full, no wild cards are allowed eg:-
set/baddx FORSALE VIDEO FR0G
set/baddx FORSALE VIDEO FR0G
Use with extreme care. This command may well be superceded by FILTERing.
Use with extreme care. This command may well be superceded by FILTERing.
+=== 8^SET/BADWORD <word>..^Stop things with this word being propagated
+=== 8^UNSET/BADWORD <word>..^Propagate things with this word again
+Setting a word as a 'badword' will prevent things like spots,
+announces or talks with this word in the the text part from going any
+further. They will not be displayed and they will not be sent onto
+other nodes.
+
+The word must be written in full, no wild cards are allowed eg:-
+
+ set/badword annihilate annihilated annihilation
+
+will stop anything with these words in the text.
+
+ unset/badspotter annihilated
+
+will allow text with this word again.
+
=== 0^SET/BEEP^Add a beep to DX and other messages on your terminal
=== 0^UNSET/BEEP^Stop beeps for DX and other messages on your terminal
=== 0^SET/BEEP^Add a beep to DX and other messages on your terminal
=== 0^UNSET/BEEP^Stop beeps for DX and other messages on your terminal
Display all the bad spotter's callsigns in the system, see SET/BADSPOTTER
for more information.
Display all the bad spotter's callsigns in the system, see SET/BADSPOTTER
for more information.
+=== 1^SHOW/BADWORD^Show all the bad words in the system
+Display all the bad words in the system, see SET/BADWORD
+for more information.
+
=== 0^SHOW/CONFIGURATION [<node>]^Show all the nodes and users visible
This command allows you to see all the users that can be seen
and the nodes to which they are connected.
=== 0^SHOW/CONFIGURATION [<node>]^Show all the nodes and users visible
This command allows you to see all the users that can be seen
and the nodes to which they are connected.
--- /dev/null
+#
+# set the allow talklike announce flag
+#
+# Copyright (c) 1998 - Dirk Koopman
+#
+# $Id$
+#
+
+my ($self, $line) = @_;
+my @args = split /\s+/, $line;
+my $call;
+my @out;
+
+@args = $self->call if (!@args || $self->priv < 9);
+
+foreach $call (@args) {
+ $call = uc $call;
+ my $chan = DXChannel->get($call);
+ if ($chan) {
+ $chan->ann_talk(1);
+ $chan->user->wantann_talk(1);
+ push @out, $self->msg('annts', $call);
+ } else {
+ push @out, $self->msg('e3', "Set Ann_Talk", $call);
+ }
+}
+return (1, @out);
--- /dev/null
+#
+# unset the allow talklike announce flag
+#
+# Copyright (c) 1998 - Dirk Koopman
+#
+# $Id$
+#
+
+my ($self, $line) = @_;
+my @args = split /\s+/, $line;
+my $call;
+my @out;
+
+@args = $self->call if (!@args || $self->priv < 9);
+
+foreach $call (@args) {
+ $call = uc $call;
+ my $chan = DXChannel->get($call);
+ if ($chan) {
+ $chan->ann_talk(0);
+ $chan->user->wantann_talk(0);
+ push @out, $self->msg('anntu', $call);
+ } else {
+ push @out, $self->msg('e3', "Unset Ann_Talk", $call);
+ }
+}
+return (1, @out);
senddbg => '8,Sending Debug,yesno',
width => '0,Column Width',
disconnecting => '9,Disconnecting,yesno',
senddbg => '8,Sending Debug,yesno',
width => '0,Column Width',
disconnecting => '9,Disconnecting,yesno',
+ ann_talk => '0,Suppress Talk Anns,yesno',
);
use vars qw($VERSION $BRANCH);
);
use vars qw($VERSION $BRANCH);
use WCY;
use Sun;
use Internet;
use WCY;
use Sun;
use Internet;
-use vars qw(%Cache %cmd_cache $errstr %aliases $scriptbase $maxerrors %nothereslug $suppress_ann_to_talk);
+use vars qw(%Cache %cmd_cache $errstr %aliases $scriptbase $maxerrors %nothereslug);
%Cache = (); # cache of dynamically loaded routine's mod times
%cmd_cache = (); # cache of short names
%Cache = (); # cache of dynamically loaded routine's mod times
%cmd_cache = (); # cache of short names
%aliases = (); # aliases for (parts of) commands
$scriptbase = "$main::root/scripts"; # the place where all users start scripts go
$maxerrors = 20; # the maximum number of concurrent errors allowed before disconnection
%aliases = (); # aliases for (parts of) commands
$scriptbase = "$main::root/scripts"; # the place where all users start scripts go
$maxerrors = 20; # the maximum number of concurrent errors allowed before disconnection
-$suppress_ann_to_talk = 1; # don't announce 'to <call> ' or '<call> ' type announcements
-
use vars qw($VERSION $BRANCH);
$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
use vars qw($VERSION $BRANCH);
$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
$self->{wx} = $user->wantwx;
$self->{dx} = $user->wantdx;
$self->{logininfo} = $user->wantlogininfo;
$self->{wx} = $user->wantwx;
$self->{dx} = $user->wantdx;
$self->{logininfo} = $user->wantlogininfo;
+ $self->{ann_talk} = $user->wantann_talk;
$self->{here} = 1;
# get the filters
$self->{here} = 1;
# get the filters
run_cmd($DXProt::me, "forward/opernam $call");
$user->lastoper($main::systime);
}
run_cmd($DXProt::me, "forward/opernam $call");
$user->lastoper($main::systime);
}
+
+ # run a script send the output to the punter
+ my $script = new Script(lc $call);
+ $script->run($self) if $script;
my $text = shift;
my ($filter, $hops);
my $text = shift;
my ($filter, $hops);
- if ($suppress_ann_to_talk && $to ne $self->{call}) {
+ if (!$self->{ann_talk} && $to ne $self->{call}) {
my $call = AnnTalk::is_talk_candidate($_[0], $text);
my $call = AnnTalk::is_talk_candidate($_[0], $text);
- return if $call && Route::get($call);
}
if ($self->{annfilter}) {
}
if ($self->{annfilter}) {
use DXHash;
use Route;
use Route::Node;
use DXHash;
use Route;
use Route::Node;
$badspotter = new DXHash "badspotter";
$badnode = new DXHash "badnode";
$last10 = $last_pc50 = time;
$badspotter = new DXHash "badspotter";
$badnode = new DXHash "badnode";
$last10 = $last_pc50 = time;
# send info to all logged in thingies
$self->tell_login('loginn');
# send info to all logged in thingies
$self->tell_login('loginn');
+
+ # run a script send the output to the debug file
+ my $script = new Script(lc $call);
+ $script->run($self) if $script;
nopings => '9,Ping Obs Count',
wantlogininfo => '9,Login info req,yesno',
wantgrid => '0,DX Grid Info,yesno',
nopings => '9,Ping Obs Count',
wantlogininfo => '9,Login info req,yesno',
wantgrid => '0,DX Grid Info,yesno',
+ wantann_talk => '0,Talklike Anns,yesno',
lastoper => '9,Last for/oper,cldatetime',
nothere => '0,Not Here Text',
);
lastoper => '9,Last for/oper,cldatetime',
nothere => '0,Not Here Text',
);
return _want('grid', @_);
}
return _want('grid', @_);
}
+sub wantann_talk
+{
+ return _want('ann_talk', @_);
+}
+
sub wantlogininfo
{
my $self = shift;
sub wantlogininfo
{
my $self = shift;
already => '$_[0] already connnected',
anns => 'Announce flag set on $_[0]',
annu => 'Announce flag unset on $_[0]',
already => '$_[0] already connnected',
anns => 'Announce flag set on $_[0]',
annu => 'Announce flag unset on $_[0]',
+ annts => 'Ann_Talk flag set on $_[0]',
+ anntu => 'Ann_Talk flag unset on $_[0]',
badnode1 => '$_[0] is now a bad node',
badnode2 => '$_[0] is now a good node',
badnode3 => 'List of Bad Nodes:-',
badnode1 => '$_[0] is now a bad node',
badnode2 => '$_[0] is now a good node',
badnode3 => 'List of Bad Nodes:-',
use DXDb;
use DXHash;
use DXDupe;
use DXDb;
use DXHash;
use DXDupe;
use Prefix;
use Spot;
use Bands;
use Prefix;
use Spot;
use Bands;
# this, such as it is, is the main loop!
dbg("orft we jolly well go ...");
# this, such as it is, is the main loop!
dbg("orft we jolly well go ...");
+my $script = new Script "startup";
+$script->run($DXProt::me) if $script;
#open(DB::OUT, "|tee /tmp/aa");
#open(DB::OUT, "|tee /tmp/aa");
--- /dev/null
+#
+# startup script example
+#
+# set maximum no of spots allowed to 100
+set/var $Spot::maxspots = 1