projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add #9000 as a default group and tidy up send_chats calls
[spider.git]
/
perl
/
DXCommandmode.pm
diff --git
a/perl/DXCommandmode.pm
b/perl/DXCommandmode.pm
index 3701c085d39823fe8ec622ec1f24f1ceb8f3812a..47b68667ca6e9d570589a3e0960b6c02cf12d82c 100644
(file)
--- a/
perl/DXCommandmode.pm
+++ b/
perl/DXCommandmode.pm
@@
-4,7
+4,7
@@
#
# Copyright (c) 1998 Dirk Koopman G1TLH
#
#
# Copyright (c) 1998 Dirk Koopman G1TLH
#
-#
$Id$
+#
#
package DXCommandmode;
#
package DXCommandmode;
@@
-54,12
+54,6
@@
$cmdimportdir = "$main::root/cmd_import"; # the base directory for importing com
# this does not exist as default, you need to create it manually
#
# this does not exist as default, you need to create it manually
#
-use vars qw($VERSION $BRANCH);
-$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
-$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ || (0,0));
-$main::build += $VERSION;
-$main::branch += $BRANCH;
-
#
# obtain a new connection this is derived from dxchannel
#
#
# obtain a new connection this is derived from dxchannel
#
@@
-308,10
+302,14
@@
sub normal
$self->conn->{echo} = $self->conn->{decho};
delete $self->conn->{decho};
$self->state('prompt');
$self->conn->{echo} = $self->conn->{decho};
delete $self->conn->{decho};
$self->state('prompt');
- } elsif ($self->{state} eq 'talk') {
+ } elsif ($self->{state} eq 'talk'
|| $self->{state} eq 'chat'
) {
if ($cmdline =~ m{^(?:/EX|/ABORT)}i) {
for (@{$self->{talklist}}) {
if ($cmdline =~ m{^(?:/EX|/ABORT)}i) {
for (@{$self->{talklist}}) {
- $self->send_talks($_, $self->msg('talkend'));
+ if ($self->{state} eq 'talk') {
+ $self->send_talks($_, $self->msg('talkend'));
+ } else {
+ $self->local_send('C', $self->msg('chatend', $_));
+ }
}
$self->state('prompt');
delete $self->{talklist};
}
$self->state('prompt');
delete $self->{talklist};
@@
-328,12
+326,16
@@
sub normal
LogDbg('DXCommand', "$self->{call} swore: $l with words:" . join(',', @bad) . ")");
} else {
for (@{$self->{talklist}}) {
LogDbg('DXCommand', "$self->{call} swore: $l with words:" . join(',', @bad) . ")");
} else {
for (@{$self->{talklist}}) {
- $self->send_talks($_, $l);
+ if ($self->{state} eq 'talk') {
+ $self->send_talks($_, $l);
+ } else {
+ send_chats($self, $_, $l)
+ }
}
}
}
}
}
}
}
}
- $self->send($self->
talk
_prompt);
+ $self->send($self->
{state} eq 'talk' ? $self->talk_prompt : $self->chat
_prompt);
} elsif ($self->{talklist} && @{$self->{talklist}}) {
# send what has been said to whoever is in this person's talk list
my @bad;
} elsif ($self->{talklist} && @{$self->{talklist}}) {
# send what has been said to whoever is in this person's talk list
my @bad;
@@
-342,10
+344,15
@@
sub normal
LogDbg('DXCommand', "$self->{call} swore: $cmdline with words:" . join(',', @bad) . ")");
} else {
for (@{$self->{talklist}}) {
LogDbg('DXCommand', "$self->{call} swore: $cmdline with words:" . join(',', @bad) . ")");
} else {
for (@{$self->{talklist}}) {
- $self->send_talks($_, $rawline);
+ if ($self->{state} eq 'talk') {
+ $self->send_talks($_, $rawline);
+ } else {
+ send_chats($self, $_, $rawline);
+ }
}
}
$self->send($self->talk_prompt) if $self->{state} eq 'talk';
}
}
$self->send($self->talk_prompt) if $self->{state} eq 'talk';
+ $self->send($self->chat_prompt) if $self->{state} eq 'chat';
} else {
# for safety
$self->state('prompt');
} else {
# for safety
$self->state('prompt');
@@
-387,11
+394,11
@@
sub send_talks
my ($to, $via) = $ent =~ /(\S+)>(\S+)/;
$to = $ent unless $to;
my ($to, $via) = $ent =~ /(\S+)>(\S+)/;
$to = $ent unless $to;
- my $call = $via ? $via : $to;
+ my $call = $via
&& $via ne '*'
? $via : $to;
my $clref = Route::get($call);
my $dxchan = $clref->dxchan if $clref;
if ($dxchan) {
my $clref = Route::get($call);
my $dxchan = $clref->dxchan if $clref;
if ($dxchan) {
- $dxchan->talk($self->{call}, $to,
$via
, $line);
+ $dxchan->talk($self->{call}, $to,
undef
, $line);
} else {
$self->send($self->msg('disc2', $via ? $via : $to));
my @l = grep { $_ ne $ent } @{$self->{talklist}};
} else {
$self->send($self->msg('disc2', $via ? $via : $to));
my @l = grep { $_ ne $ent } @{$self->{talklist}};
@@
-404,16
+411,40
@@
sub send_talks
}
}
}
}
-sub talk_prompt
+sub send_chats
+{
+ my $self = shift;
+ my $target = shift;
+ my $text = shift;
+
+ my $msgid = DXProt::nextchatmsgid();
+ $text = "#$msgid $text";
+ $main::me->normal(DXProt::pc93($target, $self->{call}, undef, $text));
+}
+
+sub special_prompt
{
my $self = shift;
{
my $self = shift;
+ my $prompt = shift;
my @call;
for (@{$self->{talklist}}) {
my ($to, $via) = /(\S+)>(\S+)/;
$to = $_ unless $to;
push @call, $to;
}
my @call;
for (@{$self->{talklist}}) {
my ($to, $via) = /(\S+)>(\S+)/;
$to = $_ unless $to;
push @call, $to;
}
- return $self->msg('talkprompt', join(',', @call));
+ return $self->msg($prompt, join(',', @call));
+}
+
+sub talk_prompt
+{
+ my $self = shift;
+ return $self->special_prompt('talkprompt');
+}
+
+sub chat_prompt
+{
+ my $self = shift;
+ return $self->special_prompt('chatprompt');
}
#
}
#
@@
-819,7
+850,7
@@
sub send
sub local_send
{
my ($self, $let, $buf) = @_;
sub local_send
{
my ($self, $let, $buf) = @_;
- if ($self->{state} eq 'prompt' || $self->{state} eq 'talk') {
+ if ($self->{state} eq 'prompt' || $self->{state} eq 'talk'
|| $self->{state} eq 'chat'
) {
if ($self->{enhanced}) {
$self->send_later($let, $buf);
} else {
if ($self->{enhanced}) {
$self->send_later($let, $buf);
} else {
@@
-833,7
+864,7
@@
sub local_send
# send a talk message here
sub talk
{
# send a talk message here
sub talk
{
- my ($self, $from, $to, $via, $line) = @_;
+ my ($self, $from, $to, $via, $line
, $onode
) = @_;
$line =~ s/\\5E/\^/g;
if ($self->{talk}) {
if ($self->{gtk}) {
$line =~ s/\\5E/\^/g;
if ($self->{talk}) {
if ($self->{gtk}) {
@@
-842,7
+873,7
@@
sub talk
$self->local_send('T', "$to de $from: $line");
}
}
$self->local_send('T', "$to de $from: $line");
}
}
- Log('talk', $to, $from,
$via?$via:$main::mycall
, $line);
+ Log('talk', $to, $from,
'<' . ($onode || '*')
, $line);
# send a 'not here' message if required
unless ($self->{here} && $from ne $to) {
my $key = "$to$from";
# send a 'not here' message if required
unless ($self->{here} && $from ne $to) {
my $key = "$to$from";
@@
-926,9
+957,9
@@
sub format_dx_spot
my $t = ztime($_[2]);
my $loc = '';
my $clth = $self->{consort} eq 'local' ? 29 : 30;
my $t = ztime($_[2]);
my $loc = '';
my $clth = $self->{consort} eq 'local' ? 29 : 30;
- my $comment = substr
$_[3], 0, $clth;
+ my $comment = substr
(($_[3] || ''), 0, $clth);
$comment .= ' ' x ($clth - length($comment));
$comment .= ' ' x ($clth - length($comment));
- if ($self->{user}->wantgrid) {
+ if ($self->{user}->wantgrid) {
my $ref = DXUser->get_current($_[4]);
if ($ref) {
$loc = $ref->qra || '';
my $ref = DXUser->get_current($_[4]);
if ($ref) {
$loc = $ref->qra || '';
@@
-1177,5
+1208,12
@@
sub import_cmd
}
}
}
}
}
}
+
+sub print_find_reply
+{
+ my ($self, $node, $target, $flag, $ms) = @_;
+ my $sort = $flag == 2 ? "External" : "Local";
+ $self->send("$sort $target found at $node in $ms ms" );
+}
1;
__END__
1;
__END__