SAAS-922 - change file extensions in pypo based on mime-type, update lists of accepted mime types

This commit is contained in:
Duncan Sommerville 2015-07-16 16:26:52 -04:00
parent 041053b171
commit 1816be156f
5 changed files with 52 additions and 19 deletions

View File

@ -10,6 +10,7 @@ class FileDataHelper {
"audio/mp3" => "mp3", "audio/mp3" => "mp3",
"audio/mpeg" => "mp3", "audio/mpeg" => "mp3",
"audio/mpeg3" => "mp3", "audio/mpeg3" => "mp3",
"audio/x-aac" => "aac",
"audio/aac" => "aac", "audio/aac" => "aac",
"audio/aacp" => "aac", "audio/aacp" => "aac",
"audio/mp4" => "mp4", "audio/mp4" => "mp4",

View File

@ -22,7 +22,7 @@ $(document).ready(function() {
unique_names : 'true', unique_names : 'true',
multiple_queues : 'true', multiple_queues : 'true',
filters : [ filters : [
{title: "Audio Files", extensions: "ogg,mp3,oga,flac,wav,m4a,mp4,opus"} {title: "Audio Files", extensions: "ogg,mp3,oga,flac,wav,m4a,mp4,opus,aac,oga,mp1,mp2,wma,au"}
], ],
multipart_params : { multipart_params : {
"csrf_token" : $("#csrf").attr('value'), "csrf_token" : $("#csrf").attr('value'),

View File

@ -0,0 +1,17 @@
audio/ogg ogg
application/ogg ogg
audio/vorbis ogg
audio/mp3 mp3
audio/mpeg mp3
audio/mpeg3 mp3
audio/x-aac aac
audio/aac aac
audio/aacp aac
audio/mp4 mp4
audio/x-flac flac
audio/wav wav
audio/x-wav wav
audio/mp2 mp2
audio/mp1 mp1
audio/x-ms-wma wma
audio/basic au

View File

@ -12,7 +12,7 @@ import signal
from datetime import datetime from datetime import datetime
import traceback import traceback
import pure import pure
import mimetypes
from Queue import Empty from Queue import Empty
from threading import Thread, Timer from threading import Thread, Timer
from subprocess import Popen, PIPE from subprocess import Popen, PIPE
@ -377,6 +377,21 @@ class PypoFetch(Thread):
start = datetime.strptime(media_item['start'], "%Y-%m-%d-%H-%M-%S") start = datetime.strptime(media_item['start'], "%Y-%m-%d-%H-%M-%S")
end = datetime.strptime(media_item['end'], "%Y-%m-%d-%H-%M-%S") end = datetime.strptime(media_item['end'], "%Y-%m-%d-%H-%M-%S")
root, ext = os.path.splitext(media_item['uri'])
mime = media_item['metadata']['mime']
mimetypes.init()
mime_ext = mimetypes.guess_extension(mime, strict=False)
if mime_ext is None:
mimes = mimetypes.read_mime_types("%s/mime.types" % os.path.dirname(os.path.realpath(__file__)))
for k, v in mimes.iteritems():
if v == mime:
mime_ext = k
if mime_ext is not None and mime_ext != ext:
self.logger.info("Invalid extension %s for file %s, changing to %s" % (ext, root, mime_ext))
media_item['uri'] = root + mime_ext
length1 = pure.date_interval_to_seconds(end - start) length1 = pure.date_interval_to_seconds(end - start)
length2 = media_item['cue_out'] - media_item['cue_in'] length2 = media_item['cue_out'] - media_item['cue_in']

View File

@ -39,7 +39,7 @@ setup(name='airtime-playout',
license='AGPLv3', license='AGPLv3',
packages=['pypo', 'pypo.media', 'pypo.media.update', packages=['pypo', 'pypo.media', 'pypo.media.update',
'liquidsoap', 'liquidsoap.library'], 'liquidsoap', 'liquidsoap.library'],
package_data={'': ['*.liq', '*.cfg']}, package_data={'': ['*.liq', '*.cfg', '*.types']},
scripts=[ scripts=[
'bin/airtime-playout', 'bin/airtime-playout',
'bin/airtime-liquidsoap', 'bin/airtime-liquidsoap',