const Telegraf = require('telegraf')
const Koa = require('koa')
const koaBody = require('koa-body')
const bot = new Telegraf(process.env.BOT_TOKENSTILED)
var Airtable = require('airtable');
var base = new Airtable({apiKey: process.env.AIRTABLE_stile_KEY}).base(process.env.stile_BASE);
var code='45'
const { Router, Markup } = Telegraf
bot.command('start', ({ reply }) =>
reply('«Стильные детки» - первая детская парикмахерская в Минске, куда приходят с удовольствием, а уходят с улыбкой!💝', Markup
.keyboard([['🎈 О Нас'],['✅Записать ','✅✅Личный кабинет'],['🔔 Время на сегодня ','🎁Акции']])
.oneTime(true)
.resize(true)
.extra()
)
)
bot.hears('back⬅️', ({ reply }) =>
reply('«Стильные детки» - первая детская парикмахерская в Минске, куда приходят с удовольствием, а уходят с улыбкой!💝', Markup
.keyboard([['🎈 О Нас'],['✅Записаться ','✅✅Личный кабинет'],['🔔 Время на сегодня ','🎁Акции']])
.oneTime(true)
.resize(true)
.extra())
)
bot.hears('🎈 О Нас', ctx => {ctx.replyWithMarkdown('*м.Уручье* \n `пр. Независимости,185 , пом. 314 (вход со двора)` \n📞[+375 44 743 03 02](+375 44 743 03 02) \n *м.Грушевка*\n`пр. Дзержинского, 9, пом. 1038 ( вход со двора)` \n📞[+375 44 759 09 09](+375 44 759 09 09 )\n*м.ПАРТИЗАНСКАЯ*\n`пр. Партизанский, 93, пом. 1 ` \n📞[ +375 44 759 10 10]( +375 44 759 10 10)',Markup.inlineKeyboard([[Markup.callbackButton('🧞♀️Мастера','master')],[Markup.callbackButton('🗺Карта и 🕖время работы','map')],[Markup.callbackButton('💳Цены','price')]]).extra())})
bot.action('master', (ctx) =>{ctx.editMessageText('Выберите мастера',Markup.inlineKeyboard([[Markup.switchToCurrentChatButton('Мастера','')]]).extra())
})
bot.action('price', (ctx) =>{
base('Price').select({
maxRecords: 5,
view: "Grid view"
}).firstPage(function(err, records) {
if (err) { console.error(err); return; }
const messagesRecords = [];
records.forEach(function(record) {
messagesRecords.push(`${record.get('Наименование')}: ${record.get('Цена')}`)
});
const eol = '\n';
let message = `*Детский зал*${eol}`;
message += messagesRecords.join(eol);
console.log(message);
ctx.replyWithMarkdown(message,Markup.keyboard([Markup.contactRequestButton( '✈️ Отправить свой номер телефона'),' back⬅️'])
.oneTime(true)
.resize(true)
.extra())
})
})
/*
bot.action('price', (ctx) =>{ctx.replyWithMarkdown(`Наши цены вас приятно удивят\nПервая… насадка\nСтрижка под машинку-наголо`,Markup.keyboard([Markup.contactRequestButton( '✈️ Отправить свой номер телефона'),' back⬅️'])
.oneTime(true)
.resize(true)
.extra())
})*/
bot.action('map', (ctx) =>{ctx.editMessageText(`🕖 ${ctx.callbackQuery.data}Время работы Пн-Вс 10-20`,Markup.inlineKeyboard([[Markup.callbackButton('🚇м.Уручье','ur')],[Markup.callbackButton('🚇м.Грушевка','gr')],[Markup.callbackButton('🚇м.ПАРТИЗАНСКАЯ','pa')]]).extra())
})
bot.action('ur', (ctx) =>ctx.telegram.sendVenue(ctx.chat.id,53.9475022,27.6900315,'🚇м.Уручье','пр. Независимости,185 , пом. 314'))
bot.action('gr', (ctx) =>ctx.telegram.sendVenue(ctx.chat.id,53.8897994,27.5218976,'🚇м.Грушевка','пр. Дзержинского, 9, пом. 1038'))
bot.action('pa', (ctx) =>ctx.telegram.sendVenue(ctx.chat.id,53.8740097,27.6334664,'🚇м.ПАРТИЗАНСКАЯ','пр. Партизанский, 93, пом. 1'))
bot.hears('✅Записаться', ctx =>{ ctx.replyWithMarkdown(`Здравстуйте ${ctx.message.from.first_name} , оставьте свой номер телефона.Наш диспетчер согласует с вами время ` ,Markup.keyboard([Markup.contactRequestButton( '✈️ Отправить свой номер телефона'),' back⬅️']).oneTime(true).resize(true).extra())})
bot.on('contact',(ctx) =>{ctx.telegram.sendMessage(ctx.from.id, `Спасибо , 5 минут 🕑 и мы вам перезвоним ${ctx.message.contact.phone_number} `)
var phone=ctx.message.contact.phone_number;
var id=ctx.message.chat.id;
var name=ctx.message.from.first_name;
base('Client').create([
{ "fields": {
"ID Telegram":''+id+'',
"Name":name,
"Phone": ''+phone+''
}}
], function(err, records) {
if (err) {
console.error(err);
return;
}
records.forEach(function (record) {
console.log(record.getId());
});
});
})
bot.hears('🔔 Время на сегодня', ctx =>{ ctx.replyWithMarkdown(`Свободное время на сегодня ` ,Markup.inlineKeyboard([[Markup.callbackButton('12-30','1230'),Markup.callbackButton('Записаться','order')]]).extra())})
bot.on('callback_query', (ctx)=>{
const action = ctx.callbackQuery.data;
const msg = ctx.callbackQuery.message;
if (action === 'order')
{console.log(`${ctx.callbackQuery.data}`);
ctx.answerCbQuery(`Спасибо , 5 минут 🕑 и мы вам перезвоним `)}
else if (action === 'orders')
{ctx.answerCbQuery(`Спасибо, 5 минут 🕑 и мы вам перезвоним `)}
});
bot.hears('🎁Акции', ctx =>{ ctx.replyWithMarkdown(`Проголосуй 👍 за наши парикмахерские и мы вернем *2р* от [чека](https://images.unsplash.com/photo-1509909756405-be0199881695?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=60)` ,Markup.inlineKeyboard([[Markup.callbackButton('Подписаться на акции','acc')]]).extra())})
bot.hears('✅✅Личный кабинет', ctx =>{ ctx.replyWithMarkdown(`Здравстуйте ${ctx.message.from.first_name} , укажите ваш код`)})
bot.on('text', (ctx, next) => {
if (ctx.message.text==code)
{
return ctx.reply(`Ваша скидка 10%`)}
ctx.replyWithMarkdown(`Вы не зарегистрированы. Пройдите регистрацию. Спасибо,оставьте свой номер телефона ` ,Markup.keyboard([Markup.contactRequestButton( '✈️ Отправить свой номер телефона'),' back⬅️']).oneTime(true)
.resize(true).extra())
})
bot.on('inline_query', (ctx) => {const result =[]
result.push({
type:'photo',
id:'0',
photo_url:'http://stilnie-detki.by/wp-content/uploads/2019/01/TC9A2441-%D0%BA%D0%BE%D0%BF%D0%B8%D1%8F-200x300.jpg',
thumb_url:'http://stilnie-detki.by/wp-content/uploads/2019/01/TC9A2441-%D0%BA%D0%BE%D0%BF%D0%B8%D1%8F-200x300.jpg',
parse_mode:'Markdown',
caption:'*АЛЕКСАНДРА ВОЛКОВА*'
},
{
type:'photo',
id:'1',
photo_url:'http://stilnie-detki.by/wp-content/uploads/2019/01/image-01-02-19-11-13-300x300.jpeg',
thumb_url:'http://stilnie-detki.by/wp-content/uploads/2019/01/image-01-02-19-11-13-300x300.jpeg',
parse_mode:'Markdown',
caption:'*ЕКАТЕРИНА КУЦАЕВА*'
},
{
type:'photo',
id:'2',
photo_url:'http://stilnie-detki.by/wp-content/uploads/2019/01/image-01-02-19-11-47-300x300.jpeg',
thumb_url:'http://stilnie-detki.by/wp-content/uploads/2019/01/image-01-02-19-11-47-300x300.jpeg',
parse_mode:'Markdown',
caption:'*ЕЛЕНА ЯСИНСКАЯ*'
})
ctx.answerInlineQuery(result,{switch_pm_text:'Стильные детки🤰➡️перейти в чат-бот💭',
switch_pm_parameter:'hello'
})
})
/*bot.launch()*/
bot.telegram.setWebhook('https://stilniedetki2-c0mcmvuvzxcp.runkit.sh/a125')
const app = new Koa()
app.use(koaBody())
app.use(async (ctx, next) => {
if (ctx.method !== 'POST' || ctx.url !== '/a125') {
return next()
}
await bot.handleUpdate(ctx.request.body, ctx.response)
ctx.status = 200
})
app.use(async (ctx) => {
ctx.body = 'Hello World'
})
app.listen(3000)