async def questions_step(message: types.Message): func.column_add(message.chat.id, "state", 1240) await message.reply( "Остались ли у тебя вопросы? Напиши их в ответ на это сообщение или нажми кнопку \"✅ Готово!\" ниже", parse_mode=ParseMode.MARKDOWN, reply_markup=keyboard.inline("✅ Готово!", "#setstate@1241"), reply=False)
def right_keyboard(self, buttons, callback, reply, inline): if reply: return keyboard.reply(buttons) elif inline: return keyboard.inline(buttons, callback) else: return buttons, callback
def right_keyboard(self): if self.reply: self.keyboard = keyboard.reply(self.buttons) elif self.inline: self.keyboard = keyboard.inline(self.buttons, self.callback) else: self.keyboard = self.buttons, self.callback
async def welcome_message(message: types.Message): func.chat_id_add(message.chat.id) func.column_add(message.chat.id, "state", 1234) await message.reply( "Привет!\nЯ — твой бот-помощник в школе испанского языка ESP.HOLA Вместе мы доберемся до свободного владения языком (уровня С2), моя задача — помнить всякое важное, твоя — тренироваться!\nЯ помогу записаться на занятия, покажу дорогу к нам в школу, предупрежу о любых изменениях расписания, напомню про домашку, и вообще я классный 👌🏻\nХочешь присоединиться к семье Esp.Hola? 😊", reply=False, parse_mode=ParseMode.MARKDOWN, reply_markup=keyboard.inline("Конечно!", "#setstate@1235"))
async def days_choose(message: types.Message): func.column_add(message.chat.id, "state", 1238) await message.reply( "Когда тебе удобно заниматься?", parse_mode=ParseMode.MARKDOWN, reply_markup=keyboard.inline( [["Понедельник-Среда"], ["Вторник-Четверг"]], [["#setdays@Понедельник-Среда"], ["#setdays@Вторник-Четверг"]]), reply=False)
async def time_choose(message: types.Message): func.column_add(message.chat.id, "state", 1239) await message.reply( "Отлично! Твой выбор *{days}*\nА в какое время тебе удобно приходить?". format(days=func.column_take(message.chat.id, "days")), parse_mode=ParseMode.MARKDOWN, reply_markup=keyboard.inline( [["8:00", "10:00", "12:00"], ["14:00", "15:00", "16:00"], ["18:00", "19:00", "20:00"], ["Изменить дни недели"]], [["#settime@8:00", "#settime@10:00", "#settime@12:00"], ["#settime@14:00", "#settime@15:00", "#settime@16:00"], ["#settime@18:00", "#settime@19:00", "#settime@20:00"], ["#dayschoose"]]), reply=False)
async def set_employee(message: types.Message): user_id, message_id = message.chat.id, message.message_id user_permissions = permissions.user(user_id) buttons, callback = [], [] if user_permissions["add_admin"]: buttons.append(["Назначить администратором"]) callback.append(["set_permissions_admin"]) if user_permissions["add_manager"]: buttons.append("Назначить менеджером") callback.append(["set_permissions_manager"]) if user_permissions["add_moderator"]: buttons.append(["Назначить модератором"]) callback.append(["set_permissions_moderator"]) await message.reply("Какие права дать данному пользователю?", reply_markup = keyboard.inline(buttons, callback))
async def full_name_request(message: types.Message): full_name = func.check_full_name( message.chat.first_name + " " + message.chat.last_name) if "last_name" in message.chat else None if full_name: first_name, last_name = full_name await message.reply( 'Вы *%s %s*?\nЕсли имя-фамилия определены неверно, пожалуйста, *напишите правильные* в формате: *Имя Фамилия*.\nЕсли все верно, нажмите "Далее" под этим сообщением\n' % (first_name, last_name), reply=False, parse_mode=ParseMode.MARKDOWN, reply_markup=keyboard.inline("Далее", "#setstate@1235")) else: await message.reply( 'Пожалуйста, *напишите имя и фамилию* в формате: *Имя Фамилия*.\n', reply=False, parse_mode=ParseMode.MARKDOWN)
def keyboard(self, type=None): if type is None: result = generate.Task(self).main_kb() elif type == "main": result = generate.Task(self).main_kb() elif type == "task_type": result = generate.Task(self).task_type_kb() elif type == "periodicity": result = generate.Task(self).periodicity() elif type == "periodicity_everyweek": result = generate.Task(self).periodicity("everyweek") elif type == "duration": result = generate.Task(self).duration() elif type == "start_time": result = generate.Task(self).task_start_time() return keyboard.inline(*result)
async def take_level(message: types.Message): func.column_add(message.chat.id, "state", 1237) text = "Пожалуйста, оцени свой уровень владения испанским (нажми на одну из кнопок под сообщением):\n\ \n\ *А1*\n\ \"Знакомство\". Буду учиться с самого начала!\n\ \n\ *А1.2*\n\ \"Влюбленность\". Уже могу рассказать о предпочтениях в еде, музыке и кино, пожаловаться на боль в спине, рассказать о планах на будущее и что произошло сегодня утром.\n\ \n\ *А2.1*\n\ \"Привыкание\". Не представляю жизнь без испанского. Без труда перевожу тексты (иногда с помощью Esp.Hola), могу поддержать разговор на разные темы, попросить размер S в ZARA или поругаться с администрацией отеля.\n\ \n\ *А2.2*\n\ \"Становление\". Чувствую, что пора брать билеты в Испанию. И беру, активнее принимаясь за испанский. Вместе мы повторяем пройденный материал и добавляем тему внешности и характера. Рассказать испанцам о нашем прошлом и будущем - ¡sin problemas!\n\ \n\ *B1.1*\n\ \"Зависимость\". Хотелось остановиться на А2.2, но не получилось.\n\ Правильно. Научимся выражать свое мнение, эмоции, спорить и даже, hostia, ругаться на испанском! Хотя вы это уже, наверное, умеете...\n\ \n\ *B1.2*\n\ \"Принятие\". Уже знаю, что не остановлюсь. Когда ты читаешь тексты любых типов и все это понимаешь уже без словаря — это бесценно! На этом этапе мы любим проводить дебаты, чтобы каждый мог высказать свое мнение по тому или иному вопросу. Добавим мистического субхунтиво!\n\ \n\ *B2.1*\n\ \"Любовь\". Уже на 90% испанец или испанка.\n\ Слово \"субхунтиво\" вы слышите чаще, чем свое имя. Мы научимся использовать разные стили письма, чтобы написать письмо работодателю, ведь вы уже запланировали переезд в Испанию, не так ли?\n\ \n\ *B2.2*\n\ \"Обожание\". Ваш испанский настолько превосходен, что вам уже предложили работу в центре Мадрида на Гран Виа. Вы слушаете радио Cadena 100 в испанском такси и вместе с водителем ругаете испанское правительство, особенно, Рахоя.\ *C*\n\ \"100% испанец\".\n\ Наша школа - ваш второй дом. Мы помогаем поддерживать ваш испанский на высоком уровне, добавляем в вашу речь много новой, не всегда приличной лексики, рассказываем о тонкостях и важных языковых нюансах. В Испании никто не догадается, что вы - не местный." kb = keyboard.inline([[ "A1.1", "A1.2", "A2.1", "A2.2" ], ["B1.1", "B1.2", "B2.1", "B2.2"], ["C"]], [[ "#[email protected]", "#[email protected]", "#[email protected]", "#[email protected]" ], [ "#[email protected]", "#[email protected]", "#[email protected]", "#[email protected]" ], ["#setlevel@C"]]) await message.reply(text, parse_mode=ParseMode.MARKDOWN, reply_markup=kb, reply=False)
async def of_course_callback(callback: types.CallbackQuery): message = callback.message await callback.answer() func.column_add(message.chat.id, "state", 1235) full_name = func.check_full_name( message.chat.first_name + " " + message.chat.last_name) if "last_name" in message.chat else None if full_name: first_name, last_name = full_name await bot.send_message( message.chat.id, "Привет!\nТы *{first_name}* *{last_name}*?\nЕсли имя-фамилия определены неверно, пожалуйста, *напиши правильные*!\nЕсли все верно, нажми \"Дальше\" под этим сообщением." .format(first_name=first_name, last_name=last_name), parse_mode=ParseMode.MARKDOWN, reply_markup=keyboard.inline("Дальше ➡️", "#setstate@1236")) else: await message.reply( 'Пожалуйста, *напишите имя и фамилию* в формате: *Имя Фамилия*.\n', reply=False, parse_mode=ParseMode.MARKDOWN)
async def privileged_people_main(message: types.Message): user_id, message_id = message.chat.id, message.message_id user_permissions = permissions.user(message.chat.id) button, callback = [], [] if user_permissions["add_category"]: button.append(["Добавить категорию"]) callback.append(["add_category"]) if user_permissions["add_subcategory"]: button.append(["Добавить подкатегорию"]) callback.append(["add_subcategory"]) if user_permissions["add_item"]: button.append(["Добавить товар"]) callback.append(["add_item"]) if user_permissions["add_employee"]: button.append(["Добавление персонала"]) callback.append(["add_employee"]) button.append(["Удаление персонала"]) callback.append(["delete_employee"]) await bot.send_message(user_id, "Выберите действие", reply_markup = keyboard.inline(button, callback))
def new(self): number = random.randint(1, self.word_count) object = database.table("orthoepy").select("*", "id", number, to_dict=True)[0] word = object["word"] vowels_pos = [ i for i, char in enumerate(word) if char in self.vowels ] buttons = [ word[0:num] + word[num].upper() + word[num + 1:] for num in vowels_pos ] callback = [ query.generate(self.effect, self.module, self.event, user_tid=self.user_tid, word_id=object["id"], answer=bool(i + 1 == object["syllable"])) for i, num in enumerate(vowels_pos) ] return word, keyboard.inline(buttons, callback)
async def covid(message): await message.answer(f"🦠") await message.answer(f"У тебя есть симптомы ОРВИ, короновируса?", reply_markup=inline()) await Test.Q4.set()
async def object_00002(message): await bot.send_message(message.chat.id, "Object #00002", reply_markup=keyboard.inline( [["callback #00003", "callback #00004"], ["callback #00005"]]))
async def object_00001(message): await bot.send_message(message.chat.id, "Object #00001", reply_markup=keyboard.inline( ["callback #00001", "callback #00002"], ["callback new #00001", "callback new #00002"]))
async def question1(message): # print(message) # await bot.send_message(message.chat.id, f"Спасибо!") await message.answer("Занимаешься какими-нибудь делами Карбона?", reply_markup=inline()) await Test.Q7.set()