Vylepšení
This commit is contained in:
parent
b51c2c46aa
commit
15ffa9e9c6
4 changed files with 24 additions and 73 deletions
|
@ -1,2 +1,3 @@
|
|||
.env
|
||||
test
|
||||
*.test.dart
|
|
@ -1,3 +1,6 @@
|
|||
## 0.1.0-alpha.13
|
||||
- Další opravy
|
||||
- Úprava metod `doBurzy` a `objednat`, aby opravdu mohly vracet aktualizované instance `Jidlo`
|
||||
## 0.1.0-alpha.12
|
||||
- Skutečná oprava
|
||||
## 0.1.0-alpha.11
|
||||
|
|
|
@ -334,7 +334,7 @@ class Canteen {
|
|||
/// - `j` - Jídlo, které chceme objednat | [Jidlo]
|
||||
///
|
||||
/// Výstup:
|
||||
/// - Upravená instance [Jidlo] tohoto jídla
|
||||
/// - Aktualizovaná instance [Jidlo] tohoto jídla
|
||||
Future<Jidlo> objednat(Jidlo j) async {
|
||||
if (!prihlasen) {
|
||||
return Future.error("Uživatel není přihlášen");
|
||||
|
@ -353,41 +353,14 @@ class Canteen {
|
|||
return Future.error("Uživatel není přihlášen");
|
||||
}
|
||||
|
||||
var novy = await _getRequest(
|
||||
"/faces/secured/db/dbJidelnicekOnDayView.jsp?day=${j.den.year}-${(j.den.month < 10) ? "0" + j.den.month.toString() : j.den.month}-${(j.den.day < 10) ? "0" + j.den.day.toString() : j.den.day}&terminal=false&rating=null&printer=false&keyboard=false"); // získat novou URL pro objednávání
|
||||
var lzeObjednat =
|
||||
!(novy.contains("nelze zrušit") || novy.contains("nelze objednat"));
|
||||
String? orderUrl;
|
||||
String? burzaUrl;
|
||||
var novy = (await jidelnicekDen(den: j.den))
|
||||
.jidla
|
||||
.where(
|
||||
(element) => element.nazev == j.nazev,
|
||||
)
|
||||
.toList()[0];
|
||||
|
||||
if (lzeObjednat) {
|
||||
// pokud lze objednat, nastavíme adresu pro objednání
|
||||
var match = RegExp(r"(?<=ajaxOrder\(this, ').+?(?=')").firstMatch(novy);
|
||||
if (match != null) {
|
||||
orderUrl = match.group(0)!.replaceAll("amp;", "");
|
||||
}
|
||||
} else {
|
||||
// jinak nastavíme URL pro burzu
|
||||
var match =
|
||||
RegExp(r"(?<=ajaxOrder\(this, ')(.+?)(?=').+?(do burzy)|(z burzy)")
|
||||
.firstMatch(novy);
|
||||
if (match != null) {
|
||||
burzaUrl = match.group(1)!.replaceAll("amp;", "");
|
||||
}
|
||||
}
|
||||
|
||||
return Jidlo(
|
||||
varianta: j.varianta,
|
||||
nazev: j.nazev,
|
||||
objednano: !j.objednano,
|
||||
cena: j.cena,
|
||||
lzeObjednat: j.lzeObjednat,
|
||||
orderUrl: orderUrl,
|
||||
den: j.den,
|
||||
burzaUrl: burzaUrl,
|
||||
naBurze: (burzaUrl == null)
|
||||
? false
|
||||
: !burzaUrl.contains("plusburza")); // vrátit upravenou instanci
|
||||
return novy; // vrátit novou instanci
|
||||
}
|
||||
|
||||
/// Uloží vaše jídlo z/do burzy
|
||||
|
@ -396,7 +369,7 @@ class Canteen {
|
|||
/// - `j` - Jídlo, které chceme dát/vzít do/z burzy | [Jidlo]
|
||||
///
|
||||
/// Výstup:
|
||||
/// - Upravená instance [Jidlo] tohoto jídla
|
||||
/// - Aktualizovaná instance [Jidlo] tohoto jídla NEBO [Future] jako chyba
|
||||
Future<Jidlo> doBurzy(Jidlo j) async {
|
||||
if (!prihlasen) {
|
||||
return Future.error("Uživatel není přihlášen");
|
||||
|
@ -407,47 +380,20 @@ class Canteen {
|
|||
}
|
||||
var res =
|
||||
await _getRequest("/faces/secured/" + j.burzaUrl!); // provést operaci
|
||||
if (res.contains("Chyba")) return j;
|
||||
if (res.contains("Chyba")) return Future.error("Chyba při vykonávání");
|
||||
if (res.contains("přihlášení uživatele")) {
|
||||
prihlasen = false;
|
||||
return Future.error("Uživatel není přihlášen");
|
||||
}
|
||||
|
||||
var novy = await _getRequest(
|
||||
"/faces/secured/db/dbJidelnicekOnDayView.jsp?day=${j.den.year}-${(j.den.month < 10) ? "0" + j.den.month.toString() : j.den.month}-${(j.den.day < 10) ? "0" + j.den.day.toString() : j.den.day}&terminal=false&rating=null&printer=false&keyboard=false"); // získat novou URL pro objednávání
|
||||
var lzeObjednat =
|
||||
!(novy.contains("nelze zrušit") || novy.contains("nelze objednat"));
|
||||
String? orderUrl;
|
||||
String? burzaUrl;
|
||||
var novy = (await jidelnicekDen(den: j.den))
|
||||
.jidla
|
||||
.where(
|
||||
(element) => element.nazev == j.nazev,
|
||||
)
|
||||
.toList()[0];
|
||||
|
||||
if (lzeObjednat) {
|
||||
// pokud lze objednat, nastavíme adresu pro objednání
|
||||
var match = RegExp(r"(?<=ajaxOrder\(this, ').+?(?=')").firstMatch(novy);
|
||||
if (match != null) {
|
||||
orderUrl = match.group(0)!.replaceAll("amp;", "");
|
||||
}
|
||||
} else {
|
||||
// jinak nastavíme URL pro burzu
|
||||
var match =
|
||||
RegExp(r"(?<=ajaxOrder\(this, ')(.+?)(?=').+?(do burzy)|(z burzy)")
|
||||
.firstMatch(novy);
|
||||
if (match != null) {
|
||||
burzaUrl = match.group(1)!.replaceAll("amp;", "");
|
||||
}
|
||||
}
|
||||
|
||||
return Jidlo(
|
||||
varianta: j.varianta,
|
||||
nazev: j.nazev,
|
||||
objednano: !j.objednano,
|
||||
cena: j.cena,
|
||||
lzeObjednat: j.lzeObjednat,
|
||||
orderUrl: orderUrl,
|
||||
den: j.den,
|
||||
burzaUrl: burzaUrl,
|
||||
naBurze: (burzaUrl == null)
|
||||
? false
|
||||
: !burzaUrl.contains("plusburza")); // vrátit upravenou instanci
|
||||
return novy; // vrátit upravenou instanci
|
||||
}
|
||||
|
||||
/// Získá aktuální jídla v burze
|
||||
|
@ -508,6 +454,7 @@ class Canteen {
|
|||
/// Výstup:
|
||||
/// - [bool], `true`, pokud bylo jídlo úspěšně objednáno z burzy, jinak `false`
|
||||
Future<bool> objednatZBurzy(Burza b) async {
|
||||
if (!prihlasen) return Future.error("Uživatel není přihlášen");
|
||||
var res = await _getRequest("/faces/secured/" + b.url!);
|
||||
if (res.contains("Chyba")) return false;
|
||||
return true;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
name: canteenlib
|
||||
description: Library for communication with the czech canteen food ordering system iCanteen
|
||||
version: 0.1.0-alpha.12
|
||||
version: 0.1.0-alpha.13
|
||||
repository: 'https://github.com/hernikplays/canteenlib'
|
||||
issue_tracker: 'https://github.com/hernikplays/canteenlib/issues'
|
||||
documentation: 'https://docs.hernikplays.cz'
|
||||
|
|
Reference in a new issue