sintonia/python_apps/airtime_analyzer
Lucas Bickel fa2018a2c5 Simplify configuration file structure
This removes most of the legacy upstream config madness by not using
weird config files spread all over the place.

This isn't the solution to other config reading fragility issues, but
it does move the whole config back to the central airtime.conf file.
2017-07-21 13:15:28 +02:00
..
airtime_analyzer Simplify configuration file structure 2017-07-21 13:15:28 +02:00
bin Simplify configuration file structure 2017-07-21 13:15:28 +02:00
install Vagrant Debian support (and experimental CentOS) 2017-03-12 13:42:22 +01:00
tests Merge branch 'master' into feature/analyzer-on-travis 2017-03-04 16:35:11 +01:00
tools get rid of SaaS definitions 2017-03-21 22:56:43 +01:00
MANIFEST.in CC-5709 / CC-5705 : Airtime Analyzer 2014-03-05 12:15:25 -05:00
README.rst CC-5709: Airtime Analyzer 2014-04-16 11:10:06 -04:00
setup.py Merge pull request #169 from radiorabe/feature/use-official-magic 2017-04-28 19:56:38 -04:00

airtime_analyzer
==========

airtime_analyzer is a daemon that processes Airtime file uploads as background jobs.
It performs metadata extraction using Mutagen and moves uploads into Airtime's 
music library directory (stor/imported).

airtime_analyzer uses process isolation to make it resilient to crashes and runs in 
a multi-tenant environment with no modifications.

Installation
==========

    $ sudo python setup.py install

You will need to allow the "airtime" RabbitMQ user to access all exchanges and queues within the /airtime vhost:

    sudo rabbitmqctl set_permissions -p /airtime airtime .\* .\* .\* 


Usage
==========

This program must run as a user with permissions to write to your Airtime music library
directory. For standard Airtime installations, run it as the www-data user:

    $ sudo -u www-data airtime_analyzer --daemon
   
Or during development, add the --debug flag for more verbose output:

    $ sudo -u www-data airtime_analyzer --debug

To print usage instructions, run:

    $ airtime_analyzer --help

This application can be run as a daemon by running:

    $ airtime_analyzer -d

Other runtime flags can be listed by running:

    $ airtime_analyzer --help


Developers
==========

For development, you want to install airtime_analyzer system-wide but with everything symlinked back to the source 
directory for convenience. This is super easy to do, just run:
    
    $ sudo python setup.py develop

To send an test message to airtime_analyzer, you can use the message_sender.php script in the tools directory.
For example, run:

    $ php tools/message_sender.php '{ "tmp_file_path" : "foo.mp3", "final_directory" : ".", "callback_url" : "http://airtime.localhost/rest/media/1", "api_key" : "YOUR_API_KEY" }'

    $ php tools/message_sender.php '{"tmp_file_path":"foo.mp3", "import_directory":"/srv/airtime/stor/imported/1","original_filename":"foo.mp3","callback_url": "http://airtime.localhost/rest/media/1", "api_key":"YOUR_API_KEY"}'

Logging
=========

By default, logs are saved to:

    /var/log/airtime/airtime_analyzer.log

This application takes care of rotating logs for you.


Unit Tests
==========

To run the unit tests, execute:

    $ nosetests

If you care about seeing console output (stdout), like when you're debugging or developing
a test, run:

    $ nosetests -s

To run the unit tests and generate a code coverage report, run:

    $ nosetests --with-coverage --cover-package=airtime_analyzer


Running in a Multi-Tenant Environment
===========

    
History and Design Motivation
===========