sintonia/python_apps/airtime_analyzer
jo 9f88f82404 Fix inconsistent test across env
Liquidsoap version in CI is different from debian buster
and on test about playability is failing because of
this unhandled versions mismatch.
2021-06-08 14:24:32 +02:00
..
airtime_analyzer Fix wildcard import 2021-06-08 14:24:32 +02:00
install Fix end of files 2021-06-04 17:06:05 +02:00
tests Fix inconsistent test across env 2021-06-08 14:24:32 +02:00
tools Remove broken symlink 2021-06-04 17:06:05 +02:00
MANIFEST.in CC-5709 / CC-5705 : Airtime Analyzer 2014-03-05 12:15:25 -05:00
README.md refactor(airtime_analyzer): rename to libretime-analyzer and make entrypoint pythonic 2021-01-04 10:30:27 +00:00
requirements.txt Use requirements.txt and add pytest dependency 2021-06-08 14:24:32 +02:00
setup.py Remove daemon helper from analyzer 2021-06-08 00:31:18 +02:00

README.md

libretime-analyzer

libretime-analyzer is a daemon that processes LibreTime file uploads as background jobs.

It performs metadata extraction using Mutagen and moves uploads into LibreTime's music library directory (stor/imported).

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

Installation

python setup.py install

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

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 libretime-analyzer --daemon

Or during development, add the --debug flag for more verbose output:

sudo -u www-data libretime-analyzer --debug

To print usage instructions, run:

libretime-analyzer --help

This application can be run as a daemon by running:

libretime-analyzer -d

Developers

For development, you want to install libretime-analyzer system-wide but with everything symlinked back to the source directory for convenience. This is super easy to do, just run:

pip install -r requirements-dev.txt
pip install --editable .

To send an test message to libretime-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