diff --git a/CHANGELOG.md b/CHANGELOG.md
index 98756d9..01f1b7a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.0.0
+- Alergeny jsou nyní ve tříde `Alergen`
+- Opravena chyba, kdy se HTML alergenů propisovalo do názvu jídla
+
## 1.1.4
- Opravit info o stavu na burze
## 1.1.3
diff --git a/COMPATIBILITY.md b/COMPATIBILITY.md
index 67254c9..015c08f 100644
--- a/COMPATIBILITY.md
+++ b/COMPATIBILITY.md
@@ -11,8 +11,8 @@ Kantýny, které v adrese obsahují i číslo portu, dokážou být často probl
| Provozovatel | Verze iCanteen | Funkční | Verze knihovny | Adresa |
|:--------------:|------------------|---------|----------------|---------|
-| SŠTE Brno | iCanteen 2.18.19 | ✅ | 1.0.1 | https://stravovani.sstebrno.cz
-| SPŠ Třebíč | iCanteen 2.10.25 | ❓ | 0.1.0-alpha | https://icanteen.spst.cz
-| SPŠEI Ostrava | iCanteen 2.17.03 | ❓ [zde](https://git.mnau.xyz/hernik/canteenlib/issues/2) | 1.0.1 | https://obedy.spseiostrava.cz:8443/
+| SŠTE Brno | iCanteen 2.19.13 | ✅ | 2.0.0 | https://stravovani.sstebrno.cz
+| SPŠ Třebíč | iCanteen 2.10.25 | ❌ | 0.1.0-alpha | https://icanteen.spst.cz
+| SPŠEI Ostrava | iCanteen 2.17.03 | ❌ [zde](https://git.mnau.xyz/hernik/canteenlib/issues/2) | 1.0.1 | https://obedy.spseiostrava.cz:8443/
Pokud chcete přispět s testem, otestujte tuto knihovnu na instanci iCanteen, kde, nejlépe legálně, máte přístup, a nahlašte své poznatky [zde](https://git.mnau.xyz/hernik/canteenlib/issues/new?template=.github%2fISSUE_TEMPLATE%2fhl--en--kompatibility.md)
diff --git a/README.md b/README.md
index 66a9a8f..44cdf52 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,6 @@
+## INFO
+__Knihovna již není aktivně vyvíjena a jsou vydávány pouze rychlé opravy, když je potřebuji. Pokud někdo chcete moji hroznou práci přebrat nebo chcete zde mít odkaz na vaši vlastní implementaci, dejte mi vědět.__
+
## O knihovně
Experimentální **neoficiální** webscrape knihovna pro komunikaci se systémem [iCanteen](https://www.z-ware.cz/internetove-objednavky). **Knihovna je aktuálně nestabilní! Používejte na vlastní riziko!**
diff --git a/lib/src/canteen.dart b/lib/src/canteen.dart
index a18f245..ce8beb5 100644
--- a/lib/src/canteen.dart
+++ b/lib/src/canteen.dart
@@ -306,10 +306,21 @@ class Canteen {
.replaceAll(' ,', ",")
.replaceAll("
", "")
.replaceAll("\n", "");
- var alergeny =
- RegExp(r"""(.+?)<\/span>""")
+ var alergenyList =
+ RegExp(r"""(\d{1,2})""")
.allMatches(jidlaProDen)
.toList();
+
+ var alergeny = alergenyList.map((e) {
+ var jmeno = RegExp(r'(.+?)<\/b>')
+ .firstMatch(e.group(1).toString())!
+ .group(1);
+ var popis =
+ RegExp(r'<\/b> - (.+)').firstMatch(e.group(1).toString())?.group(1);
+ var kod = int.parse(e.group(2).toString());
+ return Alergen(nazev: jmeno!, kod: kod, popis: popis);
+ }).toList();
+
var vydejna = RegExp(
r'(?<=).+?(?=<)')
.firstMatch(o)!
@@ -333,10 +344,13 @@ class Canteen {
burzaUrl = match.group(0)!.replaceAll("amp;", "");
}
}
-
+ var jidloJmeno = RegExp(r'(.+?)(?=)')
+ .firstMatch(jidlaProDen)!
+ .group(1)
+ .toString();
jidla.add(
Jidlo(
- nazev: jidlaProDen.replaceAll(
+ nazev: jidloJmeno.replaceAll(
r' (?=[^a-zA-ZěščřžýáíéĚŠČŘŽÝÁÍÉŤŇťň])', ''),
objednano: objednano,
varianta: vydejna,
@@ -347,7 +361,7 @@ class Canteen {
burzaUrl: burzaUrl,
naBurze:
(burzaUrl == null) ? false : burzaUrl.contains("minusburza"),
- alergeny: [...alergeny.map((e) => e.group(1).toString())]),
+ alergeny: alergeny),
);
// KONEC formátování do třídy
}
diff --git a/lib/src/tridy.dart b/lib/src/tridy.dart
index ee17b30..97d115b 100644
--- a/lib/src/tridy.dart
+++ b/lib/src/tridy.dart
@@ -24,7 +24,7 @@ class Jidlo {
/// Seznam alergenů
///
/// Pokud se žádný nepodařilo najít, vrací prázdný seznam
- List alergeny;
+ List alergeny;
/// URL pro požadavek na objednání jídla
final String? orderUrl;
@@ -44,6 +44,15 @@ class Jidlo {
required this.naBurze});
}
+/// Popisuje alergen v jídelníčku
+class Alergen {
+ final int kod;
+ final String nazev;
+ final String? popis;
+
+ const Alergen({required this.nazev, required this.kod, this.popis});
+}
+
/// Reprezentuje cizí jídlo na burze
class Burza {
/// Den, který je jídlo vydáváno
diff --git a/pubspec.yaml b/pubspec.yaml
index 701fb05..5d5070d 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,6 +1,6 @@
name: canteenlib
description: Library for communication with the czech canteen food ordering system iCanteen
-version: 1.1.4
+version: 2.0.0
repository: 'https://git.mnau.xyz/hernik/canteenlib'
issue_tracker: 'https://git.mnau.xyz/hernik/canteenlib/issues'