parser logic added
This commit is contained in:
+21
-12
@@ -17,13 +17,18 @@ final List<Supermarket> kDefaultSupermarkets = [
|
||||
const Supermarket(name: 'Nettorama', colorValue: 0xFFE87722, sortOrder: 8),
|
||||
const Supermarket(name: 'Hoogvliet', colorValue: 0xFFD32F2F, sortOrder: 9),
|
||||
const Supermarket(name: 'Picnic', colorValue: 0xFFE31C5F, sortOrder: 10),
|
||||
const Supermarket(name: kOtherSupermarket, colorValue: 0xFF78909C, sortOrder: 11),
|
||||
const Supermarket(
|
||||
name: kOtherSupermarket,
|
||||
colorValue: 0xFF78909C,
|
||||
sortOrder: 11,
|
||||
),
|
||||
];
|
||||
|
||||
const Map<String, List<String>> kSupermarketAliases = {
|
||||
'Albert Heijn': ['ALBERT HEIJN', 'AH TO GO', 'AH XL'],
|
||||
'Jumbo': ['JUMBO'],
|
||||
'Lidl': ['LIDL'],
|
||||
'Kruidvat': ['KRUIDVAT'],
|
||||
'Aldi': ['ALDI'],
|
||||
'Plus': ['PLUS'],
|
||||
'Dirk': ['DIRK'],
|
||||
@@ -31,6 +36,10 @@ const Map<String, List<String>> kSupermarketAliases = {
|
||||
'SPAR': ['SPAR'],
|
||||
'Nettorama': ['NETTORAMA'],
|
||||
'Hoogvliet': ['HOOGVLIET'],
|
||||
'Ekoplaza': ['EKOPLAZA'],
|
||||
'Action': ['ACTION'],
|
||||
'Etos': ['ETOS'],
|
||||
'World Toko': ['WORLD TOKO'],
|
||||
'Picnic': ['PICNIC'],
|
||||
};
|
||||
|
||||
@@ -51,20 +60,20 @@ const List<String> kSupermarkets = [
|
||||
];
|
||||
|
||||
/// Returns a supermarket name if it appears in [rawText].
|
||||
String? detectSupermarket(
|
||||
String rawText, {
|
||||
Iterable<String> names = const [],
|
||||
}) {
|
||||
String? detectSupermarket(String rawText, {Iterable<String> names = const []}) {
|
||||
final upper = rawText.toUpperCase();
|
||||
final extra = names
|
||||
.map((name) => name.trim())
|
||||
.where((name) => name.isNotEmpty && name != kOtherSupermarket)
|
||||
.toList()
|
||||
..sort((a, b) => b.length.compareTo(a.length));
|
||||
final extra =
|
||||
names
|
||||
.map((name) => name.trim())
|
||||
.where((name) => name.isNotEmpty && name != kOtherSupermarket)
|
||||
.toList()
|
||||
..sort((a, b) => b.length.compareTo(a.length));
|
||||
|
||||
for (final name in extra) {
|
||||
if (RegExp('\\b${RegExp.escape(name)}\\b', caseSensitive: false)
|
||||
.hasMatch(rawText)) {
|
||||
if (RegExp(
|
||||
'\\b${RegExp.escape(name)}\\b',
|
||||
caseSensitive: false,
|
||||
).hasMatch(rawText)) {
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user