def register(message): chat_id = message.from_user.id username = message.chat.username #logging.info('Username is '+username) if username != None: try: bot.send_chat_action( chat_id, 'typing') # show the bot "typing" (max. 5 secs) time.sleep(3) airtable.update_by_field('chat_id', str(chat_id), {'tg': username}) bot.send_message( message.from_user.id, '''Перед подачей заявки, пожалуйста, ознакомься с уставом клана. Он находится <a href="https://docs.google.com/document/d/1phtUEpk8as8rn3pLCT5eelAdsCH1QB8d5vT7E4YDS4w">тут</a>. <b>⚠️⚠️⚠️ Обрати внимание - дальнейшее продолжение диалога со мной подтверждает то, что ты ознакомился и согласен с уставом! ⚠️⚠️⚠️</b> Для продолжения напиши мне свой gamertag Xbox Live (никнейм): ''') bot.register_next_step_handler(message, get_xbl_id) except Exception: bot.send_message(chat_id, err_message) else: bot.send_message( chat_id, '''❌ Прости, у тебя не установлен телеграм-тэг. Напомню, что ты можешь установить тэг, как это сделать - <a href="https://telegramzy.ru/nik-v-telegramm/">описано в этой инструкции</a>. После этого у тебя появится возможность продолжить процесс подачи заявки на вступление в клан. ''') logging.info('Here is user without username. chat_id is ' + str(chat_id))
def get_xbl_id(message): if message.text == '/reset': reset(message) elif message.text == '/help': command_help(message) else: bot.send_message(message.from_user.id, 'Как тебя зовут?') xbl_id = message.text try: airtable.update_by_field('chat_id', str(message.from_user.id), {'xboxlive': xbl_id}) except Exception: bot.send_message(message.from_user.id, err_message) bot.register_next_step_handler(message, get_name)
def get_name(message): if message.text == '/reset': reset(message) elif message.text == '/help': command_help(message) else: name = message.text try: airtable.update_by_field('chat_id', str(message.from_user.id), {'name': name}) except Exception: bot.send_message(message.from_user.id, err_message) get_name(message) bot.send_message(message.from_user.id, 'Сколько тебе лет?') bot.register_next_step_handler(message, get_age)
def get_about(message): if message.text == '/reset': reset(message) elif message.text == '/help': command_help(message) else: about = message.text try: airtable.update_by_field('chat_id', str(message.from_user.id), {'about': about}) user_data = airtable.search('chat_id', str(message.from_user.id)) except Exception: bot.send_message(message.from_user.id, err_message) get_about(message) global clean_data clean_data = user_data[0].get('fields') msg = 'Telegram: @' + clean_data.get( 'tg') + '\nXBL: ' + clean_data.get( 'xboxlive' ) + '\nИмя: ' + clean_data.get('name') + '\nВозраст: ' + str( clean_data.get('age')) + '\nО себе: ' + clean_data.get('about') #keyboard block keyboard_aprove = telebot.types.InlineKeyboardMarkup(row_width=1) key_aprove = telebot.types.InlineKeyboardButton(text='Да', callback_data='aprove') keyboard_aprove.add(key_aprove) key_decline = telebot.types.InlineKeyboardButton( text='Нет', callback_data='decline') keyboard_aprove.add(key_decline) bot.send_message(admin_chat, text=msg, reply_markup=keyboard_aprove) bot.send_message( message.from_user.id, 'Если ты где-то что-то заполнил неправильно - не переживай. Ты можешь просто ввести /reset и снова заполнить анкету соискателя. Главное - без фанатизма.' ) bot.send_message( message.from_user.id, 'Если же все ок - нет причин волноваться, твоя заявка была передана на рассмотрение администрации. А пока можешь отправить заявку на вступление в <a href="https://www.bungie.net/ru/ClanV2?groupid=2135560">наш клан в Bungie.net</a> (если ты этого все еще не сделал).' )
def get_age(message): if message.text == '/reset': reset(message) else: age = 0 if age == 0: try: age = int(message.text) except Exception: age = 0 try: airtable.update_by_field('chat_id', str(message.from_user.id), {'age': age}) except Exception: bot.send_message(message.from_user.id, err_message) get_age(message) bot.send_message( message.from_user.id, '''Отлично! Последний штрих - расскажи немного о себе. \n Да, это не обязательно, но заявки от участников, которые не поленились и потратили 5 минут на "интро" рассматриваются администраторами быстрее. \n Хоть я и бездушная машина, я понимаю, что писать о себе всегда сложно, поэтому вот список вопросов, на которые ты можешь ответить в своем интро: как давно ты играешь в Destiny? Где живешь? Чем увлекаешься IRL? Ходил ли ты в рейды, и если да - то какой из них - твой любимый?''' ) bot.register_next_step_handler(message, get_about)