Compare commits

...

3 Commits

Author SHA1 Message Date
eleksir
35104f883c Take into account possible api errors 2022-04-24 01:13:36 +03:00
eleksir
281a5e6b3c Remove excessive debug, fix message format
* Remove duplicate debug for outgoing redis message
* Add log category for outgoing debug redis message
* Add missing field in outgoing redis message
2022-04-24 01:00:06 +03:00
eleksir
060244a84d Cleanup and update sample config 2022-04-24 00:54:23 +03:00
3 changed files with 34 additions and 35 deletions

View File

@@ -2,13 +2,8 @@
# Cachedir used not only for caches but for some settings and stats too. # Cachedir used not only for caches but for some settings and stats too.
"cachedir" : "data/cache", "cachedir" : "data/cache",
"gamestat" : {
"dir" : "data",
"gamestatdir" : "data/gamestat"
},
# Required for debugging reasons, if commented out or not exist, no debug logging appears at all. # Required for debugging reasons, if commented out or not exist, no debug logging appears at all.
"log" : "/var/log/aleesa-telegram-bot/aleesa.log", "log" : "/var/log/aleesa-telegram/debug.log",
# Verbosity can be trace, debug, info (inform), notice, warning (warn), error (err), critical (crit, fatal), alert, emergency. # Verbosity can be trace, debug, info (inform), notice, warning (warn), error (err), critical (crit, fatal), alert, emergency.
# Currently implemented debug, info, notice, warn, error, fatal. Notice is default logging level. # Currently implemented debug, info, notice, warn, error, fatal. Notice is default logging level.
@@ -16,10 +11,6 @@
# Stuff for telegram itself. # Stuff for telegram itself.
"telegrambot" : { "telegrambot" : {
# Directory with per-conversation "brains".
"braindir" : "data/telegrambot-brains",
# Prefix-sign for all commands. In many irc-bots (eggdrop/windrop) it is "." (dot), in sulci it was "!". # Prefix-sign for all commands. In many irc-bots (eggdrop/windrop) it is "." (dot), in sulci it was "!".
# In telegram commands begin with "/" on the start of first (and only) line. In case of this bot you can define what to use. # In telegram commands begin with "/" on the start of first (and only) line. In case of this bot you can define what to use.
"csign" : "!", "csign" : "!",
@@ -30,10 +21,11 @@
# Unprivileged user to run this bot from. # Unprivileged user to run this bot from.
"user" : "nobody", "user" : "nobody",
"redis_server": "127.0.0.1", "redis_server": "redis",
"redis_port" : "6379", "redis_port" : "6379",
"redis_channels" : [ "redis_channels" : [
"telegram" "telegram"
], ],
"redis_router_channel" : "misc" "redis_router_channel" : "misc"
} }

View File

