const Telegraf = require('telegraf')
const Koa = require('koa')
const koaBody = require('koa-body')
const bot = new Telegraf(process.env.BOT_TOKENSTILE)
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: 10
}).firstPage(function(err, records) {
if (err) { console.error(err); return; }
records.forEach((record) => {
const eol = '\n';
let message = `Наши цены вас приятно удивят${eol}`;
const messagesRecords = [];
console.log(record.get('Наименование'));
messagesRecords.push(`${record.get('Наименование')}: ${record.get('Цена')}`)
});
message += messagesRecords.join(eol);
ctx.replyWithMarkdown(
message,
Markup.keyboard([Markup.contactRequestButton( '✈️ Отправить свой номер телефона'),' back⬅️']
)
.oneTime(true)
.resize(true)
.extra())
});
})
/*bot.action('price', (ctx) =>{
base('Price').select({
maxRecords: 10
}).eachPage(function page(records, fetchNextPage) {
const eol = '\n';
let message = `Наши цены вас приятно удивят${eol}`;
const messagesRecords = [];
records.forEach((record) => {
console.log(record.get('Наименование')),
messagesRecords.push(`${record.get('Наименование')}`);
});
message += messagesRecords.join(eol);
ctx.replyWithMarkdown(
message,
Markup.keyboard([Markup.contactRequestButton( '✈️ Отправить свой номер телефона'),' back⬅️']
)
.oneTime(true)
.resize(true)
.extra())
fetchNextPage();
}, function done(err) {
if (err) { console.error(err); return; }
} );
})*/
bot.action('price', (ctx) =>{
ctx.editMessageText('Наши цены',Markup.inlineKeyboard([[Markup.callbackButton('Детский зал','kr')],[Markup.callbackButton('Женский зал','wr')],[Markup.callbackButton('Мужской зал','mr')]]).extra())
})
bot.action('map', (ctx) =>{ctx.editMessageText('🕖 Время работы Пн-Вс 10-20',Markup.inlineKeyboard([[Markup.callbackButton('🚇м.Уручье','ur')],[Markup.callbackButton('🚇м.Грушевка','gr')],[Markup.callbackButton('🚇м.ПАРТИЗАНСКАЯ','pa')]]).extra())
})
bot.action('ur', (ctx) =>ctx.replyWithLocation(53.9475022,27.6900315))
bot.action('gr', (ctx) =>ctx.replyWithLocation(53.8897994,27.5218976))
bot.action('pa', (ctx) =>ctx.replyWithLocation(53.8740097,27.6334664))
bot.action('av', (ctx) =>{ctx.replyWithMarkdown('Александра -ТОП МАСТЕР , который работает в салоне «Стильные детки» дольше всего, мастер, которого уже успели полюбить все детки и их [родители](http://stilnie-detki.by/wp-content/uploads/2019/01/TC9A2441-%D0%BA%D0%BE%D0%BF%D0%B8%D1%8F-200x300.jpg',Markup.inlineKeyboard([[Markup.callbackButton('Записаться','order')]]).extra())})
bot.action('ek', (ctx) =>{ctx.replyWithMarkdown('У каждого мастера есть свой «профиль» - что-то, что он любит делать больше всего. Так вот, у Екатерины особая любовь к мужским удлинённым стрижкам и кудрявым [волосам](http://stilnie-detki.by/wp-content/uploads/2019/01/image-01-02-19-11-13-300x300.jpeg)',Markup.inlineKeyboard([[Markup.callbackButton('Записаться','order')]]).extra())})
bot.action('ey', (ctx) =>{ctx.replyWithMarkdown('Почти два года назад Елена переступила порог нашей парикмахерской Елена , именно тот мастер, который очень любит браться за тяжёлые [случаи](http://stilnie-detki.by/wp-content/uploads/2019/01/image-01-02-19-11-47-300x300.jpeg)',Markup.inlineKeyboard([[Markup.callbackButton('Записаться','order')]]).extra())})
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('Записаться','✅Записаться впервые')]]).extra())})
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.action('order',ctx =>{ ctx.replyWithMarkdown(`Свободное время на сегодня ` )})
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',
description:'Александра'
},
{
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',
description:'Екатерина'
},
{
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',
description:'Elena'
})
ctx.answerInlineQuery(result,{switch_pm_text:'Стильные детки-перейти в чат',
switch_pm_parameter:'hello'
})
})
/*bot end*/
bot.telegram.setWebhook('https://style-ark7nbz2zvi6.runkit.sh/')
const app = new Koa()
app.use(koaBody())
app.use((ctx, next) => ctx.method === 'POST' || ctx.url === '/'
? bot.handleUpdate(ctx.request.body, ctx.response)
: next()
)
app.listen(3000)