Compare commits
3 Commits
1958f77e9c
...
35104f883c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
35104f883c | ||
|
|
281a5e6b3c | ||
|
|
060244a84d |
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user