QuantumPhysique / trale

trale – a simple body weight diary app respecting your privacy
GNU Affero General Public License v3.0
61 stars 8 forks source link

Add ability to import from openScale backup #18

Open NewYearNewPhil opened 5 months ago

NewYearNewPhil commented 5 months ago

Just stumbled upon trale, love the design!

I use openScale to pull measurements from a bluetooth scale, and I'd love to be able to take that data into trale.

openScale offers .csv backups (although this is somewhat hidden, the .csv files are only created using the "auto backup" feature, not the manual backup). I've attached an example for reference.

This PR adds support for this format to trale, differentiating the formats by their respective extensions (txt and csv). The openScale format parsing is naive, it doesnt reference the included headers but just targets the specific fields, so if this format changes, the logic here will likely break.

If there's interest, I can implement proper csv parsing logic, for now this approach works well for the latest openScale version.

Would love to see this get merged so I don't need to maintain my fork to use upstream updates! Let me know if any changes are needed or there are problems with this.

braniii commented 5 months ago

Thx! This sounds like a great feature :) It will definitely land in this project. I will try to review it next week.

braniii commented 5 months ago

@NewYearNewPhil thx for your patience. So, I like the feature and I prefer to not add an additional dependency for parsing csv files. Nevertheless, your code introduces duplication of logic and contains some redundant (at least as far as I can judge :thinking: ) code.

I guess, to support a possible .csv export (see #22) it would be good to parse the columns based on the given keys when reading the first line starting with ". What do you prefer, should I add the minor fixes myself, or do you prefer that I start a review, so that you can finish up this PR on your own?