// Команда FAQ
bot.command('faq', async (ctx) => {
ctx.replyWithMarkdown(`
**Ответы на вопросы о проекте:**
Какова цель проекта?
— Максимально упростить поиск Телеграмм каналов ваших любимых авторов.
У меня не украдут Google Аккаунт?
— Нет, бот имеет открытый исходный код, который может посмотреть каждый желающий на Github - https://github.com/VitoSperansky/FromYoutubeToTelegram.
Как работает бот?
— Бот просит вас авторизоваться в свой Google аккаунт, чтобы получить список ваших подписок на YouTube.
Затем система обращается к своей базе данных, где хранятся соответствия YouTube-каналов и их Телеграмм-каналов.
Если бот находит соответствия в базе данных, он записывает их в список найденных каналов.
Если YouTube-каналы, на которые вы подписаны, отсутствуют в нашей базе данных, бот отправляет запрос
в YouTube на получение ссылок социальных сетей, привязанных к каналу. Среди этих ссылок бот ищет
ссылку на Телеграмм. Найдя новую ссылку на Телеграмм-канал, бот добавляет её в базу данных.
В итоге, пользователь получает список YouTube-каналов с их Телеграмм-каналами.
Остались вопросы? - Пишите @vitosperansky
`);
});
// Команда для рассылки сообщений (только для администратора)
bot.command('send', async (ctx) => {
if (ctx.message.chat.id == MODERATOR_CHAT_ID) {
let chatId = ctx.message.text.replace('/send ', '').replace(/ [\s\S]+/, '');
let text = ctx.message.text.replace('/send ', '').replace(`${chatId} `, '').toString();
if(chatId === 'all') {
let Users = await Analytics.find()
let goodSend = [];
let badSend = [];
ctx.reply("Рассылка началась.")
for (let i = 0; i < Users.length; i++) {
try {
await bot.telegram.sendMessage(Users[i].chatId, text, { parse_mode: "HTML" });
goodSend.push(Users[i]);
} catch (error) {
badSend.push(Users[i]);
}
}
ctx.reply(`Рассылка завершена\n\nУспешно отправлено: ${goodSend.length} сообщений.\n` +
`Не получилось отправить: ${badSend.length} сообщений.`)
} else {
try {
await bot.telegram.sendMessage(chatId, text, { parse_mode: "HTML" });
ctx.reply(`Сообщение успешно отправлено пользователю. \n\nChatId: ${chatId}\nТекст: ${text}`)
} catch {
ctx.reply("Ошибка при отправке сообщения.")
}
}
} else {
ctx.reply("Вы не админ!")
}
});