* Remove the "hidden" field from the REST blacklist, the analyzer needs to set it.
* Added import_status column messages in the recent uploads table
* Auto-refresh the recent uploads table while imports are pending
* Moved the file moving stuff to its own analyzer in airtime_analyzer
* Basic error reporting to the REST API in airtime_analyzer, needs
hardeneing though
* Fixed a bug with the number of recent uploads
* Prevent airtime_analyzer from running if media_monitor is running
* Overhauled Add Media screen, now shows state of recent uploads
* Dropped old unused "state" column, added new file_import column to cc_files
* New PluploadController methods
* Save the filename as the track title for unprocessed uploads
* Hide pending files from the library until they've been processed.
* Don't overwrite files with duplicate names, we rename them instead.
* File import via the Add Media page now works!
* Reworked StoredFile::copyFileToStor() because it's still needed.
* Reworked the way file paths are reported in airtime_analyzer
and in the RESTful media API
* Fixed a race condition in pypo which could kill playout. Input kick
events and non-file/webstream events could result in an exception
being thrown. Fixed the logic error behind this, caught the exception
just in case, and added some code to prevent uncaught pypopush
exceptions from terminating the thread.
* Could prevent playout breakage in similar situations
* Added MetadataAnalyzer unit tests and test data
* Improved debug logging and squashed pika logging
* Implemented file moving
* Extract the track number/total
* Fixed mapping of mutagen to Airtime fields in a few spots. The mapping
matches the DB column names now.
* Fixed the bin/airtime_analyzer binary
* Started work on PluploadController to make it work with the new File
API
* Basic HTTP reporting back to the File API works (PUT)
* Use the database table names as JSON field names.
* Fixed result returning bug in message_listener.py
* Fixed API key verification to adhere with the HTTP Basic Auth spec
* Added StatusReporter class to make HTTP requests back to Airtime
* Handle even more errors now
* Added proper logging and log rotation
* Added --debug flag for increased logging.
* Finished the skeleton of the airtime_analyzer service.
* Basic round-robin, reliable AMQP messaging works.
* Using multiprocess arch so the daemon survives analyzer crashes and
avoids failures propagating to other nodes.
* Basic metadata extractor using Mutagen is done.
* HTTP requests to the File API to are next to come...
* Set a timeout for HTTP requests in api_client so that they don't
hang forever if there's a network interruption.
* Prevents pypo from completely freezing up in the network gets jacked.