diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..dc14a65 Binary files /dev/null and b/.DS_Store differ diff --git a/bot/handlers/import_text.py b/bot/handlers/import_text.py index 0304f77..cee6d7d 100644 --- a/bot/handlers/import_text.py +++ b/bot/handlers/import_text.py @@ -88,6 +88,7 @@ async def process_text(message: Message, state: FSMContext): max_words=15, learning_lang=user.learning_language, translation_lang=get_user_translation_lang(user), + user_id=user.id ) await processing_msg.delete() @@ -381,7 +382,8 @@ async def handle_file_import(message: Message, state: FSMContext, bot: Bot): translations = await ai_service.translate_words_batch( words=words_to_translate, source_lang=user.learning_language, - translation_lang=get_user_translation_lang(user) + translation_lang=get_user_translation_lang(user), + user_id=user.id ) await processing_msg.delete() diff --git a/bot/handlers/level_test.py b/bot/handlers/level_test.py index 15ac947..2303274 100644 --- a/bot/handlers/level_test.py +++ b/bot/handlers/level_test.py @@ -71,7 +71,7 @@ async def begin_test(callback: CallbackQuery, state: FSMContext): loading_msg = await callback.message.answer(t(lang, 'level_test_extra.generating')) # Генерируем тест через AI с учётом языка изучения - questions = await ai_service.generate_level_test(learning_lang) + questions = await ai_service.generate_level_test(learning_lang, user_id=user.id) await loading_msg.delete() diff --git a/bot/handlers/practice.py b/bot/handlers/practice.py index 612ef53..4c76ee9 100644 --- a/bot/handlers/practice.py +++ b/bot/handlers/practice.py @@ -141,7 +141,8 @@ async def handle_custom_scenario(message: Message, state: FSMContext): custom_scenario, # Передаём описание сценария напрямую level, learning_lang=learn_lang, - translation_lang=ui_lang + translation_lang=ui_lang, + user_id=user.id if user else None ) await thinking_msg.delete() @@ -227,7 +228,8 @@ async def start_scenario(callback: CallbackQuery, state: FSMContext): scenario, level, learning_lang=learn_lang, - translation_lang=ui_lang + translation_lang=ui_lang, + user_id=user.id if user else None ) await thinking_msg.delete() @@ -441,7 +443,8 @@ async def handle_conversation(message: Message, state: FSMContext): scenario=scenario, level=level, learning_lang=learn_lang2, - translation_lang=ui_lang2 + translation_lang=ui_lang2, + user_id=user2.id if user2 else None ) await thinking_msg.delete() diff --git a/bot/handlers/start.py b/bot/handlers/start.py index 82e437d..3591457 100644 --- a/bot/handlers/start.py +++ b/bot/handlers/start.py @@ -441,6 +441,7 @@ async def pick_theme_from_menu(callback: CallbackQuery, state: FSMContext): count=10, learning_lang=user.learning_language, translation_lang=get_user_translation_lang(user), + user_id=user.id ) await generating.delete() diff --git a/bot/handlers/tasks.py b/bot/handlers/tasks.py index bf872c4..bf87916 100644 --- a/bot/handlers/tasks.py +++ b/bot/handlers/tasks.py @@ -172,6 +172,7 @@ async def generate_new_words_tasks(callback: CallbackQuery, state: FSMContext, u learning_lang=user.learning_language, translation_lang=translation_lang, exclude_words=exclude_words if exclude_words else None, + user_id=user.id ) if not words: @@ -182,7 +183,7 @@ async def generate_new_words_tasks(callback: CallbackQuery, state: FSMContext, u # Преобразуем слова в задания нужного типа tasks = await create_tasks_from_words( words, task_type, lang, user.learning_language, translation_lang, - level=level + level=level, user_id=user.id ) await state.update_data( @@ -205,7 +206,8 @@ async def create_tasks_from_words( lang: str, learning_lang: str, translation_lang: str, - level: str = None + level: str = None, + user_id: int = None ) -> list: """Создать задания из списка слов в зависимости от типа (оптимизировано - 1 запрос к AI)""" import random @@ -240,7 +242,8 @@ async def create_tasks_from_words( ai_results = await ai_service.generate_task_sentences_batch( ai_tasks, learning_lang=learning_lang, - translation_lang=translation_lang + translation_lang=translation_lang, + user_id=user_id ) # Создаём маппинг: индекс в word_tasks -> результат AI @@ -401,7 +404,8 @@ async def process_answer(message: Message, state: FSMContext): check_result = await ai_service.check_answer( question=task['question'], correct_answer=task['correct_answer'], - user_answer=user_answer + user_answer=user_answer, + user_id=user.id if user else None ) await checking_msg.delete() diff --git a/bot/handlers/vocabulary.py b/bot/handlers/vocabulary.py index dd7d575..522c2ea 100644 --- a/bot/handlers/vocabulary.py +++ b/bot/handlers/vocabulary.py @@ -75,7 +75,8 @@ async def process_word_addition(message: Message, state: FSMContext, word: str): source_lang = user.learning_language if user else 'en' translation_lang = get_user_translation_lang(user) word_data = await ai_service.translate_word_with_contexts( - word, source_lang=source_lang, translation_lang=translation_lang, max_translations=3 + word, source_lang=source_lang, translation_lang=translation_lang, max_translations=3, + user_id=user.id if user else None ) # Удаляем сообщение о загрузке diff --git a/bot/handlers/words.py b/bot/handlers/words.py index 9fe5c38..eddb3d5 100644 --- a/bot/handlers/words.py +++ b/bot/handlers/words.py @@ -65,6 +65,7 @@ async def generate_words_for_theme(message: Message, state: FSMContext, theme: s count=10, learning_lang=user.learning_language, translation_lang=get_user_translation_lang(user), + user_id=user.id ) await generating_msg.delete() diff --git a/services/task_service.py b/services/task_service.py index 319810d..a1bcb89 100644 --- a/services/task_service.py +++ b/services/task_service.py @@ -205,7 +205,8 @@ class TaskService: sentence_data = await ai_service.generate_fill_in_sentence( word.word_original, learning_lang=learning_lang, - translation_lang=translation_lang + translation_lang=translation_lang, + user_id=user_id ) # Локализация заголовка @@ -321,7 +322,8 @@ class TaskService: ai_results = await ai_service.generate_task_sentences_batch( ai_tasks, learning_lang=learning_lang, - translation_lang=translation_lang + translation_lang=translation_lang, + user_id=user_id ) # Маппинг результатов diff --git a/ИДЕИ.txt b/ИДЕИ.txt new file mode 100644 index 0000000..73b9310 --- /dev/null +++ b/ИДЕИ.txt @@ -0,0 +1,3 @@ +Сделать задачки с помощью голосовых, человек должен написать что услышал, человек должен записать голосовой слова +Сделать задачки с картинками, человек должен написать что изоображено на картинке +Сделать задания по темам тип времён или неправильных глаголов на английском \ No newline at end of file