Rinn
Developer
I wanted to get opinions on mallprices.txt since this was an unintended side effect to the git migration and the change I made when I removed support for the manual point releases in favor of the automated builds every git commit, the version string used to only change for point releases where now it's updated for every new build. Whenever the version string changes all override data files are deleted on app launch and since the version string changes more frequently now any overrides are also deleted more frequently. Normally this is preferred because we want to clear out stale data when those overrides are packaged in the jar but an unintended side effect that is the user's mallprices.txt override is also deleted.
If users have sharePriceData enabled this is probably less of a concern because recent prices will be retrieved from the kolmafia server on login, but otherwise the user's historical prices will get wiped on app update and fall back to the mallprices.txt in the jar which hasn't been updated for over 6 months. It's worth noting sharePriceData is disabled by default.
The open questions I have are:
If users have sharePriceData enabled this is probably less of a concern because recent prices will be retrieved from the kolmafia server on login, but otherwise the user's historical prices will get wiped on app update and fall back to the mallprices.txt in the jar which hasn't been updated for over 6 months. It's worth noting sharePriceData is disabled by default.
The open questions I have are:
- Should mallprices.txt be treated as an override in this way the same as the other data files? Maybe it should just stop being deleted and that will resolve this.
- Is there a good reason to keep mallprices.txt in the jar when it's so far out of date? I don't think updating it in git is a good idea either since that would be a lot of churn for data that becomes stale relatively quickly.
- None of the prices loaded from mallprices.txt will prevent a mall search even if they are very up to date, but should they if they are recent? I've realized there's MallPriceManager.mallPrices which is the price cache for the current session and will prevent additional searches if an entry is found, whereas MallPriceDatabase is what contains the historical prices and that is only checked if you pass maxAge to a search. maxAge is a good option but it's not available for functions that do internal searches such as retrieve_item(). This is something I'd like to add a setting for if that's reasonable.
- Any thoughts on having mafia retrieve and update shared mall price data more often than once per login? Obviously we wouldn't want to do this too frequently and hammer the mafia server.