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

@ -4,22 +4,23 @@ class FileDataHelper {
public static function getAudioMimeTypeArray() {
return array(
"audio/ogg" => "ogg",
"application/ogg" => "ogg",
"audio/vorbis" => "ogg",
"audio/mp3" => "mp3",
"audio/mpeg" => "mp3",
"audio/mpeg3" => "mp3",
"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",
"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

@ -22,7 +22,7 @@ $(document).ready(function() {
unique_names : 'true',
multiple_queues : 'true',
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 : {
"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
import traceback
import pure
import mimetypes
from Queue import Empty
from threading import Thread, Timer
from subprocess import Popen, PIPE
@ -377,6 +377,21 @@ class PypoFetch(Thread):
start = datetime.strptime(media_item['start'], "%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)
length2 = media_item['cue_out'] - media_item['cue_in']

View File

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