Advertisement
Guest User

Untitled

a guest
Sep 10th, 2020
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.29 KB | None | 0 0
  1. #!venv/bin/python
  2. import logging
  3. from aiogram import Bot, Dispatcher, executor, types
  4. from aiogram.dispatcher import FSMContext
  5. from aiogram.contrib.fsm_storage.memory import MemoryStorage
  6.  
  7. import utils
  8. import config
  9. import messages
  10. import keyboards
  11.  
  12.  
  13. logging.basicConfig(level=logging.INFO)
  14. bot = Bot(token=config.BOT_TOKEN)
  15. dp = Dispatcher(bot, storage=MemoryStorage())
  16. list_of_users = {}
  17.  
  18.  
  19. class User:
  20.     def __init__(self, service=None, photo=None, name=None, phone=None):
  21.         self.service = service
  22.         self.photo = photo
  23.         self.name = name
  24.         self.phone = phone
  25.  
  26.  
  27. @dp.message_handler(commands=['start'])
  28. async def welcome(message: types.Message):
  29.     list_of_users[message.chat.id] = User()
  30.     sti = open('static/hello.webp', 'rb')
  31.     await message.reply_sticker(sticker=sti)
  32.     await message.reply(messages.WELCOME.format(message.from_user), parse_mode='html')
  33.     await selection_item(message)
  34.  
  35.  
  36. async def selection_item(message: types.Message):
  37.     await message.answer(messages.SELECTION_ITEM, reply_markup=await keyboards.attach_keyboard())
  38.  
  39.  
  40. @dp.message_handler(text='💵 Получить карту', state='*')
  41. async def get_card(message: types.Message):
  42.     user = list_of_users[message.chat.id]
  43.     user.service = '💵 Получить карту'
  44.     await message.answer(messages.CARD)
  45.     await message.answer(messages.PHOTO, reply_markup=await keyboards.add_button_close())
  46.     await utils.Form.waiting_photo.set()
  47.  
  48.  
  49. @dp.message_handler(text='📞 Перезвоните мне', state='*')
  50. async def call_me_back(message: types.Message):
  51.     user = list_of_users[message.chat.id]
  52.     user.service = '📞 Перезвоните мне'
  53.     if user.name == None:
  54.         await message.answer(messages.NAME, reply_markup=await keyboards.add_button_close())
  55.         await utils.Form.waiting_name.set()
  56.     else:
  57.         await message.answer(messages.USE_DATA, reply_markup=await keyboards.inline_keyboard_bool())
  58.  
  59.  
  60. @dp.callback_query_handler(lambda call: True)
  61. async def handler(call: types.CallbackQuery):
  62.     if call.message == 'yes':
  63.         await call.answer('ОК')
  64.  
  65.  
  66. @dp.message_handler(text='🧾 Режим работы и контакты', state='*')
  67. async def get_contact(message: types.Message):
  68.     sti = open('static/ok.webp', 'rb')
  69.     await message.answer_sticker(sticker=sti)
  70.     await message.answer(messages.CONTACTS, reply_markup=await keyboards.inline_keyboard())
  71.  
  72.  
  73. @dp.message_handler(text='📦 Доставка', state='*')
  74. async def get_delivery(message: types.Message):
  75.     await message.answer(messages.DELIVERY)
  76.  
  77.  
  78. @dp.message_handler(text='📱 Чат мастеров в Whatsapp', state='*')
  79. async def get_chat(message: types.Message):
  80.     await message.answer(messages.CHAT_OF_MASTERS)
  81.  
  82.  
  83. @dp.message_handler(text='Отмена', state='*')
  84. async def close(message: types.Message):
  85.     await selection_item(message)
  86.  
  87.  
  88. @dp.message_handler(state=utils.Form.waiting_photo, content_types='photo')
  89. async def get_photo(message: types.Message):
  90.     user = list_of_users[message.chat.id]
  91.     user.photo = message.photo[-1].file_id
  92.     await message.answer(messages.NAME)
  93.     await utils.Form.waiting_name.set()
  94.  
  95.  
  96. @dp.message_handler(state=utils.Form.waiting_name, content_types='text')
  97. async def get_name(message: types.Message):
  98.     user = list_of_users[message.chat.id]
  99.     user.name = str(message.text)
  100.     await message.answer(messages.PHONE)
  101.     await utils.Form.waiting_phone.set()
  102.  
  103.  
  104. @dp.message_handler(state=utils.Form.waiting_phone, content_types='text')
  105. async def get_phone(message: types.Message):
  106.     user = list_of_users[message.chat.id]
  107.     user.phone = int(message.text)
  108.     await send(message)
  109.  
  110.  
  111. @dp.message_handler(state=utils.Form.waiting_send)
  112. async def send(message: types.Message):
  113.     user = list_of_users[message.chat.id]
  114.     if user.service == '📞 Перезвоните мне':
  115.         await message.answer(f'{user.name}\n{user.phone}', reply_markup=await keyboards.attach_keyboard())
  116.     elif user.service == '💵 Получить карту':
  117.         await message.answer_photo(user.photo)
  118.         await message.answer(f'{user.name}\n{user.phone}', reply_markup=await keyboards.attach_keyboard())
  119.  
  120.  
  121. if __name__ == '__main__':
  122.     executor.start_polling(dp, skip_updates=True)
  123.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement