""" Заполняет поле options_language в learning_questions. Определяет, на каком языке показывать варианты ответов: - 'user' — для вопросов "Что означает...?" (варианты на языке пользователя) - 'pl' — для остальных (варианты на польском) Запуск: python3 init_options_language.py """ import asyncio import asyncpg from config import DB_CONFIG # Ключевые фразы, которые означают "вопрос на понимание смысла" USER_LANG_PATTERNS = [ 'co oznacza', 'co znaczy', 'что означает', 'що означає', 'what does', 'what means', 'переведи', 'переклади', 'przetłumacz', 'translate', ] async def main(): pool = await asyncpg.create_pool(**DB_CONFIG) async with pool.acquire() as conn: # Получаем все вопросы questions = await conn.fetch(""" SELECT question_id, prompt_pl, prompt_ru, prompt_uk, prompt_en FROM learning_questions """) user_lang_count = 0 pl_lang_count = 0 for q in questions: # Собираем все промпты в один текст для проверки all_prompts = ' '.join([ q['prompt_pl'] or '', q['prompt_ru'] or '', q['prompt_uk'] or '', q['prompt_en'] or '', ]).lower() # Определяем язык вариантов is_user_lang = any(pattern in all_prompts for pattern in USER_LANG_PATTERNS) options_language = 'user' if is_user_lang else 'pl' await conn.execute(""" UPDATE learning_questions SET options_language = $2 WHERE question_id = $1 """, q['question_id'], options_language) if is_user_lang: user_lang_count += 1 else: pl_lang_count += 1 print(f"✅ options_language = 'user': {user_lang_count} вопросов") print(f"✅ options_language = 'pl': {pl_lang_count} вопросов") print(f" Всего: {user_lang_count + pl_lang_count}") await pool.close() print("\n🎉 Готово!") if __name__ == "__main__": asyncio.run(main())