SttDet

node v10.24.1
version: 1.0.0
endpointsharetweet
const Telegraf = require('telegraf') const Composer = require('telegraf/composer') const session = require('telegraf/session'); const Stage = require('telegraf/stage'); const WizardScene = require('telegraf/scenes/wizard'); 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' var now = new Date(); var noww = now.getDate()+1; var nowww = now.getDate()+2; const { Router, Markup } = Telegraf bot.command('start', async({ reply }) => await reply('«Стильные детки» - первая детская парикмахерская в Минске, куда приходят с удовольствием, а уходят с улыбкой!💝', Markup .keyboard([['🎈 О Нас'],['✅Записать ','✅✅Личный кабинет'],['🔔 Время на сегодня ','🎁Акции- Опросы']]) .oneTime(true) .resize(true) .extra() ) ) bot.hears('back⬅️',async ({ reply }) => await reply('«Стильные детки» - первая детская парикмахерская в Минске, куда приходят с удовольствием, а уходят с улыбкой!💝', Markup .keyboard([['🎈 О Нас'],['✅Записаться ','✅✅Личный кабинет'],['🔔 Время на сегодня ','🎁Акции-Опросы']]) .oneTime(true) .resize(true) .extra()) ) bot.hears('🎈 О Нас',async ctx => {await 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', async (ctx) =>{await ctx.editMessageText('Выберите мастера',Markup.inlineKeyboard([[Markup.switchToCurrentChatButton('Мастера','')]]).extra()) }) bot.action('price', (ctx,next) =>{ 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.telegram.sendMessage(ctx.from.id,message,{parse_mode:'Markdown'}) }); }) /* bot.action('price', (ctx) =>{ctx.replyWithMarkdown(`Наши цены вас приятно удивят\nПервая… насадка\nСтрижка под машинку-наголо`,Markup.keyboard([Markup.contactRequestButton( '✈️ Отправить свой номер телефона'),' back⬅️']) .oneTime(true) .resize(true) .extra()) })*/ bot.action('map', (ctx) =>{ctx.editMessageText(`🕖 Время работы Пн-Вс 10-20`,Markup.inlineKeyboard([[Markup.callbackButton('🚇м.Уручье','ur')],[Markup.callbackButton('🚇м.Грушевка','gr')],[Markup.callbackButton('🚇м.ПАРТИЗАНСКАЯ','pa')]]).extra()) }) bot.action('ur',async (ctx) => await ctx.telegram.sendVenue(ctx.chat.id,53.9475022,27.6900315,'🚇м.Уручье','пр. Независимости,185 , пом. 314')) bot.action('gr', async (ctx) =>await ctx.telegram.sendVenue(ctx.chat.id,53.8897994,27.5218976,'🚇м.Грушевка','пр. Дзержинского, 9, пом. 1038')) bot.action('pa', async (ctx) =>await ctx.telegram.sendVenue(ctx.chat.id,53.8740097,27.6334664,'🚇м.ПАРТИЗАНСКАЯ','пр. Партизанский, 93, пом. 1')) const superWizard = new WizardScene( 'super-wizard', ctx => { ctx.replyWithMarkdown(`Выберите станцию метро` ,Markup.inlineKeyboard([[Markup.callbackButton('🚇м.Уручье','Уручье')],[Markup.callbackButton('🚇м.Грушевка','Грушевка')],[Markup.callbackButton('🚇м.ПАРТИЗАНСКАЯ','Партизанская')]]).extra()); ctx.wizard.state.data = {}; return ctx.wizard.next(); }, ctx => { ctx.wizard.state.data.metro = ctx.callbackQuery.data; ctx.editMessageText(`Выберите стрижку`,Markup.inlineKeyboard([[Markup.callbackButton('Первая стрижка в жизни малыша','первая_стрижка')],[Markup.callbackButton('Модельная стрижка мальчик/девочка','мальчик/девочка')],[Markup.callbackButton('Семейная стрижка','семейная')],[Markup.callbackButton('Взрослая модельная стрижка','взрослая')]]).extra()); return ctx.wizard.next(); }, ctx => { ctx.wizard.state.data.usluga =ctx.callbackQuery.data; ctx.editMessageText(`Запись на три дня`,Markup.inlineKeyboard([[Markup.callbackButton(`${now.getDate()}`,`${now.getDate()}`),Markup.callbackButton(`${noww}`,`${noww}`),Markup.callbackButton(`${nowww}`,`${nowww}`)]]).extra()); return ctx.wizard.next(); }, ctx => { ctx.wizard.state.data.chislo = ctx.callbackQuery.data; ctx.editMessageText(`Желаемое время с 10 до 19:30 //комментарий`); return ctx.wizard.next(); }, ctx => { ctx.wizard.state.data.time = ctx.message.text; ctx.replyWithMarkdown(`*Стильные детки* согласует с вами свободное время,оставьте свой номер телефона ` ,Markup.keyboard([Markup.contactRequestButton( '✈️ Отправить свой номер телефона'),' back⬅️']).oneTime(true).resize(true).extra()) return ctx.wizard.next(); }, ctx => { ctx.wizard.state.data.contact = ctx.message.contact; var id=ctx.message.chat.id; var name=ctx.message.from.first_name; var phones=ctx.message.contact.phone_number var com=`метро(${ctx.wizard.state.data.metro})/дата(${ctx.wizard.state.data.chislo})/время(${ctx.wizard.state.data.time})/стрижка(${ctx.wizard.state.data.usluga})` base('Client').create([ { "fields": { "ID Telegram":''+id+'', "Name":name, "Phone":''+phones+'', "комментарий":com }} ], function(err, records) { if (err) { console.error(err); return; } records.forEach(function (record) { console.log(record.getId()); }); }); ctx.reply(`Спасибо ${ctx.message.from.first_name}, в течение 10 минут мы вам перезвоним`); return ctx.scene.leave(); } ); const stage = new Stage([superWizard]); bot.use(session()); bot.use(stage.middleware()); bot.hears('✅Записаться', ctx => { ctx.scene.enter('super-wizard'); }) // bot.hears('🔔 Время на сегодня', async ctx => { let array = [1, 2, 3, 4, 5] array.forEach(async num => { await ctx.reply(num) }) }) // bot.on('callback_query', (ctx)=>{ const action = ctx.callbackQuery.data; const msg = ctx.callbackQuery.message; if (action === 'order') {console.log(`${ctx.callbackQuery.data}`); ctx.replyWithMarkdown(`Спасибо,оставьте свой номер телефона `,Markup.keyboard([Markup.contactRequestButton( '✈️ Отправить свой номер телефона'),' back⬅️']).oneTime(true) .resize(true).extra())} else if (action === 'orders') {ctx.telegram.sendMessage(ctx.from.id,`Александра -ТОП МАСТЕР , который работает в салоне «Стильные детки» дольше всего, мастер, которого уже успели полюбить все детки и их родители☺️`)} else if (action === 'orderss') {ctx.telegram.sendMessage(ctx.from.id,`У каждого мастера есть свой «профиль» - что-то, что он любит делать больше всего. Так вот, у Екатерины особая любовь к мужским удлинённым стрижкам и кудрявым волосам.`)} else if (action === 'ordersss') {ctx.telegram.sendMessage(ctx.from.id,`Почти два года назад Елена переступила порог нашей парикмахерской Елена , именно тот мастер, который очень любит браться за «тяжёлые случаи»`)} else if (action === 'acc') {ctx.answerCbQuery(`Спасибо мы будем вас уведомлять о наших акциях`)} }); bot.hears('🎁Акции-Опросы', ctx =>{ ctx.replyWithMarkdown(`Подписывайся на акции и получай персональные [скидки](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) { ctx.reply(`Ваша скидка 10%`)} ctx.replyWithMarkdown(`Вы не зарегистрированы. Пройдите регистрацию. Спасибо,оставьте свой номер телефона ` ,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 ids=ctx.message.chat.id; var names=ctx.message.from.first_name; base('Client').create([ { "fields": { "ID Telegram":''+ids+'', "Name":names, "Phone": ''+phone+'' }} ], function(err, records) { if (err) { console.error(err); return; } records.forEach(function (record) { console.log(record.getId()); }); }); }) 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:'*АЛЕКСАНДРА ВОЛКОВА*', reply_markup:Markup.inlineKeyboard([ [Markup.callbackButton(`Подробнее`,`orders`)]]) }, { 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:'*ЕКАТЕРИНА КУЦАЕВА*', reply_markup:Markup.inlineKeyboard([ [Markup.callbackButton(`Подробнее`,`orderss`)]]) }, { 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:'*ЕЛЕНА ЯСИНСКАЯ*', reply_markup:Markup.inlineKeyboard([ [Markup.callbackButton(`Подробнее`,`ordersss`)]]) }) ctx.answerInlineQuery(result,{switch_pm_text:'Стильные детки перейти в чат-бот', switch_pm_parameter:'hello' }) }) /*bot.launch()*/ bot.telegram.setWebhook('https://stilnie-fhn3wsoeqn7l.runkit.sh/125') const app = new Koa() app.use(koaBody()) app.use(async (ctx, next) => { if (ctx.method !== 'POST' || ctx.url !== '/125') { return next() } await bot.handleUpdate(ctx.request.body, ctx.response) ctx.status = 200 }) app.use(async (ctx) => { ctx.body = 'Hello World' }) app.listen(3000)
Loading…

no comments

    sign in to comment