Actually add admin mute command
This commit is contained in:
@@ -218,6 +218,7 @@ ${csign}admin obutts - показываем ли попки по про
|
||||
${csign}admin chan_msg - оставляем ли сообщения присланные от имени (других) каналов
|
||||
${csign}admin chan_msg # - где 1 - оставляем, 0 - удаляем
|
||||
${csign}admin ban userid sec - выдаём ban указанному user-у на указанное количество секунд (от 30 сек до 1 года), доступно только создателю чата
|
||||
${csign}admin mute userid sec - выдаём mute указанному user-у на указанное количество секунд (от 30 сек до 1 года), доступно только создателю чата
|
||||
```
|
||||
Типы сообщений:
|
||||
audio voice photo video animation sticker dice game poll document
|
||||
@@ -236,8 +237,8 @@ MYADMIN
|
||||
}
|
||||
|
||||
# Банить через бота можно только создателю чятика
|
||||
if (($member->status eq 'creator') && $cmd =~ /^(admin|админ)\s+ban\s+(\d+)\s+(\d+)$/gu) {
|
||||
my (undef, undef, $user_id_to_ban, $time) = split /\s+/, $cmd;
|
||||
if (($member->status eq 'creator') && $cmd =~ /^(admin|админ)\s+(ban|mute)\s+(\d+)\s+(\d+)$/gu) {
|
||||
my (undef, $action, $user_id_to_prosecute, $time) = split /\s+/, $cmd;
|
||||
|
||||
# Бот должен быть админом, чтобы банить юзеров
|
||||
my $me = $self->getMe ();
|
||||
@@ -248,8 +249,12 @@ MYADMIN
|
||||
|
||||
my $myId = $me->id;
|
||||
|
||||
if ($myId == $user_id_to_ban) {
|
||||
$reply = 'Я не буду себя мьютить.';
|
||||
if ($myId == $user_id_to_prosecute) {
|
||||
if ($action eq 'mute') {
|
||||
$reply = 'Я не буду себя мьютить.';
|
||||
} else {
|
||||
$reply = 'Я не буду себя банить.';
|
||||
}
|
||||
} else {
|
||||
$me = $self->getChatMember ({'chat_id' => $chatid, 'user_id' => $me->id});
|
||||
|
||||
@@ -259,7 +264,7 @@ MYADMIN
|
||||
|
||||
if ($me->status eq 'administrator') {
|
||||
# Проверим, что такой юзер есть в чятике
|
||||
my $chatMember = $self->getChatMember ({'chat_id' => $chatid, 'user_id' => $user_id_to_ban});
|
||||
my $chatMember = $self->getChatMember ({'chat_id' => $chatid, 'user_id' => $user_id_to_prosecute});
|
||||
|
||||
if ($chatMember->{error}) {
|
||||
return;
|
||||
@@ -269,25 +274,53 @@ MYADMIN
|
||||
my $memberStatus = $chatMember->status;
|
||||
|
||||
if ($memberStatus eq 'creator') {
|
||||
$reply = 'Ты поехал себя банить?';
|
||||
if ($action eq 'mute') {
|
||||
$reply = 'Ты поехал себя мьютить?';
|
||||
} else {
|
||||
$reply = 'Ты поехал себя банить?';
|
||||
}
|
||||
} elsif ($memberStatus eq 'administrator') {
|
||||
$reply = 'Админов банить не буду.';
|
||||
if ($action eq 'mute') {
|
||||
$reply = 'Админов мьютить не буду.';
|
||||
} else {
|
||||
$reply = 'Админов банить не буду.';
|
||||
}
|
||||
} else {
|
||||
if ($time < 30) {
|
||||
$reply = 'Ты слишком добр.';
|
||||
} elsif ($time > (60 * 60 * 24 * 366)) {
|
||||
$reply = 'Бан более чем на 366 дней - перманентный, ты слишком жесток, я так не играю.';
|
||||
if ($action eq 'mute') {
|
||||
$reply = 'Мьют более чем на 366 дней - перманентный, ты слишком жесток, я так не играю.';
|
||||
} else {
|
||||
$reply = 'Бан более чем на 366 дней - перманентный, ты слишком жесток, я так не играю.';
|
||||
}
|
||||
} else {
|
||||
my $result = $self->banChatMember (
|
||||
{
|
||||
'chat_id' => 0 + $chatid,
|
||||
'user_id' => 0 + $user_id_to_ban,
|
||||
'until_date' => $time + time (),
|
||||
},
|
||||
);
|
||||
my $result;
|
||||
|
||||
if ($action eq 'mute') {
|
||||
$result = $self->muteChatMember (
|
||||
{
|
||||
'chat_id' => 0 + $chatid,
|
||||
'user_id' => 0 + $user_id_to_prosecute,
|
||||
'until_date' => $time + time (),
|
||||
},
|
||||
);
|
||||
} else {
|
||||
$result = $self->banChatMember (
|
||||
{
|
||||
'chat_id' => 0 + $chatid,
|
||||
'user_id' => 0 + $user_id_to_prosecute,
|
||||
'until_date' => $time + time (),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
if ($result->{error}) {
|
||||
$reply = 'Что-то пошло не так, не получается забанить.';
|
||||
if ($action eq 'mute') {
|
||||
$reply = 'Что-то пошло не так, не получается замьютить.';
|
||||
} else {
|
||||
$reply = 'Что-то пошло не так, не получается забанить.';
|
||||
}
|
||||
} else {
|
||||
$reply = 'Готово.';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user