Example #1
0
def do_exercise(turn: Turn, day_id: int, step_id: int = None):
    step_id = step_id or turn.us.current_step or 0

    if day_id == 31:
        turn.response_text = 'Вы закончили всю программу! Хотите начать заново с первого дня?'
        turn.stage = 'suggest_restart'
        turn.suggests.append('да')
        return
    if day_id not in EXERCISES:
        turn.response_text = 'Такого дня в программе тренировок нет! Назовите день от 1 до 30.'
        return
    last_ex: Exercise = EXERCISES[day_id]

    if step_id >= 7 or step_id >= 6 and day_id < 5:
        out = last_ex.out or random.choice(HINTS)
        turn.response_text = out
        turn.commands.append(tgalice.COMMANDS.EXIT)
        turn.us.day_is_complete = True
        return

    if step_id == 0:
        turn.response_text = f'Начинаем день {day_id}. ' \
                             f'\nДля начала разомнитесь: побегайте, попрыгайте, поприседайте. ' \
                             f'\nКогда будете готовы к растяжке, скажите "дальше".'
        turn.suggests.append('дальше')
    else:
        if step_id == 6:
            ex = last_ex
        else:
            ex = EXERCISES[step_id]

        if ex.full_text:
            turn.response_text = f'<text>{ex.text}</text><voice>{ex.full_text}</voice>'
        else:
            turn.response_text = ex.text

        turn.response_text += f'<speaker audio="{random.choice(COUNTERS)}">'
        if not ex.one_sided:
            turn.response_text += '<voice>Теперь другая сторона.</voice>'
            turn.response_text += f'<speaker audio="{random.choice(COUNTERS)}">'
        turn.image_id = ex.image

    step_id += 1
    turn.us.current_step = step_id
    turn.us.last_day = day_id
    turn.stage = 'exercise'
    turn.suggests.append('дальше')
Example #2
0
def hello(turn: Turn):
    turn.response_text = 'Привет!' \
        '\nВ этом навыке уникальная техника и простые упражнения, '\
        'выполняя которые, ты уже через 30 дней сможешь сесть на шпагат!'
    if turn.us.last_day == 30 and turn.us.day_is_complete:
        turn.response_text += f'\nВы уже выполнили всю программу. Начать с первого дня?'
        turn.suggests.append('да')
        turn.stage = 'suggest_restart'
    elif turn.us.last_day:
        turn.response_text += f'\nПродолжим с дня {turn.us.last_day + turn.us.day_is_complete}?'
        turn.suggests.append('да')
        turn.stage = 'suggest_start_training'
    else:
        turn.response_text += '\nСкажите "что ты умеешь", чтобы узнать больше, или "тренировка", чтобы начать растяжку.'
        turn.suggests.append('тренировка')
    turn.suggests.append('что ты умеешь')
    turn.suggests.extend(MENU_SUGGESTS)
Example #3
0
def abilities(turn: Turn):
    turn.response_text = 'Я помогаю вам научиться хорошей растяжке - чтобы начать заниматься, скажите "тренировка".' \
        '\nТакже вы можете ознакомиться с рекомендациями по разминке, сказав "разминка".' \
        '\nВ разделе "лайфхаки" можно получить советы как выстроить свой план тренировок более эффективно.' \
        '\nЕщё есть разделы "результаты", "правила" и "противопоказания".'
    turn.response_text += '\nРассказать правила тренировки?'
    turn.stage = 'suggest_rules'
    turn.suggests.append('да')
    turn.suggests.extend(MENU_SUGGESTS)
Example #4
0
def rules(turn: Turn):
    turn.response_text = 'Перед началом всегда разминаемся.\
    \nРастяжки с первой по пятую - это ваши ОСНОВНЫЕ РАСТЯЖКИ, вы должны делать их каждый день. \
    Первые 5 дней вы делаете первые 5 растяжек как ежедневное комбо! \
    Затем, начиная с 6-го дня, вы просто добавите одно упражнение.'

    turn.response_text += '\nРассказать про разминку?'
    turn.stage = 'suggest_warmup'
    turn.suggests.append('да')
    turn.suggests.extend(MENU_SUGGESTS)
Example #5
0
def warmup(turn: Turn):
    turn.response_text = 'Перед тем как начать, важно разогреть мышцы и суставы. ' \
                         'Побегайте,попрыгайте на месте, приседайте.' \
                         'Подумайте о своих мышцах, как о резиновых лентах, которые от природы эластичны. ' \
                         'Если вы растянете их слишком далеко, прежде чем они будут готовы, ' \
                         'они могут сломаться или получить травму. ' \
                         'Уделите разминке как минимум 10 минут, прежде чем начать выполнять упражнения.'
    turn.response_text += '\nРассказать про противопоказания?'
    turn.stage = 'suggest_contra'
    turn.suggests.append('да')
    turn.suggests.extend(MENU_SUGGESTS)
Example #6
0
def about_results(turn: Turn):
    turn.response_text = 'Всегда нужно сравнивать результаты ДО и ПОСЛЕ, ' \
                         'иначе как ты  поймёшь, что твой прогресс становиться с каждым днём лучше. ' \
                         '\nСделай вот что: после того как мы провели первую тренировку, ' \
                         'сделай фото своего продольного шпагата, ' \
                         'и после прохождения наших занятий я тебе напомню о нём. ' \
                         '\nМы сравним результаты, и даю тебе слово, ты удивишься своему прогрессу!'
    turn.response_text += '\nПоделиться с вами лайфхаком про растяжку?'
    turn.stage = 'suggest_hack'
    turn.suggests.append('да')
    turn.suggests.extend(MENU_SUGGESTS)
Example #7
0
def contra(turn: Turn):
    turn.response_text = 'Далеко не всем показано практиковать растяжку, различные асаны и садиться на шпагат. ' \
                         'Если в этом списке Вы нашли свой “диагноз”, ' \
                         'то это повод задуматься о целесообразности совершаемых действий. \
                            \nИтак, противопоказания: \
                            \n- артроз коленных суставов; \
                            \n- ювенальный ревматоидный артрит; \
                            \n- различные воспаления суставов; \
                            \n- гинекологические проблемы у девушек; \
                            \n- смещение коленной чашечки; \
                            \n- операция на крестообразной подколенной связке; \
                            \n- вес, отличный от нормы (значение выше 10 кг); \
                            \n- высокое давление.'

    turn.response_text += '\nРассказать, как оценивать результаты тренировок?'
    turn.stage = 'suggest_results'
    turn.suggests.append('да')
    turn.suggests.extend(MENU_SUGGESTS)
Example #8
0
def hacks(turn: Turn):
    hack = random.choice(HACKS)
    turn.response_text = f'{hack}\nРассказать ещё один лайфхак?'
    turn.stage = 'suggest_hack'
    turn.suggests.append('да')
    turn.suggests.extend(MENU_SUGGESTS)