Alpha version

This commit is contained in:
Matyáš Caras 2022-03-28 17:04:55 +02:00
parent d1543e7acd
commit 8a1b37864d
9 changed files with 47 additions and 16 deletions

2
.pubignore Normal file
View file

@ -0,0 +1,2 @@
.env
test

View file

@ -1,4 +1,6 @@
## 0.1.0-alpha ## 0.1.0-alpha
- První verze, funkčnost omezená - Funkční přihlášení
- Metody pro zobrazení jídelníčku - Funkční zobrazení jídelníčku
- Funkční objednávání jídel z jídelníčku
- Funkční zobrazení kreditu

View file

@ -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 | | 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 | | 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+) 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+)

View file

View file

@ -5,6 +5,12 @@ Experimentální **neoficiální** webscrape knihovna pro komunikaci se systéme
## Funkční funkce(*) ## Funkční funkce(*)
- získání jídelníčku na aktuální den (s cenami) - 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)* *\* 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)*

View file

@ -1,10 +1,17 @@
import 'package:canteenlib/canteenlib.dart'; import 'package:canteenlib/canteenlib.dart';
void main() { void main(List<String> args) {
var canteen = Canteen("http://icanteen.vasedomena.neco"); Canteen c = Canteen("https://kantyna.neco.cz");
canteen.login("user", "password").then((_) { c.login("uzivatel", "heslo").then((value) {
canteen.jidelnicekDen().then((jidelnicek) { c.jidelnicekDen(den: DateTime.parse("2022-04-04")).then((t) async {
print(jidelnicek.jidla[0].nazev); 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);
},
);
}); });
}); });
} }

View file

@ -169,7 +169,8 @@ class Canteen {
objednano: false, objednano: false,
cislo: vydejna!.group(0).toString(), cislo: vydejna!.group(0).toString(),
lzeObjednat: false, lzeObjednat: false,
den: den)); den: den,
naBurze: false));
} }
jidelnicek.add(Jidelnicek(den, jidla)); jidelnicek.add(Jidelnicek(den, jidla));
} }
@ -247,7 +248,10 @@ class Canteen {
lzeObjednat: lzeObjednat, lzeObjednat: lzeObjednat,
cena: cena, cena: cena,
orderUrl: orderUrl, orderUrl: orderUrl,
den: obedDen)); den: obedDen,
burzaUrl: burzaUrl,
naBurze:
(burzaUrl == null) ? false : !burzaUrl.contains("plusburza")));
// KONEC formátování do třídy // KONEC formátování do třídy
} }
@ -296,11 +300,13 @@ class Canteen {
lzeObjednat: j.lzeObjednat, lzeObjednat: j.lzeObjednat,
orderUrl: orderUrl, orderUrl: orderUrl,
den: j.den, den: j.den,
burzaUrl: burzaUrl); // vrátit upravenou instanci burzaUrl: burzaUrl,
naBurze: (burzaUrl == null)
? false
: !burzaUrl.contains("plusburza")); // vrátit upravenou instanci
} }
Future<Jidlo> doBurzy(Jidlo j) async { Future<Jidlo> doBurzy(Jidlo j) async {
//TODO
if (j.burzaUrl == null || j.burzaUrl!.isEmpty) { if (j.burzaUrl == null || j.burzaUrl!.isEmpty) {
return j; return j;
} }
@ -338,6 +344,9 @@ class Canteen {
lzeObjednat: j.lzeObjednat, lzeObjednat: j.lzeObjednat,
orderUrl: orderUrl, orderUrl: orderUrl,
den: j.den, den: j.den,
burzaUrl: burzaUrl); // vrátit upravenou instanci burzaUrl: burzaUrl,
naBurze: (burzaUrl == null)
? false
: !burzaUrl.contains("plusburza")); // vrátit upravenou instanci
} }
} }

View file

@ -15,6 +15,9 @@ class Jidlo {
///Lze objednat? ///Lze objednat?
bool lzeObjednat; bool lzeObjednat;
/// Je jídlo aktuálně na burze?
bool naBurze;
/// Den, který je jídlo vydáváno /// Den, který je jídlo vydáváno
DateTime den; DateTime den;
@ -31,7 +34,8 @@ class Jidlo {
this.cena, this.cena,
required this.lzeObjednat, required this.lzeObjednat,
this.orderUrl, this.orderUrl,
this.burzaUrl}); this.burzaUrl,
required this.naBurze});
} }
/// Reprezentuje jídelníček pro jeden dan /// Reprezentuje jídelníček pro jeden dan

View file

@ -1,7 +1,8 @@
name: canteenlib name: canteenlib
description: Knihovna pro komunikaci se stravovacím systémem iCanteen description: Knihovna pro komunikaci se stravovacím systémem iCanteen
version: 0.1.0-alpha 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: environment:
sdk: '>=2.16.1 <3.0.0' sdk: '>=2.16.1 <3.0.0'
@ -10,5 +11,5 @@ dev_dependencies:
dotenv: ^3.0.0 dotenv: ^3.0.0
lints: ^1.0.0 lints: ^1.0.0
test: ^1.16.0 test: ^1.16.0
dependencies: dependencies:
http: ^0.13.4 http: ^0.13.4