# Бот для изучения английского
1. Скачать файл [dictionares.py](https://raw.githubusercontent.com/abekek/SAT-Vocabulary-Telegram-Bot/master/dictionaries.py) и добавить его в папку проекта
2. Создать файл english.py и подготовить основу для бота
```python=
import telebot
import logging
TOKEN = 'TOKEN'
bot = # TODO
logger = telebot.logger
telebot.logger.setLevel(logging.DEBUG) # Outputs debug messages to console.
```
3. Создайте markup главного меню
```python=
from telebot import types
main_menu_markup = # TODO
main_menu_markup.add(types.KeyboardButton('Learn new words'))
# TODO по аналогии добавьте кнопку'Check yourself'
```
4. Изучите файл dictionaries.py. Сколько в нем переменных? Что каждая из них делает?
5. Импортируйте переменные из dictionaries.py в english.py
```python=
from dictionaries import *
```
6. Создайте обработчик команды /start
```python=
@bot.message_handler(???) # TODO
def send_welcome(message):
# отправьте сообщение 'What do you want to do?' с нужным markup'ом
```
7. Создайте обработчик для фичи изучения новых слов
```python=
# TODO импортируйте модуль random
@bot.message_handler(regexp='Learn new words')
def learn_words(message):
idx = # TODO выберите индекс слова, которое мы будем присылать пользователю
answer = # TODO сформируйте текст для пользователя, включите в него само слово, его значение и часть речи
bot.send_message() # TODO отправьте сообщение
# TODO перейдите в главное меню (register_next_step_handler)
```
8. Создайте обработчик для фичи самопроверки
```python=
@bot.message_handler(regexp='Check yourself')
def check_yourself(message):
idx_true = # TODO случайное число от 0 до len(words)
idx_option1 = # TODO случайное число от 0 до len(words)
idx_option2 = # TODO случайное число от 0 до len(words)
idx_option3 = # TODO случайное число от 0 до len(words)
options = [
words[idx_true],
words[idx_option1],
words[idx_option2],
words[idx_option3]
]
options.sort()
options_markup = types.ReplyKeyboardMarkup()
options_markup.add(types.KeyboardButton(options[0]))
options_markup.add(types.KeyboardButton()) # TODO другие опции
options_markup.add(types.KeyboardButton()) # TODO другие опции
options_markup.add(types.KeyboardButton()) # TODO другие опции
question = description[idx_true]
bot.send_message(message.chat.id, question, reply_markup=options_markup)
```
8. Создайте функцию для проверки ответа
```python=
def compare_answer(message, idx_true=None):
if message.text == words[idx_true]:
bot.reply_to(message, '?') # TODO текст
else:
bot.reply_to(message, '?') # TODO текст
bot.register_next_step_handler(???) # TODO
```
9. В функции `check_yourself` зарегистрируйте обработчик для слудеюущего шага
```python=
bot.register_next_step_handler(
message,
lambda m: compare_answer(m, idx_true)
)
```
9. Запустите бота