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'; my $redismsg->{from} = 'telegram';
$redismsg->{plugin} = 'telegram'; $redismsg->{plugin} = 'telegram';
$redismsg->{misc}->{answer} = 1; $redismsg->{misc}->{answer} = 1;
$redismsg->{misc}->{csign} = $c->{telegrambot}->{csign}; $redismsg->{misc}->{csign} = "$c->{telegrambot}->{csign}";
$redismsg->{misc}->{msg_format} = 0; $redismsg->{misc}->{msg_format} = 0;
$redismsg->{misc}->{fwd_cnt} = 1; $redismsg->{misc}->{fwd_cnt} = 1;
@@ -42,8 +42,8 @@ sub Command {
my ($userid, $username, $fullname, $highlight, $visavi) = Highlight ($msg); my ($userid, $username, $fullname, $highlight, $visavi) = Highlight ($msg);
my $rmsg = clone ($redismsg); my $rmsg = clone ($redismsg);
$rmsg->{userid} = 0 + $userid; $rmsg->{userid} = "$userid";
$rmsg->{chatid} = 0 + $chatid; $rmsg->{chatid} = "$chatid";
$rmsg->{misc}->{answer} = 1; $rmsg->{misc}->{answer} = 1;
if ($chatid >= 0) { if ($chatid >= 0) {
@@ -100,7 +100,7 @@ sub Command {
# Если команда найдена... # Если команда найдена...
if ($bingo) { if ($bingo) {
$rmsg->{message} = $text; $rmsg->{message} = "$text";
$self->log->debug ('[DEBUG] Sending message to redis ' . Dumper ($rmsg)); $self->log->debug ('[DEBUG] Sending message to redis ' . Dumper ($rmsg));
# Для некоторых команд мы хотим получать форматированный вывод # Для некоторых команд мы хотим получать форматированный вывод
@@ -123,7 +123,7 @@ sub Command {
while (my $check = pop @cmds) { while (my $check = pop @cmds) {
if ($cmd eq $check) { if ($cmd eq $check) {
$rmsg->{misc}->{msg_format} = 1; $rmsg->{misc}->{msg_format} = 1;
$rmsg->{misc}->{username} = $highlight; $rmsg->{misc}->{username} = "$highlight";
last; last;
} }
} }
@@ -181,11 +181,11 @@ ${csign}karma фраза | ${csign}карма фраза - посмотреть
Но на самом деле я бот больше для общения, чем для исполнения команд. Но на самом деле я бот больше для общения, чем для исполнения команд.
Поговоришь со мной? Поговоришь со мной?
MYHELP MYHELP
$msg->replyMd ($reply); $msg->replyMd ("$reply");
return; return;
# Если команда не найдена, но это команда admin # Если команда не найдена, но это команда admin
} elsif ($cmd =~ /^(admin|админ)$/u) { } 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')) { if (($member->status eq 'administrator') || ($member->status eq 'creator')) {
@@ -220,7 +220,7 @@ MYADMIN
return; return;
# Если строка не найдена, но это команда admin с параметрами # Если строка не найдена, но это команда admin с параметрами
} elsif ($cmd =~ /^admin\s+.+$/u || $cmd =~ /^админ\s+.+$/u) { } 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')) { 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->{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}); 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'; my $redismsg->{from} = 'telegram';
$redismsg->{plugin} = 'telegram'; $redismsg->{plugin} = 'telegram';
$redismsg->{misc}->{answer} = 1; $redismsg->{misc}->{answer} = 1;
$redismsg->{misc}->{csign} = $c->{telegrambot}->{csign}; $redismsg->{misc}->{csign} = "$c->{telegrambot}->{csign}";
$redismsg->{misc}->{msg_format} = 0; $redismsg->{misc}->{msg_format} = 0;
$redismsg->{misc}->{fwd_cnt} = 1; $redismsg->{misc}->{fwd_cnt} = 1;
@@ -70,9 +70,9 @@ sub __cron {
if ($hour == 8 && ($min >= 0 && $min <= 14)) { if ($hour == 8 && ($min >= 0 && $min <= 14)) {
foreach my $enabledfortunechat (FortuneToggleList ()) { foreach my $enabledfortunechat (FortuneToggleList ()) {
# Set it to number, explicitly, maybe it will help to avoid stringification values in output json # Set it to strings, explicitly
$rmsg->{userid} = 0 + $enabledfortunechat; $rmsg->{userid} = "$enabledfortunechat";
$rmsg->{chatid} = 0 + $enabledfortunechat; $rmsg->{chatid} = "$enabledfortunechat";
$pubsub->json ($c->{'redis_router_channel'})->notify ( $pubsub->json ($c->{'redis_router_channel'})->notify (
$c->{'redis_router_channel'} => $rmsg, $c->{'redis_router_channel'} => $rmsg,
@@ -250,9 +250,10 @@ sub __on_msg {
} else { } else {
my $rmsg = clone ($redismsg); my $rmsg = clone ($redismsg);
$rmsg->{mode} = 'private'; $rmsg->{mode} = 'private';
$rmsg->{message} = $text; $rmsg->{message} = "$text";
$rmsg->{userid} = 0 + $userid; # Set it to strings, explicitly
$rmsg->{chatid} = 0 + $userid; $rmsg->{userid} = "$userid";
$rmsg->{chatid} = "$userid";
$rmsg->{misc}->{answer} = 1; $rmsg->{misc}->{answer} = 1;
my $pubsub = $main::REDIS->pubsub; my $pubsub = $main::REDIS->pubsub;
@@ -336,9 +337,10 @@ sub __on_msg {
# Попробуем сгенерить ответ # Попробуем сгенерить ответ
my $rmsg = clone ($redismsg); my $rmsg = clone ($redismsg);
$rmsg->{mode} = 'public'; $rmsg->{mode} = 'public';
$rmsg->{message} = $phrase; $rmsg->{message} = "$phrase";
$rmsg->{userid} = 0 + $userid; # Set it to strings, explicitly
$rmsg->{chatid} = 0 + $chatid; $rmsg->{userid} = "$userid";
$rmsg->{chatid} = "$chatid";
$rmsg->{misc}->{answer} = 1; $rmsg->{misc}->{answer} = 1;
my $pubsub = $main::REDIS->pubsub; my $pubsub = $main::REDIS->pubsub;
@@ -367,26 +369,26 @@ sub __on_msg {
my $rmsg = clone ($redismsg); my $rmsg = clone ($redismsg);
$rmsg->{mode} = 'public'; $rmsg->{mode} = 'public';
$rmsg->{userid} = 0 + $userid; # Set it to strings, explicitly
$rmsg->{chatid} = 0 + $chatid; $rmsg->{userid} = "$userid";
$rmsg->{chatid} = "$chatid";
$rmsg->{misc}->{answer} = 1; $rmsg->{misc}->{answer} = 1;
# Сообщение обращено к боту # Сообщение обращено к боту
if ((lc ($text) =~ /^${qname}[\,|\:]? (.+)/) or (lc ($text) =~ /^${qtname}[\,|\:]? (.+)/)){ if ((lc ($text) =~ /^${qname}[\,|\:]? (.+)/) or (lc ($text) =~ /^${qtname}[\,|\:]? (.+)/)){
$phrase = $1; $phrase = $1;
$rmsg->{message} = $phrase; $rmsg->{message} = "$phrase";
# Бота упомянули по имени # Бота упомянули по имени
} elsif ((lc ($text) =~ /.+ ${qname}[\,|\!|\?|\.| ]/) or (lc ($text) =~ / $qname$/)) { } elsif ((lc ($text) =~ /.+ ${qname}[\,|\!|\?|\.| ]/) or (lc ($text) =~ / $qname$/)) {
$phrase = $text; $phrase = $text;
$rmsg->{message} = $phrase; $rmsg->{message} = "$phrase";
# Бота упомянули по телеграммному имени # Бота упомянули по телеграммному имени
} elsif ((lc ($text) =~ /.+ ${qtname}[\,|\!|\?|\.| ]/) or (lc ($text) =~ / $qtname$/)) { } elsif ((lc ($text) =~ /.+ ${qtname}[\,|\!|\?|\.| ]/) or (lc ($text) =~ / $qtname$/)) {
$phrase = $text; $phrase = $text;
$rmsg->{message} = $phrase; $rmsg->{message} = "$phrase";
} else { } else {
$rmsg->{message} = $text; $rmsg->{message} = "$text";
$rmsg->{misc}->{answer} = 0; $rmsg->{misc}->{answer} = 0;
} }