Size: a a a

Боты на Telegraf

2020 November 30

i

ik in Боты на Telegraf
Пауза во всем боте?
источник

r

rev8ati in Боты на Telegraf
ik
Пауза во всем боте?
не, только ответ юзеру который пинганул бота запросом в монгу
источник

r

rev8ati in Боты на Telegraf
сам бот продолжит рассылку
источник

r

rev8ati in Боты на Telegraf
она закончится когда, юзер получит свой ответ
источник

I

ILLEGAL in Боты на Telegraf
rev8ati
вот с этим отдаёт, а если delay в 0 поставить, будет пауза пока не кончится рассылка
Короч, делай через очередь и всё
Вот можешь глянуть, я как-то начал писать либу для этого но забил https://github.com/RealPeha/telegraf-broadcast/blob/master/src/index.js

Её не советую использовать, просто можешь посмотреть на решение. Там ничего сверх сложного, просто очередь
источник

r

rev8ati in Боты на Telegraf
ILLEGAL
Короч, делай через очередь и всё
Вот можешь глянуть, я как-то начал писать либу для этого но забил https://github.com/RealPeha/telegraf-broadcast/blob/master/src/index.js

Её не советую использовать, просто можешь посмотреть на решение. Там ничего сверх сложного, просто очередь
ага, спасибо, погляжу
источник

KL

Kirill "Loskir&... in Боты на Telegraf
https://github.com/sindresorhus/p-limit вот это для этого отлично подходит
источник

KL

Kirill "Loskir&... in Боты на Telegraf
const limit = pLimit(5)

await User.find({ sent: true }).cursor()
 .eachAsync((user) => limit(() => sendHoroscope(bot, user))
источник

I

ILLEGAL in Боты на Telegraf
Kirill "Loskir" 🍏16+14 Loskutov
const limit = pLimit(5)

await User.find({ sent: true }).cursor()
 .eachAsync((user) => limit(() => sendHoroscope(bot, user))
так там все равно же await стоит
источник

OS

Oscar S in Боты на Telegraf
Kirill "Loskir" 🍏16+14 Loskutov
const limit = pLimit(5)

await User.find({ sent: true }).cursor()
 .eachAsync((user) => limit(() => sendHoroscope(bot, user))
а смысл
источник

OS

Oscar S in Боты на Telegraf
там все равно лимиты
источник

KL

Kirill "Loskir&... in Боты на Telegraf
не больше 5 параллельных отправок сообщения
источник

KL

Kirill "Loskir&... in Боты на Telegraf
можно сказать 5 потоков
источник

I

ILLEGAL in Боты на Telegraf
да, но все равно бот не будет пользователю отвечать пока рассылка не закончится
источник

KL

Kirill "Loskir&... in Боты на Telegraf
ILLEGAL
да, но все равно бот не будет пользователю отвечать пока рассылка не закончится
ну это легко можно исправить
источник

АТ

Александр Тарасюк... in Боты на Telegraf
Как определять юзера, который перешёл по ссылке в бот? Какие методы более точные?
источник

KL

Kirill "Loskir&... in Боты на Telegraf
Александр Тарасюк
Как определять юзера, который перешёл по ссылке в бот? Какие методы более точные?
делаешь ссылку t.me/bot?start=abc
источник

OS

Oscar S in Боты на Telegraf
rev8ati
ну я читаю доку на ноде по child_process, не совсем понятно как с ботом скрестить
бота экпортят не просто так
источник

OS

Oscar S in Боты на Telegraf
import util from 'util';
import { Markup as m} from 'telegraf';
import bot from '../app';

const delay = util.promisify(setTimeout);

async function task() {
 const { telegram: tg } = bot;
 const { api } = bot.context;
 const query = { status: 1 };
 const clients = api.service('clients').find({query});
 for await (const client of clients) {
   const keyboard = m.inlineKeyboard([]).extra();
   await tg.sendMessage(client.chatId, '...', keyboard);
   await delay(250);
 }
}

task();
источник

АТ

Александр Тарасюк... in Боты на Telegraf
В контексте будет метка?
источник