Commit Graph

15069 Commits

Author SHA1 Message Date
Robb Ebright 481c049c97 added passing podcast title to download function 2017-03-04 13:38:36 +01:00
Robb Ebright 2cebb7dfa2 first part of the adding album tags to podcast downloads 2017-03-04 13:38:36 +01:00
Lucas Bickel c7ab886d2a Add default soundcloud config 2017-03-04 12:33:37 +01:00
Lucas Bickel 0b704e95f1 Use Zend_File_Transfer instead of $_FILES
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
2017-03-04 11:09:06 +01:00
Lucas Bickel 7a3d87a4b2 Run tests in small scripts
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).
2017-03-04 10:55:12 +01:00
Lucas Bickel 09aea8b747 stop using reflection in prooduction code
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.
2017-03-03 22:48:19 +01:00
Lucas Bickel 9b3d0c90da mostly run analyzer tests on travis
* [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).
2017-03-03 20:38:27 +01:00
Christopher Gervais 203716ea50 Clarify some docs and improve code highlighting. 2017-03-03 13:28:36 -05:00
Lucas Bickel e28ad471f9 Rewrite config from /etc/airtime-saas to plain /etc/airtime
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.
2017-03-03 15:57:41 +01:00
Christopher Gervais 7546030985 Add basic Vagrantfile. 2017-03-03 09:45:04 -05:00
Christopher Gervais 91c581e678 Add basic Mkdocs config and initial docs. 2017-03-03 09:43:14 -05:00
Lucas Bickel 6e03863fa1 Problem: Billing is always on
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
2017-03-03 15:34:54 +01:00
Lucas Bickel 4875bc37a8 Add missing argument to playlistNotFound call
Was on 2.5.x as 7dbf4cf5d2
2017-03-03 15:34:21 +01:00
Lucas Bickel 8fbf4fec8b config to disable live chat
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.
2017-03-03 15:33:19 +01:00
Lucas Bickel 10532dc4e8 Problem: Failed logins always try log in against legacy upstream
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 :)
2017-03-03 15:32:31 +01:00
Robb 4557395a86 Merge pull request #14 from radiorabe/feature/phpunit
Vendorize ZF1, fix PHPUnit and configure travis
2017-03-03 08:10:27 -05:00
Lucas Bickel 39fb738945 Always log locally during test run 2017-03-02 16:45:34 +01:00
Lucas Bickel 898a1ce545 Let soudcloud fail gracefuly when unconfigured
This makes general preferences look nice again, even when no soundcloud id and secret is configured (those don't belong us).
2017-03-02 14:47:16 +01:00
Lucas Bickel 51960a891f Manual loading fix for more classes in Zend_ pseudo-ns 2017-03-02 14:40:29 +01:00
Lucas Bickel 7b04f413a0 Remove zend dep check from status and config output
It's LibreTime's responsability to ensure this (ie in packages...) and the user should not need to know about this.
2017-03-02 14:31:51 +01:00
Lucas Bickel 4a7f3ea001 Fix preference page with customer ImageSize plugin
As noted in the code, this was getting loaded in a rather special way.
2017-03-02 14:29:19 +01:00
Lucas Bickel 693f1f6e51 Remove system zf1 from test include path 2017-03-02 13:57:56 +01:00
Lucas Bickel 9735e4cfd7 Remove zf1 requires from installer
We use it from vendor/ so there is no need to install it any more.
2017-03-02 13:47:07 +01:00
Lucas Bickel 844e93576c Update install docs with ubuntu example
This is the way around having to set a password on ubuntu.
2017-03-02 13:34:37 +01:00
Lucas Bickel 021bf38c1b Remove phing StringHelper dependency
I had only really looked for requires previously, this one caught me off guard as using an include is quite anachronistic.

I did some digging and figured out, that this is the only occurence of such phing use I can find.
2017-03-02 13:25:50 +01:00
Lucas Bickel b79ab33de2 Install to /usr/share/airtime/php per default
The added php subdir lets us keep the vendor and airtime_mvc in the same relative position to each other while keeping everything in /usr/share/$name.

This does not yet take care of cleaning any files left at the old locations, taking care of those would make this installer even more bloated and should be the responsability of apt packages.
2017-03-02 13:13:34 +01:00
Lucas Bickel 21a319767f Fix missing AMQPConnection errors in setup
Also fixes them elsewhere, apart from having switched to a vendorized version, I also used one that is already namespaced.

The easy way out here is to use it in the namespaced fashion, it is only used in a few places and I know the library well enough to be certain that nothing much changed apart from the namespacing.
2017-03-02 12:38:44 +01:00
Lucas Bickel 7f3f420763 Regression: travis db is on localhost
This is one of the "small" things I need to take care of on my local env. Once the value is changeable through more than just the config file, I'll won't be touching these in my docker envs as much.
2017-02-28 12:29:40 +01:00
Lucas Bickel 0d2e8b3b3e Update testing docs
Add the -h localhost to psql command since ubuntu seems to prefer that.
2017-02-28 12:26:57 +01:00
Lucas Bickel 4936b16bc1 Load autoloader early so setup can use it
Also fixes a @include_once check that is now much easier.
2017-02-28 12:25:24 +01:00
Lucas Bickel 1ca47d67d5 Use local configuration in tests
This way the tests should really run out of the box with what is described in TESTING.md.
2017-02-28 12:16:03 +01:00
Lucas Bickel 625f92fe44 Vendorize ZF1, fix PHPUnit and configure travis
This a a rather large commit due to the nature of the stuff it is touching. To get PHPUnit up and running again I had to update some deps and I did so by vendorizing them. The vendorizing of zf1 makes sense since distros are already considering to drop it from their repos.

* [x] install vendorized zf1 with composer
* [x] load composer autoloader before zf1
* [x] Implement headAction for all Zend_Rest_Controller based controllers
* [x] switch to yml dataset to get around string only limitations of xml sets (also removed warning in readme)
* [x] use year 2044 as hardcoded date for tests since it is in the future and has the same days like previously used 2016
* [x] make tests easier to run when accessing phpunit directly
* [x] clean up test helper to always use airtime.conf
* [x] switch test dbname to libretime_test
* [x] test db username password switched to libretime/libretime
* [x] install phpunit with composer in a clear version (make tests easier to reproduce on other platforms)
* [x] remove local libs from airtime repo (most of airtime_mvc/library was not needed of in vendor already)
* [x] configure composer autoloading and use it (also removed requires that are not needed anymore)
* [x] add LibreTime prefix for FileNotFoundException (phing had a similar class and these are all pre-namespace style)
* [x] add .travis.yml file
* [x] make etc and logdir configurable with LIBRETIME_CONF_DIR and LIBRETIME_LOG_DIR env (so travis can change it)
* [x] slight cleanup in config for travis not to fail
* [x] add cloud_storage.conf for during test runs
* [x] rewrite mvc testing docs and move them to docs/ folder
* [x] don't use `static::class` in a class that does not have a parent class, use `__CLASS__` instead.
* [x] don't use `<ClassName>::class`, since we already know what class we want `"<ClassName>"` ist just fine.
* [x] fix "can't use method in write context" errors on 5.4 (also helps the optimizer)
* [x] add build status badge on main README.md

Fixes https://github.com/LibreTime/libretime/issues/4

The PHP parts of https://github.com/LibreTime/libretime/pull/10 get obsoleted by this change and it will need rebasing.

This also contains https://github.com/LibreTime/libretime/pull/8, the late static binding compat code was broken for no reason and until CentOS drops php 5.4 there is no reason I'm aware of not to support it. I inlined #8 since the test would be failing on php 5.4 without the change.

If you want to run tests you need to run `composer install` in the root directory and then `cd airtime_mvc/tests && ../../vendor/bin/phpunit`. For the tests to run the user `libretime` needs to be allowed to create the `libretime_test` database. See `docs/TESTING.md` for more info on getting set up.
2017-02-27 17:59:01 +01:00
comiconomenclaturist 9017418b4e modified: airtime_mvc/application/forms/StreamSetting.php
modified:   install
2017-02-27 16:47:26 +00:00
Robb 95ce7ef880 Merge pull request #1 from radiorabe/feature/init-community
Problem: LibreTime needs initializing
2017-02-22 22:31:04 -05:00
Lucas Bickel 4b4dc313f5 Remove unlinked reference to taiga 2017-02-22 10:32:47 +01:00
Lucas Bickel 1464a0f513 Create CONTRIBUTING.md
This adds a nice link on the issue and pr forms and is mostly pinched from https://github.com/update/update. I added clear references to C4 and our CoC and we can add more stuff like coding guidelines later on.
2017-02-14 22:51:31 +01:00
Lucas Bickel 725da17bb7 Implement C4
As discussed on <https://tree.taiga.io/project/robbt-libreairwaves-airtime-fork/issue/23>...

I am implementing the C4 standard by linking to the document in our main README.md.
2017-02-14 14:37:35 +01:00
Lucas Bickel 5b6114b140 Implement Semantic Versioning
As per <https://tree.taiga.io/project/robbt-libreairwaves-airtime-fork/issue/22> I am implementing semantic versioning. The docs in README is all that is needed, lets hope this works out to get a sustainable release process up and running fast.
2017-02-14 14:37:27 +01:00
Lucas Bickel efa318b51e Add Contributor Code of Conduct
As stated in <https://tree.taiga.io/project/robbt-libreairwaves-airtime-fork/issue/22> I am adding a proper CoC to the project. Please direct changes to the CoC directly to the linked repo.
2017-02-14 14:37:19 +01:00
Lucas Bickel c8942acadb Very basic README.md
That we can override the existing Sourcefabric README with an md extension comes in handy for our case.
2017-02-14 14:37:06 +01:00
Robb Ebright 276a69aa1b Porting commits from downloaded zip file of saas-dev branch 2017-02-13 18:22:22 +01:00
Albert Santoni db596d54b5 Fix bug in my last commit 2015-12-11 12:29:59 -05:00
Albert Santoni 2594105a5e Handle unknown plan types more gracefully with the bandwidth limit 2015-12-11 10:19:11 -05:00
Albert Santoni e3b0a93ebb Only suspend over bandwidth when station is active 2015-12-09 13:03:41 -05:00
Albert Santoni 09316041c6 Fix unnecessary HTTPS redirect to reduce traffic 2015-12-08 17:47:07 -05:00
Albert Santoni c5429df59c Holiday promo update for billing page 2015-12-08 15:44:41 -05:00
Albert Santoni a26f1a70e3 Respawn liquidsoap and pypo indefinitely if they fail to launch. Throttled it though. 2015-12-04 15:56:06 -05:00
Albert Santoni 91e1252b86 SAAS-1239: Listener stats with Shoutcast not working 2015-12-04 15:05:17 -05:00
Albert Santoni 2eea558dfd SAAS-1267: AAC streams stuck at 64 kbps, even at higher bitrates 2015-12-04 10:51:07 -05:00
Albert Santoni 4cfdda46b4 SAAS-1266: Webstream metadata doesn't show in API or dashboard header 2015-12-03 16:57:18 -05:00