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" : "data/cache",
"gamestat" : {
"dir" : "data",
"gamestatdir" : "data/gamestat"
},
# 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.
# Currently implemented debug, info, notice, warn, error, fatal. Notice is default logging level.
@@ -16,10 +11,6 @@
# Stuff for telegram itself.
"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 "!".
# 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" : "!",
@@ -30,10 +21,11 @@
# Unprivileged user to run this bot from.
"user" : "nobody",
"redis_server": "127.0.0.1",
"redis_server": "redis",
"redis_port" : "6379",
"redis_channels" : [
"telegram"
],
"redis_router_channel" : "misc"
}

View File

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

View File

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