Backup before removing hiddify references

This commit is contained in:
Hiddify User
2026-01-15 12:28:40 +03:00
parent f54603d129
commit 36d9e31236
231 changed files with 6648 additions and 1832 deletions

View File

@@ -29,10 +29,33 @@ class ProxyItemEntity with _$ProxyItemEntity {
}) = _ProxyItemEntity;
String get name => _sanitizedTag(tag);
String? get selectedName =>
selectedTag == null ? null : _sanitizedTag(selectedTag!);
String? get selectedName => selectedTag == null ? null : _sanitizedTag(selectedTag!);
bool get isVisible => !tag.contains("§hide§");
/// Извлекает код страны из названия прокси (emoji флаг или текст)
String get countryCode {
// Парсинг emoji флагов (🇩🇪 = U+1F1E6-1F1FF региональные индикаторы)
final runes = name.runes.toList();
if (runes.length >= 2) {
final first = runes[0];
final second = runes[1];
// Проверка Regional Indicator Symbols
if (first >= 0x1F1E6 && first <= 0x1F1FF &&
second >= 0x1F1E6 && second <= 0x1F1FF) {
final cc1 = String.fromCharCode(first - 0x1F1E6 + 65); // A-Z
final cc2 = String.fromCharCode(second - 0x1F1E6 + 65);
return cc1 + cc2;
}
}
// Fallback: текстовые коды в начале или конце названия
final match = RegExp(r'^([A-Z]{2})[-_\s]|[-_\s]([A-Z]{2})$|^\[([A-Z]{2})\]').firstMatch(name);
if (match != null) {
return match.group(1) ?? match.group(2) ?? match.group(3) ?? 'XX';
}
return 'XX'; // Неизвестная страна
}
}
String _sanitizedTag(String tag) =>
tag.replaceFirst(RegExp(r"\§[^]*"), "").trimRight();
String _sanitizedTag(String tag) => tag.replaceFirst(RegExp(r"\§[^]*"), "").trimRight();