|
|
|
@ -59,6 +59,49 @@ sub process_message_with_text {
|
|
|
|
|
if ( $text eq '+1' && defined $reply_to_message ) {
|
|
|
|
|
add_karma_to_replied_message_user($message);
|
|
|
|
|
}
|
|
|
|
|
if ($text eq '-1' && defined $reply_to_message) {
|
|
|
|
|
substract_karma_to_replied_message_user ($message);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sub substract_karma_to_replied_message_user {
|
|
|
|
|
my $message = shift;
|
|
|
|
|
my $chat_id = $message->{chat}{id};
|
|
|
|
|
|
|
|
|
|
my $reply_to_message = $message->{reply_to_message};
|
|
|
|
|
my $user_giving_id = $message->{from}{id};
|
|
|
|
|
my $user_receiving_id = $reply_to_message->{from}{id};
|
|
|
|
|
|
|
|
|
|
my $user_dao = DoctorKarma::DAO::User->new( dbh => $db );
|
|
|
|
|
my $sending_karma_user = $user_dao->recover_id( id => $user_giving_id );
|
|
|
|
|
|
|
|
|
|
if ( $user_giving_id == $user_receiving_id ) {
|
|
|
|
|
$logger->log_info(<<"EOF");
|
|
|
|
|
User @{[$sending_karma_user->first_name]}:@{[$sending_karma_user->username]}:@{[$sending_karma_user->id_user]} tried to substract karma to itself, refusing.
|
|
|
|
|
EOF
|
|
|
|
|
$telegram->send_message(
|
|
|
|
|
chat_id => $chat_id,
|
|
|
|
|
text => 'You cannot substract karma to yourself'
|
|
|
|
|
);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
my $receiving_karma_user =
|
|
|
|
|
$user_dao->recover_id( id => $user_receiving_id );
|
|
|
|
|
if ( !defined $receiving_karma_user ) {
|
|
|
|
|
update_user($reply_to_message);
|
|
|
|
|
$receiving_karma_user =
|
|
|
|
|
$user_dao->recover_id( id => $user_receiving_id );
|
|
|
|
|
}
|
|
|
|
|
$user_dao->substract_1_karma( user => $receiving_karma_user );
|
|
|
|
|
my $id_receptor = $receiving_karma_user->id_user;
|
|
|
|
|
my $receptor_telegram_url = Mojo::URL->new('tg://user');
|
|
|
|
|
$receptor_telegram_url->query( id => $id_receptor );
|
|
|
|
|
$telegram->send_message(
|
|
|
|
|
chat_id => $chat_id,
|
|
|
|
|
text =>
|
|
|
|
|
"[@{[$receiving_karma_user->first_name]}]($receptor_telegram_url) has now @{[$receiving_karma_user->karma]} of karma\\."
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sub add_karma_to_replied_message_user {
|
|
|
|
|