Lepší zacházení s chybami
This commit is contained in:
parent
c3333fca95
commit
9e03d33ad2
2 changed files with 38 additions and 28 deletions
|
@ -1,3 +1,6 @@
|
||||||
|
## 0.1.0-alpha.15
|
||||||
|
- Úprava nakládání s chybami v `_getRequest`
|
||||||
|
- `fail` je chyba
|
||||||
## 0.1.0-alpha.14
|
## 0.1.0-alpha.14
|
||||||
- Oprava `ziskejBurzu`, kvůli špatnému parsování
|
- Oprava `ziskejBurzu`, kvůli špatnému parsování
|
||||||
## 0.1.0-alpha.13
|
## 0.1.0-alpha.13
|
||||||
|
|
|
@ -156,9 +156,15 @@ class Canteen {
|
||||||
? "; " + cookies["remember-me"]! + ";"
|
? "; " + cookies["remember-me"]! + ";"
|
||||||
: ";"),
|
: ";"),
|
||||||
});
|
});
|
||||||
if (r.statusCode != 200 || r.body.contains("fail")) {
|
if (r.statusCode != 200 ||
|
||||||
|
r.body.contains("fail") ||
|
||||||
|
r.body.contains("Chyba")) {
|
||||||
return Future.error("Chyba: ${r.body}");
|
return Future.error("Chyba: ${r.body}");
|
||||||
}
|
}
|
||||||
|
if (r.body.contains("přihlášení uživatele")) {
|
||||||
|
prihlasen = false;
|
||||||
|
return Future.error("Uživatel není přihlášen");
|
||||||
|
}
|
||||||
if (r.headers.containsKey("set-cookie")) {
|
if (r.headers.containsKey("set-cookie")) {
|
||||||
_parseCookies(r.headers["set-cookie"]!);
|
_parseCookies(r.headers["set-cookie"]!);
|
||||||
}
|
}
|
||||||
|
@ -249,11 +255,12 @@ class Canteen {
|
||||||
return Future.error("Uživatel není přihlášen");
|
return Future.error("Uživatel není přihlášen");
|
||||||
}
|
}
|
||||||
den ??= DateTime.now();
|
den ??= DateTime.now();
|
||||||
var res = await _getRequest(
|
String res;
|
||||||
"/faces/secured/main.jsp?day=${den.year}-${(den.month < 10) ? "0" + den.month.toString() : den.month}-${(den.day < 10) ? "0" + den.day.toString() : den.day}&terminal=false&printer=false&keyboard=false");
|
try {
|
||||||
if (res.contains("<title>iCanteen - přihlášení uživatele</title>")) {
|
res = await _getRequest(
|
||||||
prihlasen = false;
|
"/faces/secured/main.jsp?day=${den.year}-${(den.month < 10) ? "0" + den.month.toString() : den.month}-${(den.day < 10) ? "0" + den.day.toString() : den.day}&terminal=false&printer=false&keyboard=false");
|
||||||
return Future.error("Uživatel není přihlášen");
|
} catch (e) {
|
||||||
|
return Future.error(e);
|
||||||
}
|
}
|
||||||
var obedDen = DateTime.parse(RegExp(r'(?<=day-).+?(?=")', dotAll: true)
|
var obedDen = DateTime.parse(RegExp(r'(?<=day-).+?(?=")', dotAll: true)
|
||||||
.firstMatch(res)!
|
.firstMatch(res)!
|
||||||
|
@ -343,14 +350,11 @@ class Canteen {
|
||||||
return Future.error(
|
return Future.error(
|
||||||
"Jídlo nelze objednat nebo nemá adresu pro objednání");
|
"Jídlo nelze objednat nebo nemá adresu pro objednání");
|
||||||
}
|
}
|
||||||
var res =
|
|
||||||
await _getRequest("/faces/secured/" + j.orderUrl!); // provést operaci
|
try {
|
||||||
if (res.contains("Chyba")) {
|
await _getRequest("/faces/secured/" + j.orderUrl!); // provést operaci
|
||||||
return Future.error("Při požadavku došlo k chybě");
|
} catch (e) {
|
||||||
}
|
return Future.error(e);
|
||||||
if (res.contains("přihlášení uživatele")) {
|
|
||||||
prihlasen = false;
|
|
||||||
return Future.error("Uživatel není přihlášen");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var novy = (await jidelnicekDen(den: j.den))
|
var novy = (await jidelnicekDen(den: j.den))
|
||||||
|
@ -378,12 +382,10 @@ class Canteen {
|
||||||
return Future.error(
|
return Future.error(
|
||||||
"Jídlo nelze uložit do burzy nebo nemá adresu pro uložení");
|
"Jídlo nelze uložit do burzy nebo nemá adresu pro uložení");
|
||||||
}
|
}
|
||||||
var res =
|
try {
|
||||||
await _getRequest("/faces/secured/" + j.burzaUrl!); // provést operaci
|
await _getRequest("/faces/secured/" + j.burzaUrl!); // provést operaci
|
||||||
if (res.contains("Chyba")) return Future.error("Chyba při vykonávání");
|
} catch (e) {
|
||||||
if (res.contains("přihlášení uživatele")) {
|
return Future.error(e);
|
||||||
prihlasen = false;
|
|
||||||
return Future.error("Uživatel není přihlášen");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var novy = (await jidelnicekDen(den: j.den))
|
var novy = (await jidelnicekDen(den: j.den))
|
||||||
|
@ -403,15 +405,17 @@ class Canteen {
|
||||||
Future<List<Burza>> ziskatBurzu() async {
|
Future<List<Burza>> ziskatBurzu() async {
|
||||||
if (!prihlasen) return Future.error("Uživatel není přihlášen");
|
if (!prihlasen) return Future.error("Uživatel není přihlášen");
|
||||||
List<Burza> burza = [];
|
List<Burza> burza = [];
|
||||||
var r = await _getRequest("/faces/secured/burza.jsp");
|
|
||||||
if (r.contains("Chyba")) return Future.error("Při požadavku došlo k chybě");
|
String res;
|
||||||
if (r.contains("přihlášení uživatele")) {
|
try {
|
||||||
prihlasen = false;
|
res = await _getRequest("/faces/secured/burza.jsp");
|
||||||
return Future.error("Uživatel není přihlášen");
|
} catch (e) {
|
||||||
|
return Future.error(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
var dostupnaJidla =
|
var dostupnaJidla =
|
||||||
RegExp(r'(?<=<tr class="mouseOutRow">).+?(?=<\/tr>)', dotAll: true)
|
RegExp(r'(?<=<tr class="mouseOutRow">).+?(?=<\/tr>)', dotAll: true)
|
||||||
.allMatches(r); // vyfiltrujeme jednotlivá jídla
|
.allMatches(res); // vyfiltrujeme jednotlivá jídla
|
||||||
if (dostupnaJidla.isNotEmpty) {
|
if (dostupnaJidla.isNotEmpty) {
|
||||||
for (var burzaMatch in dostupnaJidla) {
|
for (var burzaMatch in dostupnaJidla) {
|
||||||
var bu = burzaMatch.group(0)!;
|
var bu = burzaMatch.group(0)!;
|
||||||
|
@ -455,8 +459,11 @@ class Canteen {
|
||||||
/// - [bool], `true`, pokud bylo jídlo úspěšně objednáno z burzy, jinak `false`
|
/// - [bool], `true`, pokud bylo jídlo úspěšně objednáno z burzy, jinak `false`
|
||||||
Future<bool> objednatZBurzy(Burza b) async {
|
Future<bool> objednatZBurzy(Burza b) async {
|
||||||
if (!prihlasen) return Future.error("Uživatel není přihlášen");
|
if (!prihlasen) return Future.error("Uživatel není přihlášen");
|
||||||
var res = await _getRequest("/faces/secured/" + b.url!); // TODO: SPRAVIT
|
try {
|
||||||
if (res.contains("Chyba")) return false;
|
await _getRequest("/faces/secured/" + b.url!); // TODO: SPRAVIT
|
||||||
|
} catch (e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue