Use cloned version of incomming redis message as template for outgoing message

This commit is contained in:
eleksir
2022-04-22 15:01:20 +03:00
parent 8952828886
commit 7b32737b33
2 changed files with 19 additions and 29 deletions

View File

@@ -1,5 +1,6 @@
## no critic ## no critic
requires 'Carp', '==1.50'; requires 'Carp', '==1.50';
requires 'Clone', '==0.45';
requires 'Cwd', '==3.75'; requires 'Cwd', '==3.75';
requires 'Cwd::utf8', '==0.011'; requires 'Cwd::utf8', '==0.011';
requires 'Data::Dumper', '==2.183'; requires 'Data::Dumper', '==2.183';

View File

@@ -17,6 +17,7 @@ use open qw (:std :utf8);
use English qw ( -no_match_vars ); use English qw ( -no_match_vars );
# Модули для работы приложения # Модули для работы приложения
use Clone qw (clone);
use Data::Dumper qw (Dumper); use Data::Dumper qw (Dumper);
use Digest::SHA qw (sha1_base64); use Digest::SHA qw (sha1_base64);
use Encode qw (encode_utf8); use Encode qw (encode_utf8);
@@ -133,7 +134,11 @@ sub brains (@) {
# Основной парсер # Основной парсер
my $parse_message = sub { my $parse_message = sub {
my $self = shift; my $self = shift;
my $m = shift; my $m = shift;
my $answer = clone ($m);
$answer->{from} = 'craniac';
my $send_to = $m->{plugin}; my $send_to = $m->{plugin};
my $chatid = $m->{chatid}; my $chatid = $m->{chatid};
my $userid = $m->{userid}; my $userid = $m->{userid};
@@ -250,14 +255,10 @@ my $parse_message = sub {
# общения - публичного или приватного. # общения - публичного или приватного.
if (defined $reply) { if (defined $reply) {
if ($m->{misc}->{answer}) { if ($m->{misc}->{answer}) {
$answer->{message} = $reply;
$self->json ($send_to)->notify ( $self->json ($send_to)->notify (
$send_to => { $send_to => = $answer,
from => 'craniac',
userid => "$userid",
chatid => "$chatid",
plugin => $m->{plugin},
message => $reply,
},
); );
} }
} else { } else {
@@ -295,14 +296,10 @@ my $parse_message = sub {
# TODO: дописать запрос в webapp, для easter egg-ов, либо делать это на уровне aleesa-misc # TODO: дописать запрос в webapp, для easter egg-ов, либо делать это на уровне aleesa-misc
if (defined ($reply) && $m->{misc}->{answer}) { if (defined ($reply) && $m->{misc}->{answer}) {
$answer->{message} = $reply;
$self->json ($send_to)->notify ( $self->json ($send_to)->notify (
$send_to => { $send_to => $answer,
from => 'craniac',
userid => "$userid",
chatid => "$chatid",
plugin => $m->{plugin},
message => $reply,
},
); );
return; return;
@@ -320,14 +317,10 @@ my $parse_message = sub {
} }
if (defined ($reply) && $m->{misc}->{answer}) { if (defined ($reply) && $m->{misc}->{answer}) {
$answer->{message} = $reply;
$self->json ($send_to)->notify ( $self->json ($send_to)->notify (
$send_to => { $send_to => $answer,
from => 'craniac',
userid => "$userid",
chatid => "$chatid",
plugin => $m->{plugin},
message => $reply,
},
); );
return; return;
@@ -363,14 +356,10 @@ my $parse_message = sub {
} }
} }
$answer->{message} = $reply;
$self->json ($send_to)->notify ( $self->json ($send_to)->notify (
$send_to => { $send_to => $answer,
from => 'craniac',
userid => "$userid",
chatid => "$chatid",
plugin => $m->{plugin},
message => $reply,
},
); );
} }
} }