fix: Negativní čísla v kreditu, účet pro platby

Merge pull request #4 from tpkowastaken/uzivatel-fix
This commit is contained in:
Matyáš Caras 2023-09-04 16:52:05 +00:00 committed by GitHub
commit 637744236c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -48,17 +48,19 @@ class Canteen {
prihlasen = false; prihlasen = false;
return Future.error("Uživatel není přihlášen"); return Future.error("Uživatel není přihlášen");
} }
var m = double.tryParse(RegExp(r' +<span id="Kredit" .+?>(.+?)(?=&)') var kreditMatch = double.tryParse(RegExp(r' +<span id="Kredit" .+?>(.+?)(?=&)')
.firstMatch(r)! .firstMatch(r)!
.group(1)! .group(1)!
.replaceAll(",", ".") .replaceAll(",", ".")
.replaceAll(RegExp(r"[^\w.]"), "")); .replaceAll(RegExp(r"[^\w.-]"), ""));
var jmenoMatch = RegExp(r'(?<=jméno: <b>).+?(?=<\/b)').firstMatch(r); var jmenoMatch = RegExp(r'(?<=jméno: <b>).+?(?=<\/b)').firstMatch(r);
var prijmeniMatch = RegExp(r'(?<=příjmení: <b>).+?(?=<\/b)').firstMatch(r); var prijmeniMatch = RegExp(r'(?<=příjmení: <b>).+?(?=<\/b)').firstMatch(r);
var kategorieMatch = var kategorieMatch =
RegExp(r'(?<=kategorie: <b>).+?(?=<\/b)').firstMatch(r); RegExp(r'(?<=kategorie: <b>).+?(?=<\/b)').firstMatch(r);
var ucetMatch = RegExp(r'(?<=účet pro platby do jídelny: <b>).+?(?=<\/b)') var ucetMatch = RegExp(r'účet pro platby do jídelny:\s*<b>(\d+/\d+)</b>')
.firstMatch(r); .firstMatch(r)
?.group(1)
?.replaceAll(RegExp(r'<\/?b>'), '');//odstranit html tag <b>
var varMatch = var varMatch =
RegExp(r'(?<=variabilní symbol: <b>).+?(?=<\/b)').firstMatch(r); RegExp(r'(?<=variabilní symbol: <b>).+?(?=<\/b)').firstMatch(r);
var specMatch = var specMatch =
@ -67,9 +69,10 @@ class Canteen {
var jmeno = jmenoMatch?.group(0) ?? ""; var jmeno = jmenoMatch?.group(0) ?? "";
var prijmeni = prijmeniMatch?.group(0) ?? ""; var prijmeni = prijmeniMatch?.group(0) ?? "";
var kategorie = kategorieMatch?.group(0) ?? ""; var kategorie = kategorieMatch?.group(0) ?? "";
var ucet = ucetMatch?.group(0) ?? ""; var ucet = ucetMatch ?? "";
var varSymbol = varMatch?.group(0) ?? ""; var varSymbol = varMatch?.group(0) ?? "";
var specSymbol = specMatch?.group(0) ?? ""; var specSymbol = specMatch?.group(0) ?? "";
var kredit = kreditMatch ?? 0.0;
return Uzivatel( return Uzivatel(
jmeno: jmeno, jmeno: jmeno,
@ -78,7 +81,7 @@ class Canteen {
ucetProPlatby: ucet, ucetProPlatby: ucet,
varSymbol: varSymbol, varSymbol: varSymbol,
specSymbol: specSymbol, specSymbol: specSymbol,
kredit: m ?? 0.0); kredit: kredit);
} }
Future<void> _getFirstSession() async { Future<void> _getFirstSession() async {