Всегда отвечать на сообщения
Иногда необходимо отправлять сообщения в виде ответов во всех случаях, особенно для ботов, которые предназначены для использования в группах. Обычно мы делаем это, добавляя reply
к методам, которые отправляют сообщение: send
, reply
, send
, reply
и т.д. Однако, если вы будете делать это для каждого сообщения, это может стать беспорядочным и скучным.
Этот плагин устанавливает свойства reply
для всех методов reply*
и send*
, которые его поддерживают, чтобы каждое сообщение было ответом на сообщение и чат, которые его вызвали.
Вы можете передать объект options со свойством allow
функциям add
и auto
, что позволит вашему боту отправлять сообщения, даже если сообщение, на которое отвечают, больше не существует.
Использование
В определенном контексте
Если вы хотите, чтобы все сообщения отправлялись в определенном контексте (например, по определенной команде), вы можете специально применить плагин к ним:
import { Bot } from "grammy";
import { addReplyParam } from "@roziscoding/grammy-autoquote";
const bot = new Bot("");
bot.command("demo", async (ctx) => {
ctx.api.config.use(addReplyParam(ctx));
await ctx.reply("Тестовая команда!"); // это будет цитировать сообщение пользователя
});
bot.start();
2
3
4
5
6
7
8
9
10
11
const { Bot } = require("grammy");
const { addReplyParam } = require("@roziscoding/grammy-autoquote");
const bot = new Bot("");
bot.command("demo", async (ctx) => {
ctx.api.config.use(addReplyParam(ctx));
await ctx.reply("Тестовая команда!"); // это будет цитировать сообщение пользователя
});
bot.start();
2
3
4
5
6
7
8
9
10
11
import { Bot } from "https://deno.land/x/grammy@v1.30.0/mod.ts";
import { addReplyParam } from "https://deno.land/x/grammy_autoquote@v2.0.8/mod.ts";
const bot = new Bot("");
bot.command("demo", async (ctx) => {
ctx.api.config.use(addReplyParam(ctx));
await ctx.reply("Тестовая команда!"); // это будет цитировать сообщение пользователя
});
bot.start();
2
3
4
5
6
7
8
9
10
11
В каждом контексте
Если вы хотите, чтобы каждое отправленное сообщение цитировало сообщения пользователя, которые использовали команду, вы можете применить плагин таким образом:
import { Bot } from "grammy";
import { autoQuote } from "@roziscoding/grammy-autoquote";
const bot = new Bot("");
bot.use(autoQuote());
bot.command("demo", async (ctx) => {
await ctx.reply("Тестовая команда!"); // это будет цитировать сообщение пользователя
});
bot.command("hello", async (ctx) => {
await ctx.reply("Привет :)"); // здесь также цитируется сообщение пользователя
});
bot.start();
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const { Bot } = require("grammy");
const { autoQuote } = require("@roziscoding/grammy-autoquote");
const bot = new Bot("");
bot.use(autoQuote());
bot.command("demo", async (ctx) => {
await ctx.reply("Тестовая команда!"); // это будет цитировать сообщение пользователя
});
bot.command("hello", async (ctx) => {
await ctx.reply("Привет :)"); // здесь также цитируется сообщение пользователя
});
bot.start();
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import { Bot } from "https://deno.land/x/grammy@v1.30.0/mod.ts";
import { autoQuote } from "https://deno.land/x/grammy_autoquote@v2.0.8/mod.ts";
const bot = new Bot("");
bot.use(autoQuote());
bot.command("demo", async (ctx) => {
await ctx.reply("Тестовая команда!"); // это будет цитировать сообщение пользователя
});
bot.command("hello", async (ctx) => {
await ctx.reply("Привет :)"); // здесь также цитируется сообщение пользователя
});
bot.start();
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Краткая информация о плагине
- Название: Autoquote
- Исходник