This will get rid of the sad tape error on the facebook widgets page `/embeddablewidgets/facebook`. We will probably end up having to document how to set up facebook properly, but I'd like to take care of that while I'm testing against real facebook.
These are important to help doc contributors get started. They have the side effect of pointing to a rather dangerous link for maintainers but any later changes should get blocked by the review policy later on.
I tried to only merge what makes sense for us, there is still quite some cleanup needed, this commit tries to preserve the 2.5 manual as much as possible while still keeping the rare new stuff from pro.
This should give us more information in the case of an error and is the framework idiomatic way to handle a RESTful file upload.
I'm hoping this helps debug https://github.com/LibreTime/libretime/issues/3
This is so we get a proper shell where running set -xe makes sense allowing travis to pick up nicely on how the tests run (ie. marking them as failed and not errored when the fail).
Problem: Reflection is a debugging tool and not really meant for use on production. There are easier ways to check if a class implements an interface with `is_a()`.
Solution: Get rid of reflection use and switch to `is_a()` in TaskManager, refactor the Enum thing that does not make sense since it is not being used.
The `is_a()` solution is really straightforward and has been supported in php for ages.
The Enum thing was a copy paste hack from stackoverflow and ignored the simple solution mentioned there while not using the features of the advanced one.
* [x] regonfigured the build matrix with more php jobs and a separate python job (we can add more python jobs later)
* [x] run tests on travis' trusty beta container (it's closer to what we need anyway)
* [x] install packages needed for analyzer tests in build env
* [x] added docs on how to run nosetests locally
* [x] don't run initctl in analyzer setup so setup can also be used on travis (and add it to the install script directly)
* [x] ignore replaygain checks on travis (it has proven quite impossible to get the needed python-gi module to work in the provided virtualenv)
I tried a lot of solutions to get the replaygain checks to run. I needed to decide that this has gone far enough, maybe someone who is more of a pythonista than me can take a crack at it and get it solved. Even without running those tests on CI/CD there are still plenty others.
This PR only has parts of what are needed for getting python tests running on travis as per #15. I only took a quick shot at anything not analyzer and figured I would not be able to "fix" them without digging a bit deeper (ie. also getting rid of std_err_override).
This is the results of sed -i -e 's|/etc/airtime-saas/|/etc/airtime/|' `grep -irl 'airtime-saas' airtime_mvc/ python_apps/` :P
It might need more testing, the airtime-saas part never really made sense, zf1 has environments for that, ie you would create a saas env based on production for instance.
I beleive legacy upstream was using this to share configuration between customers (ie. analyser runs only once and writes to a shared S3 bucket). I assume they mount the airtime-saas folder onto individual customers instances with a global config. Like I said, I don't feel that this makes sense since all it does is make hacking at the configs in airtime-saas a bit easier. A serious SaaS operation should be using something like puppet or ansible to achieve this.
Solution: Make billing configurable through LIBRETIME_ENABLE_BILLING and deactivate it
This should catch all the changes needed to deactive billing in LibreTime.
* [x] only call billing when it is enabled
* [x] let super admins edit their info
* [x] dont link to billing if it is disabled
Problem: Live Chat points back to legacy upstream and I do not believe we can let them do support for us ;)
Solution: Deactivate live chat through constants.php so it never gets checked.
This is like 34db703381 but removes one more sql call and makes it easy to reactivate should anyone want to use the feature in future.
Solution: Make the login fallback optional and deactivate it in the default config.
I'm leaving the code in here mostly because I want to revisit it and make it modular so I can later on plug my own FreeIPA things :)