WebTILP: New features and fixes!:
You should see a little red dot on the Settings button - you can click there to refresh the app cache for offline use
- WebTILP:
- add support for CE bundle files 🙂
It automatically selects the appropriate apps (Python vs PyAdaptr), lang apps (only takes the ones that are already present or the one corresponding to the current lang), etc.
- build with a zlib-enabled libarchive.
- show a better device name when available.
- improve operation progress tracking.
- improve error display (log + toast).
- escapeHTML on parts that are inserted via innerHTML.
- ignore error when the user doesn't select a WebUSB device.
- fix json_append_escaped for some values.
- tilibs (in the process of being reviewed/adjusted/merged upstream):
- libticonv: use better names in ticonv_model_to_string.
- libtifiles: handle more types in tifiles_file_get_class.
- libticalcs: refactor common parts about dusb_ca_type_set_bytes.
CE Bundle transfer modal:
Special handling of calculators with bad/missing certificate values: (model being detected correctly anyway)
Error toast:
Still on the TODO list:
- Exit exam mode" button (similar to what TI's software does)
- Fix transfer error on some equation files (works on TI Connect CE, but TI Connect CE for ChromeOS also errors when trying to send it!?)
- Fix some transfer errors sometimes with disjoint (cross-folders) set of files, on the Nspire
- Human-readable Language ID parsing
- Interface localization... maybe
Fun part: here is the prompt that added Bundle support on first try:
Quote:
We want to add support for transferring CE "bundle" files. Those are .b83 / .b84 files (zip archives in reality, containing calculator files to be transferred), only targetting the TI-84 Plus CE family and TI-83 Premium CE family of calculators.
When a user wants to transfer such a bundle file onto their CE calculator, a special flow will have to be triggered in WebTILP:
1) Internally, get the list of files inside that zip archive (you can use the libarchive library that tilibs comes linked with, you'll just have to make sure to make the appropriate functions available to the JS via webtilp.cpp) and make sure to note the order of the files in this archive as it will be important afterwards. you can ignore the files called "METADATA" and "_CHECKSUM" inside.
2) Extract in some temporary location (maybe in a "tmp_bundle" directory inside the/a temp folder of the FS module provided by emscripten, probably) the files from the bundle (ignoring "METADATA" and "_CHECKSUM")
3) Display to the user the usual variable transfer modal, prefilled with the list of files from the bundle, in the order you determined in step 1. The difference is that the modal will have to have checkbox for each row of the list of files, because the user may want to skip some files to be transferred (by default, for which are checked and unchecked, see step 4). (The order is important, and the transfer will have to be made in this order too, with the exception of the OS files (.8eu and .8pu) that will have to be the very last transfer to be done, if the user has them picked/checked)
4) Here are the default file checking rules: starting from everything checked:
- if the CE calculator's device info has its "Python on board" property to "Yes", then leave "Python.8ek" checked (if present), and uncheck "PyAdaptr.8ek" (if present).
- if the CE calculator's device info has its "Python on board" property to "No" (or if it is not there), then uncheck "Python.8ek" (if present), and leave "PyAdaptr.8ek" checked if the connected calculator is the TI-83 Premium CE.
- for the language app files (Portuguese.8ek, French.8ek, Nederlands.8ek, Svenska.8ek, Espanol.8ek, Deutsch.8ek), uncheck all of them except for the ones present already in the device (check the dirlist if available), or the one matching the language of the calculator based on the first number value of the device info's "Language ID" property (for instance, the property value may be "9 1", the language ID will be 9). here is the lang mapping: 9=English, 22=Portuguese, 12=French, 19=Nederlands, 29=Svenska, 10=Espanol, 7=Deutsch.
5) If the user confirms, then do the transfers of the checked files, in the order of the list (except for OS files, that come last if picked)
6) Regardless, don't forget to clean up the temporary files/folders.