
I worked on the EHM Updater a few months ago, but chose only to share the new version with the TBL Rosters guys and Nino as I'd planned to make some additional improvements and then release it as version 1. However, I got sidetracked by other things and so I didn't get back to looking into it until about a week ago. When I started the Updater in March last year, my knowledge about how to organise a program internally was very basic. Since then my knowledge has improved (although still only at a basic level) and I can see that I organised the internal code for the Updater in a very poor way. As more and more functions are added to the Updater, the code gets messier and messier. So I've taken the plunge and have begun re-writing the Updater from scratch. A lot of the code can be easily ported/copied across and so it shouldn't be as bad as it sounds.
In addition to re-writing the Updater, I'm adding a GUI to it. Something that has always bothered me about the Updater is that you're limited to one function at a time (i.e. you have to reload the Updater for every function you want to use). This isn't really very helpful when you're looking to import data from lots of different files. Additionally you're limited to strictly following the file names of the updater csv files (i.e. the contract update file has to be named contract_update.csv) and this is a pain if you have several csv files of the same type. It'd be much better if you could call things whatever you want (e.g. contract_update_01.csv, contract_update_02.csv, etc - or even NHL Contracts.csv). There's also the problem of having to have a copy of the EHM Updater exe file in every database folder (rather than just having one copy of the exe in a central place). And then there's the obvious issue of the menu being limited to a list in a command prompt and you having to enter the corresponding number.
I've started using something known as Qt to develop a GUI for the Updater. It's very simple to use and it has the benefit of being compatible with Linux and OS X. This isn't a major advantage for the EHM Updater, but it'll be neat to be able to write an FHM Updater that'll work on all three operating systems. I haven't gotten all that far with the new Updater yet, but it can load and save databases as well as update the index. It's not much right now, but that's mostly because I'm putting effort into getting the behind-the-scenes framework correct. This will make life much easier when it comes to adding new functions. A big behind-the-scenes shift is that the Updater now loads the entire database (whereas before it would just load the files it needed for a particular function). This will allow the Updater to make unlimited changes to the database without having to constantly reload it. It also has a proper load/save dialogue window so that you can keep a single copy of the Updater and use it to access any of your databases.
I don't expect to make any progress over the next few weeks as I'll of course be concentrating on my exams, but hopefully I'll have something worth uploading at some point over the summer. In the meantime, here's a screenshot of how the basic program is looking at the moment:
