50 lines
1.8 KiB
Python
50 lines
1.8 KiB
Python
with open('lib/screens/catalog_screen.dart', 'r', encoding='utf-8') as f:
|
|
src = f.read()
|
|
|
|
# 1. Add import
|
|
import_line = "import '../widgets/external_symbols_browser.dart';\n"
|
|
if "external_symbols_browser.dart" not in src:
|
|
src = import_line + src
|
|
|
|
# 2. Add '🌐 Другие символы' to _filters
|
|
target_filters = """ final List<String> _filters = [
|
|
'Все',
|
|
'✨ Все системы',"""
|
|
|
|
repl_filters = """ final List<String> _filters = [
|
|
'Все',
|
|
'🌐 Другие символы',
|
|
'✨ Все системы',"""
|
|
|
|
assert target_filters in src, "target_filters not found"
|
|
src = src.replace(target_filters, repl_filters, 1)
|
|
|
|
# 3. Handle '🌐 Другие символы' in count display
|
|
target_count_display = """ if (_atlasMode == 'words')
|
|
Padding(
|
|
padding: const EdgeInsets.fromLTRB(16, 12, 16, 4),"""
|
|
|
|
repl_count_display = """ if (_atlasMode == 'words' && _selectedFilter != '🌐 Другие символы')
|
|
Padding(
|
|
padding: const EdgeInsets.fromLTRB(16, 12, 16, 4),"""
|
|
|
|
assert target_count_display in src, "target_count_display not found"
|
|
src = src.replace(target_count_display, repl_count_display, 1)
|
|
|
|
# 4. Handle '🌐 Другие символы' in body
|
|
target_body = """ Expanded(
|
|
child: _atlasMode == 'canon' &&"""
|
|
|
|
repl_body = """ Expanded(
|
|
child: _selectedFilter == '🌐 Другие символы'
|
|
? ExternalSymbolsBrowser(searchQuery: _searchController.text.trim())
|
|
: _atlasMode == 'canon' &&"""
|
|
|
|
assert target_body in src, "target_body not found"
|
|
src = src.replace(target_body, repl_body, 1)
|
|
|
|
with open('lib/screens/catalog_screen.dart', 'w', encoding='utf-8') as f:
|
|
f.write(src)
|
|
|
|
print("catalog_screen.dart patched successfully!")
|