One of the things that was getting difficult with maintaining BE was the fact that it's all contained inside a single file 5 thousand lines long. The last major restructuring I had done years ago was to divide every distinct
thing the script does into its own function named "feature_<featurename>()" and worked out a pattern where every individual feature could be switched on or off or otherwise configured dynamically. This kept everything neat and extensible for quite some time, but eventually the script became a bit too long to handle easily.
What I've done now is made a python project that allows every feature to be written in its own separate file, and it automatically joins and compiles them all into a single package for each browser I want to deploy on (so I can always release on all browsers simultaneously without having to do one first and then port it), and it even installs the built scripts onto my browsers automatically to make testing faster. I'm very happy with the way it turned out so far.
I think this compartmentalisation will make certain things possible (like the forum theme feature I've been wanting to make for years, but always added so much complexity to the script) and so much faster and easier than before.
My next release will be Barefoot Essentials 3 - when this is ready I'll make the entire project available to the public on Gitlab.
gixgox: Welcome back :)))
Good to hear that you are doing well.
Thanks, gixgox :)
MasterS.249: Are you planning to do a full-fledged Firefox extension, like there already are for
Steam and
Reddit, using
WebExtensions API?
I am now. Previously I was interested in doing a Firefox extension (WebExtensions, despite some limitations, is really very nice to work with) but still wanted to keep the GreaseMonkey script going, and adding a third variant in addition to GreaseMonkey and Chrome took up too much time, so I decided to just stick with GreaseMonkey as it served the most people. Now that the automated build system is working there's nothing keeping me from making a proper Firefox extension.