X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fchat.pl;fp=cmd%2Fchat.pl;h=4062358cc57279feacbbe1df39e1266da852289c;hb=defc60f3e7fab9bb99d1c9f7b8bccc4ec37628d5;hp=0000000000000000000000000000000000000000;hpb=a7d7ca1d8383bea004544d002748db81d867ea11;p=spider.git diff --git a/cmd/chat.pl b/cmd/chat.pl new file mode 100644 index 00000000..4062358c --- /dev/null +++ b/cmd/chat.pl @@ -0,0 +1,43 @@ +# +# do a chat message +# +# this is my version of conferencing.... +# +# Copyright (c) 2003 Dirk Koopman G1TLH +# +# $Id$ +# + +my ($self, $line) = @_; +my @f = split /\s+/, $line, 2; +return (1, $self->msg('e5')) if $self->remotecmd; +return (1, $self->msg('e34')) unless @f == 2; +return (1, $self->msg('e28')) unless $self->registered; + +my $target = uc $f[0]; + +return (1, $self->msg('e35', $target)) unless grep uc $_ eq $target, @{$self->user->group}; + +my $from = $self->call; +my $text = unpad $f[1]; +my $t = ztime(time); +my $toflag = '*'; + +# change ^ into : for transmission +$line =~ s/\^/:/og; + +my @bad; +if (@bad = BadWords::check($line)) { + $self->badcount(($self->badcount||0) + @bad); + Log('DXCommand', "$self->{call} swore: $line"); + Log('chat', $target, $from, "[to $from only] $line"); + return (1, "$target de $from <$t>: $line"); +} + +#PC12^IZ4DYU^GROUP^PSE QSL INFO TO A71AW TNX IN ADV 73's^ ^IK5PWJ-6^0^H21^~ +my $msgid = DXProt::nextchatmsgid(); +$text = "#$msgid $text"; + +DXProt::send_chat($self, DXProt::pc12($from, $text, $target), $from, $target, $text, ' ', $main::mycall, '0'); + +return (1, ());