diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e62f24..98756d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.1.4 +- Opravit info o stavu na burze +## 1.1.3 +- Opravit hledání burza URL u jídelen, kde je tlačítko ve tvaru `X ks do burzy` ## 1.1.2 - Opravit negativní čísla v kreditu, účet pro platby by @tpkowastaken in https://github.com/hernikplays/canteenlib/pull/4 ## 1.1.1 diff --git a/lib/src/canteen.dart b/lib/src/canteen.dart index 1ce87ea..a18f245 100644 --- a/lib/src/canteen.dart +++ b/lib/src/canteen.dart @@ -48,11 +48,12 @@ class Canteen { prihlasen = false; return Future.error("Uživatel není přihlášen"); } - var kreditMatch = double.tryParse(RegExp(r' +(.+?)(?=&)') - .firstMatch(r)! - .group(1)! - .replaceAll(",", ".") - .replaceAll(RegExp(r"[^\w.-]"), "")); + var kreditMatch = double.tryParse( + RegExp(r' +(.+?)(?=&)') + .firstMatch(r)! + .group(1)! + .replaceAll(",", ".") + .replaceAll(RegExp(r"[^\w.-]"), "")); var jmenoMatch = RegExp(r'(?<=jméno: ).+?(?=<\/b)').firstMatch(r); var prijmeniMatch = RegExp(r'(?<=příjmení: ).+?(?=<\/b)').firstMatch(r); var kategorieMatch = @@ -60,7 +61,7 @@ class Canteen { var ucetMatch = RegExp(r'účet pro platby do jídelny:\s*(\d+/\d+)') .firstMatch(r) ?.group(1) - ?.replaceAll(RegExp(r'<\/?b>'), '');//odstranit html tag + ?.replaceAll(RegExp(r'<\/?b>'), ''); //odstranit html tag var varMatch = RegExp(r'(?<=variabilní symbol: ).+?(?=<\/b)').firstMatch(r); var specMatch = @@ -326,7 +327,7 @@ class Canteen { } else { // jinak nastavíme URL pro burzu var match = RegExp( - r"""db\/dbProcessOrder\.jsp.+?type=((plusburza)|(minusburza)).+?(?=')""") + r"""db\/dbProcessOrder\.jsp.+?type=((plusburza)|(minusburza)|(multiburza)).+?(?=')""") .firstMatch(o); if (match != null) { burzaUrl = match.group(0)!.replaceAll("amp;", ""); @@ -345,7 +346,7 @@ class Canteen { den: obedDen, burzaUrl: burzaUrl, naBurze: - (burzaUrl == null) ? false : !burzaUrl.contains("plusburza"), + (burzaUrl == null) ? false : burzaUrl.contains("minusburza"), alergeny: [...alergeny.map((e) => e.group(1).toString())]), ); // KONEC formátování do třídy @@ -394,7 +395,7 @@ class Canteen { /// /// Výstup: /// - Aktualizovaná instance [Jidlo] tohoto jídla NEBO [Future] jako chyba - Future doBurzy(Jidlo j) async { + Future doBurzy(Jidlo j, {int amount = 1}) async { if (!prihlasen) { return Future.error("Uživatel není přihlášen"); } @@ -404,8 +405,13 @@ class Canteen { "Jídlo nelze uložit do burzy nebo nemá adresu pro uložení"); } + if (amount < 1 && j.burzaUrl!.endsWith("amount=")) { + return Future.error("Nemůžeš dát do burzy méně než jeden kus"); + } + var finalUrl = + (j.burzaUrl!.endsWith("amount=")) ? "${j.burzaUrl}$amount" : j.burzaUrl; try { - await _getRequest("/faces/secured/${j.burzaUrl!}"); // provést operaci + await _getRequest("/faces/secured/$finalUrl"); // provést operaci } catch (e) { return Future.error(e); } diff --git a/pubspec.yaml b/pubspec.yaml index 86306f6..701fb05 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.2 +version: 1.1.4 repository: 'https://git.mnau.xyz/hernik/canteenlib' issue_tracker: 'https://git.mnau.xyz/hernik/canteenlib/issues'