@@ -27,12 +27,13 @@ our @EXPORT_OK = qw (Command Highlight BotSleep IsCensored);
my $c = LoadConf (); my $c = LoadConf ();
my $csign = $c->{telegrambot}->{csign}; 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;
$redismsg->{misc}->{good_morning} = 0;
sub Command { sub Command {
my $self = shift; my $self = shift;
@@ -103,7 +104,6 @@ sub Command {
# Если команда найдена... # Если команда найдена...
if ($bingo) { if ($bingo) {
$rmsg->{message} = "$text"; $rmsg->{message} = "$text";
$self->log->debug ('[DEBUG] Sending message to redis ' . Dumper ($rmsg));
# Для некоторых команд мы хотим получать форматированный вывод # Для некоторых команд мы хотим получать форматированный вывод
$#cmds = -1; $#cmds = -1;
@@ -138,7 +138,7 @@ sub Command {
} while (sleep 1); } while (sleep 1);
} }
$log->debug ('Outgoing redis message: ' . Dumper ($rmsg)); $log->debug ('[DEBUG] Outgoing redis message: ' . Dumper ($rmsg));
my $pubsub = $main::REDIS->pubsub; my $pubsub = $main::REDIS->pubsub;
@@ -191,6 +191,10 @@ MYHELP
} elsif ($cmd =~ /^(admin|админ)$/u) { } elsif ($cmd =~ /^(admin|админ)$/u) {
my $member = $self->getChatMember ({ 'chat_id' => 0 + $msg->chat->id, 'user_id' => 0 + $msg->from->id }); my $member = $self->getChatMember ({ 'chat_id' => 0 + $msg->chat->id, 'user_id' => 0 + $msg->from->id });
if ($member->{error}) {
return;
}
# Это должно показываться только админам чата # Это должно показываться только админам чата
if (($member->status eq 'administrator') || ($member->status eq 'creator')) { if (($member->status eq 'administrator') || ($member->status eq 'creator')) {
$reply = << "MYADMIN"; $reply = << "MYADMIN";
@@ -227,6 +231,10 @@ MYADMIN
} elsif ($cmd =~ /^admin\s+.+$/u || $cmd =~ /^админ\s+.+$/u) { } elsif ($cmd =~ /^admin\s+.+$/u || $cmd =~ /^админ\s+.+$/u) {
my $member = $self->getChatMember ({ 'chat_id' => 0 + $msg->chat->id, 'user_id' => 0 + $msg->from->id }); my $member = $self->getChatMember ({ 'chat_id' => 0 + $msg->chat->id, 'user_id' => 0 + $msg->from->id });
if ($member->{error}) {
return;
}
# Мьютить через бота можно только создателю чятика # Мьютить через бота можно только создателю чятика
if (($member->status eq 'creator') && $cmd =~ /^(admin|админ)\s+mute\s+(\d+)\s+(\d+)$/gu) { if (($member->status eq 'creator') && $cmd =~ /^(admin|админ)\s+mute\s+(\d+)\s+(\d+)$/gu) {
my (undef, undef, $user_id_to_mute, $time) = split /\s+/, $cmd; my (undef, undef, $user_id_to_mute, $time) = split /\s+/, $cmd;
@@ -234,7 +242,7 @@ MYADMIN
# Бот должен быть админом, чтобы мьютить юзеров # Бот должен быть админом, чтобы мьютить юзеров
my $me = $self->getMe (); my $me = $self->getMe ();
if (defined $me->{error}) { if ($me->{error}) {
return; return;
} }
@@ -245,7 +253,7 @@ MYADMIN
} else { } else {
$me = $self->getChatMember ({'chat_id' => $chatid, 'user_id' => $me->id}); $me = $self->getChatMember ({'chat_id' => $chatid, 'user_id' => $me->id});
if (defined $me->{error}) { if ($me->{error}) {
return; return;
} }
@@ -253,7 +261,7 @@ MYADMIN
# Проверим, что такой юзер есть в чятике # Проверим, что такой юзер есть в чятике
my $chatMember = $self->getChatMember ({'chat_id' => $chatid, 'user_id' => $user_id_to_mute}); my $chatMember = $self->getChatMember ({'chat_id' => $chatid, 'user_id' => $user_id_to_mute});
if (defined $chatMember->{error}) { if ($chatMember->{error}) {
return; return;
} }

View File

@@ -41,12 +41,13 @@ 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;
$redismsg->{misc}->{good_morning} = 0;
sub __cron { sub __cron {
my $self = shift; my $self = shift;
@@ -56,7 +57,6 @@ sub __cron {
# Press 'F' to pay respect # Press 'F' to pay respect
$rmsg->{message} = sprintf '%sf', $c->{telegrambot}->{csign}; $rmsg->{message} = sprintf '%sf', $c->{telegrambot}->{csign};
$rmsg->{misc}->{msg_format} = 1; $rmsg->{misc}->{msg_format} = 1;
$rmsg->{misc}->{answer} = 1;
$rmsg->{misc}->{good_morning} = 1; $rmsg->{misc}->{good_morning} = 1;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime (time); my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime (time);
@@ -80,7 +80,7 @@ sub __cron {
$rmsg->{userid} = "$enabledfortunechat"; $rmsg->{userid} = "$enabledfortunechat";
$rmsg->{chatid} = "$enabledfortunechat"; $rmsg->{chatid} = "$enabledfortunechat";
$log->debug ('Outgoing redis message: ' . Dumper ($rmsg)); $log->debug ('[DEBUG] Outgoing redis message: ' . Dumper ($rmsg));
$pubsub->json ($c->{'redis_router_channel'})->notify ( $pubsub->json ($c->{'redis_router_channel'})->notify (
$c->{'redis_router_channel'} => $rmsg, $c->{'redis_router_channel'} => $rmsg,
@@ -103,8 +103,7 @@ sub __on_msg {
unless ($myid) { unless ($myid) {
my $myObj = $self->getMe (); my $myObj = $self->getMe ();
unless ($myObj) { if ($myObj->{error}) {
$log->error ('[ERROR] Unable to get chatid, API Error?');
return; return;
} }
@@ -271,7 +270,7 @@ sub __on_msg {
} while (sleep 1); } while (sleep 1);
} }
$log->debug ('Outgoing redis message: ' . Dumper ($rmsg)); $log->debug ('[DEBUG] Outgoing redis message: ' . Dumper ($rmsg));
my $pubsub = $main::REDIS->pubsub; my $pubsub = $main::REDIS->pubsub;
@@ -367,7 +366,7 @@ sub __on_msg {
} while (sleep 1); } while (sleep 1);
} }
$log->debug ('Outgoing redis message: ' . Dumper ($rmsg)); $log->debug ('[DEBUG] Outgoing redis message: ' . Dumper ($rmsg));
my $pubsub = $main::REDIS->pubsub; my $pubsub = $main::REDIS->pubsub;
@@ -425,7 +424,7 @@ sub __on_msg {
} while (sleep 1); } while (sleep 1);
} }
$log->debug ('Outgoing redis message: ' . Dumper ($rmsg)); $log->debug ('[DEBUG] Outgoing redis message: ' . Dumper ($rmsg));
my $pubsub = $main::REDIS->pubsub; my $pubsub = $main::REDIS->pubsub;