Set json types in more obvious fashion

This commit is contained in:
eleksir
2022-04-10 00:35:38 +03:00
parent 22cb7c9372
commit 305550f6cf
3 changed files with 28 additions and 26 deletions

View File

@@ -28,7 +28,7 @@ my $csign = $c->{telegrambot}->{csign};
my $redismsg->{from} = 'telegram';
$redismsg->{plugin} = 'telegram';
$redismsg->{misc}->{answer} = 1;
$redismsg->{misc}->{csign} = $c->{telegrambot}->{csign};
$redismsg->{misc}->{csign} = "$c->{telegrambot}->{csign}";
$redismsg->{misc}->{msg_format} = 0;
$redismsg->{misc}->{fwd_cnt} = 1;
@@ -42,8 +42,8 @@ sub Command {
my ($userid, $username, $fullname, $highlight, $visavi) = Highlight ($msg);
my $rmsg = clone ($redismsg);
$rmsg->{userid} = 0 + $userid;
$rmsg->{chatid} = 0 + $chatid;
$rmsg->{userid} = "$userid";
$rmsg->{chatid} = "$chatid";
$rmsg->{misc}->{answer} = 1;
if ($chatid >= 0) {
@@ -100,7 +100,7 @@ sub Command {
# Если команда найдена...
if ($bingo) {
$rmsg->{message} = $text;
$rmsg->{message} = "$text";
$self->log->debug ('[DEBUG] Sending message to redis ' . Dumper ($rmsg));
# Для некоторых команд мы хотим получать форматированный вывод
@@ -123,7 +123,7 @@ sub Command {
while (my $check = pop @cmds) {
if ($cmd eq $check) {
$rmsg->{misc}->{msg_format} = 1;
$rmsg->{misc}->{username} = $highlight;
$rmsg->{misc}->{username} = "$highlight";
last;
}
}
@@ -181,11 +181,11 @@ ${csign}karma фраза | ${csign}карма фраза - посмотреть
Но на самом деле я бот больше для общения, чем для исполнения команд.
Поговоришь со мной?
MYHELP
$msg->replyMd ($reply);
$msg->replyMd ("$reply");
return;
# Если команда не найдена, но это команда admin
} elsif ($cmd =~ /^(admin|админ)$/u) {
my $member = $self->getChatMember ({ 'chat_id' => $msg->chat->id, 'user_id' => $msg->from->id });
my $member = $self->getChatMember ({ 'chat_id' => 0 + $msg->chat->id, 'user_id' => 0 + $msg->from->id });
# Это должно показываться только админам чата
if (($member->status eq 'administrator') || ($member->status eq 'creator')) {
@@ -220,7 +220,7 @@ MYADMIN
return;
# Если строка не найдена, но это команда admin с параметрами
} elsif ($cmd =~ /^admin\s+.+$/u || $cmd =~ /^админ\s+.+$/u) {
my $member = $self->getChatMember ({ 'chat_id' => $msg->chat->id, 'user_id' => $msg->from->id });
my $member = $self->getChatMember ({ 'chat_id' => 0 + $msg->chat->id, 'user_id' => 0 + $msg->from->id });
# Это должно показываться только админам чата
if (($member->status eq 'administrator') || ($member->status eq 'creator')) {

View File

@@ -38,7 +38,7 @@ sub redis_parse_message {
}
$message->{chat_id} = 0 + $m->{chatid};
$message->{text} = $m->{message};
$message->{text} = "$m->{message}";
my $can_talk = Teapot::Bot::Object::ChatPermissions->canTalk ($main::TGM, 0 + $m->{chatid});

View File

@@ -42,7 +42,7 @@ my @introduce_greet = (
my $redismsg->{from} = 'telegram';
$redismsg->{plugin} = 'telegram';
$redismsg->{misc}->{answer} = 1;
$redismsg->{misc}->{csign} = $c->{telegrambot}->{csign};
$redismsg->{misc}->{csign} = "$c->{telegrambot}->{csign}";
$redismsg->{misc}->{msg_format} = 0;
$redismsg->{misc}->{fwd_cnt} = 1;
@@ -70,9 +70,9 @@ sub __cron {
if ($hour == 8 && ($min >= 0 && $min <= 14)) {
foreach my $enabledfortunechat (FortuneToggleList ()) {
# Set it to number, explicitly, maybe it will help to avoid stringification values in output json
$rmsg->{userid} = 0 + $enabledfortunechat;
$rmsg->{chatid} = 0 + $enabledfortunechat;
# Set it to strings, explicitly
$rmsg->{userid} = "$enabledfortunechat";
$rmsg->{chatid} = "$enabledfortunechat";
$pubsub->json ($c->{'redis_router_channel'})->notify (
$c->{'redis_router_channel'} => $rmsg,
@@ -250,9 +250,10 @@ sub __on_msg {
} else {
my $rmsg = clone ($redismsg);
$rmsg->{mode} = 'private';
$rmsg->{message} = $text;
$rmsg->{userid} = 0 + $userid;
$rmsg->{chatid} = 0 + $userid;
$rmsg->{message} = "$text";
# Set it to strings, explicitly
$rmsg->{userid} = "$userid";
$rmsg->{chatid} = "$userid";
$rmsg->{misc}->{answer} = 1;
my $pubsub = $main::REDIS->pubsub;
@@ -336,9 +337,10 @@ sub __on_msg {
# Попробуем сгенерить ответ
my $rmsg = clone ($redismsg);
$rmsg->{mode} = 'public';
$rmsg->{message} = $phrase;
$rmsg->{userid} = 0 + $userid;
$rmsg->{chatid} = 0 + $chatid;
$rmsg->{message} = "$phrase";
# Set it to strings, explicitly
$rmsg->{userid} = "$userid";
$rmsg->{chatid} = "$chatid";
$rmsg->{misc}->{answer} = 1;
my $pubsub = $main::REDIS->pubsub;
@@ -367,26 +369,26 @@ sub __on_msg {
my $rmsg = clone ($redismsg);
$rmsg->{mode} = 'public';
$rmsg->{userid} = 0 + $userid;
$rmsg->{chatid} = 0 + $chatid;
# Set it to strings, explicitly
$rmsg->{userid} = "$userid";
$rmsg->{chatid} = "$chatid";
$rmsg->{misc}->{answer} = 1;
# Сообщение обращено к боту
if ((lc ($text) =~ /^${qname}[\,|\:]? (.+)/) or (lc ($text) =~ /^${qtname}[\,|\:]? (.+)/)){
$phrase = $1;
$rmsg->{message} = $phrase;
$rmsg->{message} = "$phrase";
# Бота упомянули по имени
} elsif ((lc ($text) =~ /.+ ${qname}[\,|\!|\?|\.| ]/) or (lc ($text) =~ / $qname$/)) {
$phrase = $text;
$rmsg->{message} = $phrase;
$rmsg->{message} = "$phrase";
# Бота упомянули по телеграммному имени
} elsif ((lc ($text) =~ /.+ ${qtname}[\,|\!|\?|\.| ]/) or (lc ($text) =~ / $qtname$/)) {
$phrase = $text;
$rmsg->{message} = $phrase;
$rmsg->{message} = "$phrase";
} else {
$rmsg->{message} = $text;
$rmsg->{message} = "$text";
$rmsg->{misc}->{answer} = 0;
}