rename mute/unmute to ignore/unignore and add CHAT_ADMIN requirement for them and ban/unban commands
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
export enum Requirement {
|
||||
BOT_CREATOR,
|
||||
BOT_ADMIN,
|
||||
BOT_CHAT_ADMIN,
|
||||
CHAT,
|
||||
CHAT_ADMIN,
|
||||
BOT_CHAT_ADMIN,
|
||||
REPLY
|
||||
}
|
||||
@@ -19,14 +19,18 @@ export class Requirements {
|
||||
return this.requirements.includes(Requirement.BOT_ADMIN);
|
||||
}
|
||||
|
||||
isRequiresBotChatAdmin(): boolean {
|
||||
return this.requirements.includes(Requirement.BOT_CHAT_ADMIN);
|
||||
}
|
||||
|
||||
isRequiresChat(): boolean {
|
||||
return this.requirements.includes(Requirement.CHAT);
|
||||
}
|
||||
|
||||
isRequiresChatAdmin(): boolean {
|
||||
return this.requirements.includes(Requirement.CHAT_ADMIN);
|
||||
}
|
||||
|
||||
isRequiresBotChatAdmin(): boolean {
|
||||
return this.requirements.includes(Requirement.BOT_CHAT_ADMIN);
|
||||
}
|
||||
|
||||
isRequiresReply(): boolean {
|
||||
return this.requirements.includes(Requirement.REPLY);
|
||||
}
|
||||
|
||||
+2
-1
@@ -11,10 +11,11 @@ export class Ban extends ChatCommand {
|
||||
description = "ban user from chat";
|
||||
|
||||
requirements = Requirements.Build(
|
||||
Requirement.BOT_ADMIN,
|
||||
Requirement.CHAT,
|
||||
Requirement.CHAT_ADMIN,
|
||||
Requirement.BOT_CHAT_ADMIN,
|
||||
Requirement.REPLY,
|
||||
Requirement.BOT_ADMIN
|
||||
);
|
||||
|
||||
async execute(msg: Message) {
|
||||
|
||||
@@ -7,11 +7,17 @@ import {fullName, logError, oldSendMessage} from "../util/utils";
|
||||
import {botUser} from "../index";
|
||||
import {Environment} from "../common/environment";
|
||||
|
||||
export class Mute extends ChatCommand {
|
||||
title = "/mute";
|
||||
export class Ignore extends ChatCommand {
|
||||
title = "/ignore";
|
||||
description = "Bot will ignore user";
|
||||
|
||||
requirements = Requirements.Build(Requirement.BOT_ADMIN, Requirement.REPLY);
|
||||
requirements = Requirements.Build(
|
||||
Requirement.BOT_ADMIN,
|
||||
Requirement.CHAT,
|
||||
Requirement.CHAT_ADMIN,
|
||||
Requirement.BOT_CHAT_ADMIN,
|
||||
Requirement.REPLY,
|
||||
);
|
||||
|
||||
async execute(msg: Message) {
|
||||
if (!msg.reply_to_message) return;
|
||||
@@ -3,7 +3,7 @@ import {Requirements} from "../base/requirements";
|
||||
import {Requirement} from "../base/requirement";
|
||||
import {Message} from "typescript-telegram-bot-api";
|
||||
import {bot, botUser} from "../index";
|
||||
import {fullName, logError, oldSendMessage, oldReplyToMessage} from "../util/utils";
|
||||
import {fullName, logError, oldReplyToMessage, oldSendMessage} from "../util/utils";
|
||||
import {Environment} from "../common/environment";
|
||||
|
||||
export class Unban extends ChatCommand {
|
||||
@@ -11,10 +11,11 @@ export class Unban extends ChatCommand {
|
||||
description = "unban user from chat";
|
||||
|
||||
requirements = Requirements.Build(
|
||||
Requirement.BOT_ADMIN,
|
||||
Requirement.CHAT,
|
||||
Requirement.CHAT_ADMIN,
|
||||
Requirement.BOT_CHAT_ADMIN,
|
||||
Requirement.REPLY,
|
||||
Requirement.BOT_ADMIN
|
||||
);
|
||||
|
||||
async execute(msg: Message) {
|
||||
|
||||
@@ -7,10 +7,16 @@ import {Message} from "typescript-telegram-bot-api";
|
||||
import {botUser} from "../index";
|
||||
import {Environment} from "../common/environment";
|
||||
|
||||
export class Unmute extends ChatCommand {
|
||||
title = "/unmute";
|
||||
export class Unignore extends ChatCommand {
|
||||
title = "/unignore";
|
||||
description = "Bot will start responding to the user";
|
||||
requirements = Requirements.Build(Requirement.BOT_ADMIN, Requirement.CHAT, Requirement.REPLY);
|
||||
requirements = Requirements.Build(
|
||||
Requirement.BOT_ADMIN,
|
||||
Requirement.CHAT,
|
||||
Requirement.CHAT_ADMIN,
|
||||
Requirement.BOT_CHAT_ADMIN,
|
||||
Requirement.REPLY,
|
||||
);
|
||||
|
||||
async execute(msg: Message) {
|
||||
if (!msg.reply_to_message) return;
|
||||
+4
-4
@@ -15,8 +15,8 @@ import {
|
||||
} from "./util/utils";
|
||||
import {Ae} from "./commands/ae";
|
||||
import {Help} from "./commands/help";
|
||||
import {Mute} from "./commands/mute";
|
||||
import {Unmute} from "./commands/unmute";
|
||||
import {Ignore} from "./commands/ignore";
|
||||
import {Unignore} from "./commands/unignore";
|
||||
import {Ping} from "./commands/ping";
|
||||
import {RandomString} from "./commands/random-string";
|
||||
import {SystemSpecs} from "./commands/system-specs";
|
||||
@@ -127,8 +127,8 @@ export const chatCommands: ChatCommand[] = [
|
||||
new Help(),
|
||||
new Test(),
|
||||
new Ae(),
|
||||
new Mute(),
|
||||
new Unmute(),
|
||||
new Ignore(),
|
||||
new Unignore(),
|
||||
new Ping(),
|
||||
new RandomInt(),
|
||||
new RandomString(),
|
||||
|
||||
+18
-7
@@ -101,23 +101,34 @@ export async function checkRequirements(cmd: ChatCommand | null, msg: Message):
|
||||
return false;
|
||||
}
|
||||
|
||||
if (reqs.isRequiresChat() && msg.chat.type === "private") {
|
||||
console.log(`${cmd.title}: chatId is bad`);
|
||||
await oldReplyToMessage(msg, "Тут Вам не чат.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (reqs.isRequiresChatAdmin()) {
|
||||
const member = await bot.getChatMember({chat_id: msg.chat.id, user_id: msg.from.id});
|
||||
const isAdmin = member.status === "administrator" || member.status === "creator";
|
||||
|
||||
if (!isAdmin) {
|
||||
console.log(`${cmd.title}: chatAdminId is bad`);
|
||||
await oldReplyToMessage(msg, "Вы не являетесь администратором чата.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (reqs.isRequiresBotChatAdmin() && msg.chat.type !== "private") {
|
||||
const member = await bot.getChatMember({chat_id: msg.chat.id, user_id: botUser.id});
|
||||
const isAdmin = member.status === "administrator" || member.status === "creator";
|
||||
|
||||
if (!isAdmin) {
|
||||
console.log(`${cmd.title}: chatAdminId is bad`);
|
||||
console.log(`${cmd.title}: botChatAdminId is bad`);
|
||||
await oldReplyToMessage(msg, "Бот не является администратором чата.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (reqs.isRequiresChat() && msg.chat.type === "private") {
|
||||
console.log(`${cmd.title}: chatId is bad`);
|
||||
await oldReplyToMessage(msg, "Тут Вам не чат.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (reqs.isRequiresReply() && !msg.reply_to_message) {
|
||||
console.log(`${cmd.title}: replyMessage is bad`);
|
||||
await oldReplyToMessage(msg, "Отсутствует ответ на сообщение.");
|
||||
|
||||
Reference in New Issue
Block a user