работает через инлайн мод э, надо будет в botfather включить
т е пишите @юзербота 22.12.2003
const TelegramBot = require('node-telegram-bot-api');
const API_KEY_BOT = 'токен';
const bot = new TelegramBot(API_KEY_BOT, {
polling: true
});
bot.on('text', async msg => {
try {
if(msg.text == '/start'){
await bot.sendMessage(msg.chat.id, '<i>*runned*</i>\n', { parse_mode: 'HTML' })
}
}
catch (error){
console.log(error)
}
})
bot.on('inline_query', query => {
try {
// Получаем текст запроса пользователя
const queryString = query.query;
// Разбиваем строку на массив по точке
const parts = queryString.split('.');
// Если количество частей не равно 3, значит, формат ввода неверен
if (parts.length !== 3) {
throw new Error('Неверный формат ввода даты. Используйте формат dd.mm.yyyy');
}
// Парсим дату из частей
const day = parseInt(parts[0], 10);
const month = parseInt(parts[1], 10) - 1; // Месяцы в JavaScript начинаются с 0
const year = parseInt(parts[2], 10);
// Создаем объект Date
const birthDate = new Date(year, month, day);
// Получаем текущую дату
const currentDate = new Date();
// Вычисляем возраст с точностью до долей
const ageMilliseconds = currentDate - birthDate;
const ageYears = ageMilliseconds / (1000 * 60 * 60 * 24 * 365.25); // Учитываем високосные года
const roundedAge = Math.round(ageYears * 100000) / 100000; // Округляем до пяти знаков после запятой
// Создаем текст для отправки пользователю
const messageText = <i>u've lived:</i> ${roundedAge};
// Формируем результат для ответа на inline запрос
const results = [{
type: 'article',
id: '1',
title: 'time is endless, until it isn\'t',
description: 'how much do you lost?',
input_message_content: {
message_text: messageText, parse_mode: 'HTML'
}
}];
// Отправляем результат пользователю
bot.answerInlineQuery(query.id, results, {
cache_time: 0
});
} catch (error) {
console.error('Error processing inline query:', error.message);
// Формируем сообщение об ошибке
const errorMessage = 'Произошла ошибка при обработке вашего запроса. Пожалуйста, попробуйте еще раз позже.';
// Формируем результат для ответа на inline запрос с сообщением об ошибке
const errorResult = [{
type: 'article',
id: '1',
title: 'format: dd.mm.yyyy',
input_message_content: {
message_text: errorMessage
}
}];
// Отправляем результат с сообщением об ошибке пользователю
bot.answerInlineQuery(query.id, errorResult, {
cache_time: 0
});
}});
т е пишите @юзербота 22.12.2003
const TelegramBot = require('node-telegram-bot-api');
const API_KEY_BOT = 'токен';
const bot = new TelegramBot(API_KEY_BOT, {
polling: true
});
bot.on('text', async msg => {
try {
if(msg.text == '/start'){
await bot.sendMessage(msg.chat.id, '<i>*runned*</i>\n', { parse_mode: 'HTML' })
}
}
catch (error){
console.log(error)
}
})
bot.on('inline_query', query => {
try {
// Получаем текст запроса пользователя
const queryString = query.query;
// Разбиваем строку на массив по точке
const parts = queryString.split('.');
// Если количество частей не равно 3, значит, формат ввода неверен
if (parts.length !== 3) {
throw new Error('Неверный формат ввода даты. Используйте формат dd.mm.yyyy');
}
// Парсим дату из частей
const day = parseInt(parts[0], 10);
const month = parseInt(parts[1], 10) - 1; // Месяцы в JavaScript начинаются с 0
const year = parseInt(parts[2], 10);
// Создаем объект Date
const birthDate = new Date(year, month, day);
// Получаем текущую дату
const currentDate = new Date();
// Вычисляем возраст с точностью до долей
const ageMilliseconds = currentDate - birthDate;
const ageYears = ageMilliseconds / (1000 * 60 * 60 * 24 * 365.25); // Учитываем високосные года
const roundedAge = Math.round(ageYears * 100000) / 100000; // Округляем до пяти знаков после запятой
// Создаем текст для отправки пользователю
const messageText = <i>u've lived:</i> ${roundedAge};
// Формируем результат для ответа на inline запрос
const results = [{
type: 'article',
id: '1',
title: 'time is endless, until it isn\'t',
description: 'how much do you lost?',
input_message_content: {
message_text: messageText, parse_mode: 'HTML'
}
}];
// Отправляем результат пользователю
bot.answerInlineQuery(query.id, results, {
cache_time: 0
});
} catch (error) {
console.error('Error processing inline query:', error.message);
// Формируем сообщение об ошибке
const errorMessage = 'Произошла ошибка при обработке вашего запроса. Пожалуйста, попробуйте еще раз позже.';
// Формируем результат для ответа на inline запрос с сообщением об ошибке
const errorResult = [{
type: 'article',
id: '1',
title: 'format: dd.mm.yyyy',
input_message_content: {
message_text: errorMessage
}
}];
// Отправляем результат с сообщением об ошибке пользователю
bot.answerInlineQuery(query.id, errorResult, {
cache_time: 0
});
}});