diff options
author | lonkaars <loek@pipeframe.xyz> | 2022-12-22 14:31:10 +0100 |
---|---|---|
committer | lonkaars <loek@pipeframe.xyz> | 2022-12-22 14:31:10 +0100 |
commit | 9eb8aa6bab40bd58e70cb6124e462e1a3d47edb7 (patch) | |
tree | fb19d43a3b5544bce86439f2004ba59d3a35156a /oop2eindopdr/readme.md | |
parent | 76a4bcf9845f14ad0d679696f47f58dd8ca0a0b4 (diff) |
eindopdracht beginsel
Diffstat (limited to 'oop2eindopdr/readme.md')
-rw-r--r-- | oop2eindopdr/readme.md | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/oop2eindopdr/readme.md b/oop2eindopdr/readme.md new file mode 100644 index 0000000..d423e78 --- /dev/null +++ b/oop2eindopdr/readme.md @@ -0,0 +1,93 @@ +# eindopdracht + +combinatie readme en kladblok tijdens ontwikkeling + +## gebruikte libraries + +- versies moeten nog gedocumenteerd worden +- er wordt er vanuit gegaan dat deze libraries als systeemheaders geïnstalleerd + zijn + +- [nlohmann/json](https://github.com/nlohmann/json) voor json (de)serializen +- [cpr](https://github.com/libcpr/cpr) voor https requests +- [libzip](https://libzip.org/) voor zip bestanden maken +- [csv2](https://github.com/p-ranav/csv2) voor csv bestanden (de)serializen + +## functionaliteit (pseudocode) + +``` +parse_cli_arguments() +init_update_cache() +case cli_argument.count + 0: // no arguments (interactive mode) + while 1: + id = input_text("card id?: ") + list = filter_card_list(id) + if list.count > 1: + card = choose_single_card() + else: + card = list[0] + display_card_with_value_info(card) + 1, 2: // input csv with optional output json (semi-interactive mode) + ids = parse_csv() + cards = [] + for id in ids: + card = get_card_by_id(id) + display_card(card) + cards += card; + if cli_argument.count == 2: + export_cards_as_zip(cli_argument[0]) + else if input_yn("export? [Y/n]: "): + output_filename = input_text("export filename?: ") + export_cards_as_zip(output_filename) + +``` + +## cache formaat (voorbeeld) + +``` +cache/ + date + swshp-SWSH001/ + info.json + card.png + card_hires.png + swshp-SWSH002/ + info.json + card.png + card_hires.png + swshp-SWSH..../ +``` + +- `date` bevat een unix timestamp wanneer de cache voor het laatst geupdate is + (gebruikt om te checken of de cache stale is) +- `info.json` bevat voor elke kaart de json api response voor die kaart + +## zip formaat (voorbeeld) + +``` +output.zip/ + cards.csv + swshp-SWSH001.png + swshp-SWSH002.png + swshp-SWSH.... +``` + +- `cat cards.csv`: + ``` + id,value + swshp-SWSH001,3.00 + swshp-SWSH002,2.59 + swshp-SWSH.... + ``` + (punt voor decimale punt inplaats van komma) +- de kaart foto's zijn de -hires variant + +## klassen (wip) + +- PokemonCard +- PokemonTCGAPIClient +- CacheManager +- DownloadManager +- ZipExport + |