diff --git a/.pubignore b/.pubignore new file mode 100644 index 0000000..02818d3 --- /dev/null +++ b/.pubignore @@ -0,0 +1,2 @@ +.env +test \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a99faa..0b4dead 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,6 @@ ## 0.1.0-alpha -- První verze, funkčnost omezená -- Metody pro zobrazení jídelníčku +- Funkční přihlášení +- Funkční zobrazení jídelníčku +- Funkční objednávání jídel z jídelníčku +- Funkční zobrazení kreditu diff --git a/COMPATIBILITY.md b/COMPATIBILITY.md index bfd04d0..73d37bf 100644 --- a/COMPATIBILITY.md +++ b/COMPATIBILITY.md @@ -9,7 +9,7 @@ Výchozí verze, pro kterou aktuálně je knihovna tvořena, je **2.18.19** | Provozovatel | Verze iCanteen | Funkční | Verze knihovny | |:--------------:|------------------|---------|----------------| -| SŠTE Brno | iCanteen 2.18.19 | ❓ | 0.1.0-alpha | +| SŠTE Brno | iCanteen 2.18.19 | ✅ | 0.1.0-alpha | | SPŠ Třebíč | iCanteen 2.10.25 | ❓ | 0.1.0-alpha | 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://github.com/hernikplays/canteenlib/issues/new?assignees=hernikplays&labels=kompatibilita&template=hl--en--kompatibility.md&title=Kompatibilita%3A+) \ No newline at end of file diff --git a/LICENSE.md b/LICENSE similarity index 100% rename from LICENSE.md rename to LICENSE diff --git a/README.md b/README.md index 60c91cd..9db7f64 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,12 @@ Experimentální **neoficiální** webscrape knihovna pro komunikaci se systéme ## Funkční funkce(*) - získání jídelníčku na aktuální den (s cenami) +- Objednání / zrušení objednávek +- Nabídnutí jídla do burzy / zrušení + +## To do +- Získání a objednání cizího jídla z burzy +- Kompatibilita se staršími verzemi iCanteen *\* Knihovna nemusí fungovat na všech instancích systému iCanteen, proto žádám každého, kdo může a je uživatelem iCanteen, aby otestoval funkčnost této knihovny a případné problémy [nahlásil](https://github.com/hernikplays/canteenlib/issues)* diff --git a/example/canteenlib_example.dart b/example/canteenlib_example.dart index 139133a..895c97c 100644 --- a/example/canteenlib_example.dart +++ b/example/canteenlib_example.dart @@ -1,10 +1,17 @@ import 'package:canteenlib/canteenlib.dart'; -void main() { - var canteen = Canteen("http://icanteen.vasedomena.neco"); - canteen.login("user", "password").then((_) { - canteen.jidelnicekDen().then((jidelnicek) { - print(jidelnicek.jidla[0].nazev); +void main(List args) { + Canteen c = Canteen("https://kantyna.neco.cz"); + c.login("uzivatel", "heslo").then((value) { + c.jidelnicekDen(den: DateTime.parse("2022-04-04")).then((t) async { + print(await c.ziskejKredit()); + c.objednat(t.jidla[0]).then( + (value) { + t.jidla[0] = value; // divně udělané ale nic lepšího teď nevymyslím + print(t.jidla[0].objednano); + print(t.jidla[0].orderUrl); + }, + ); }); }); } diff --git a/lib/src/canteen.dart b/lib/src/canteen.dart index cfdd50c..6de9764 100644 --- a/lib/src/canteen.dart +++ b/lib/src/canteen.dart @@ -169,7 +169,8 @@ class Canteen { objednano: false, cislo: vydejna!.group(0).toString(), lzeObjednat: false, - den: den)); + den: den, + naBurze: false)); } jidelnicek.add(Jidelnicek(den, jidla)); } @@ -247,7 +248,10 @@ class Canteen { lzeObjednat: lzeObjednat, cena: cena, orderUrl: orderUrl, - den: obedDen)); + den: obedDen, + burzaUrl: burzaUrl, + naBurze: + (burzaUrl == null) ? false : !burzaUrl.contains("plusburza"))); // KONEC formátování do třídy } @@ -296,11 +300,13 @@ class Canteen { lzeObjednat: j.lzeObjednat, orderUrl: orderUrl, den: j.den, - burzaUrl: burzaUrl); // vrátit upravenou instanci + burzaUrl: burzaUrl, + naBurze: (burzaUrl == null) + ? false + : !burzaUrl.contains("plusburza")); // vrátit upravenou instanci } Future doBurzy(Jidlo j) async { - //TODO if (j.burzaUrl == null || j.burzaUrl!.isEmpty) { return j; } @@ -338,6 +344,9 @@ class Canteen { lzeObjednat: j.lzeObjednat, orderUrl: orderUrl, den: j.den, - burzaUrl: burzaUrl); // vrátit upravenou instanci + burzaUrl: burzaUrl, + naBurze: (burzaUrl == null) + ? false + : !burzaUrl.contains("plusburza")); // vrátit upravenou instanci } } diff --git a/lib/src/jidlo.dart b/lib/src/jidlo.dart index 4b6b7bf..f0db210 100644 --- a/lib/src/jidlo.dart +++ b/lib/src/jidlo.dart @@ -15,6 +15,9 @@ class Jidlo { ///Lze objednat? bool lzeObjednat; + /// Je jídlo aktuálně na burze? + bool naBurze; + /// Den, který je jídlo vydáváno DateTime den; @@ -31,7 +34,8 @@ class Jidlo { this.cena, required this.lzeObjednat, this.orderUrl, - this.burzaUrl}); + this.burzaUrl, + required this.naBurze}); } /// Reprezentuje jídelníček pro jeden dan diff --git a/pubspec.yaml b/pubspec.yaml index f16d9b7..d18e33d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,8 @@ name: canteenlib description: Knihovna pro komunikaci se stravovacím systémem iCanteen version: 0.1.0-alpha -# homepage: https://www.example.com +repository: 'https://github.com/hernikplays/canteenlib' +issue_tracker: 'https://github.com/hernikplays/canteenlib/issues' environment: sdk: '>=2.16.1 <3.0.0' @@ -10,5 +11,5 @@ dev_dependencies: dotenv: ^3.0.0 lints: ^1.0.0 test: ^1.16.0 -dependencies: +dependencies: http: ^0.13.4