Added ALAC upload support and improved the upload page.

This commit is contained in:
Peter Deltchev 2016-02-15 12:16:04 -08:00
parent 4b3a0808a0
commit 093f7ffb9d
4 changed files with 15 additions and 14 deletions

View file

@ -51,6 +51,7 @@ class GenerateTrackFilesCommand extends CommandBase
'flac',
'pcm',
'adpcm',
'alac'
];
public function __construct(Track $track, SplFileInfo $sourceFile, bool $autoPublish = false)

View file

@ -112,8 +112,8 @@ class UploadTrackCommand extends CommandBase
'track' =>
'required|'
. ($this->_allowLossy
? 'audio_format:flac,pcm,adpcm,aac,mp3,vorbis|'
: 'audio_format:flac,pcm,adpcm|')
? 'audio_format:flac,alac,pcm,adpcm,aac,mp3,vorbis|'
: 'audio_format:flac,alac,pcm,adpcm|')
. ($this->_allowShortTrack ? '' : 'min_duration:30|')
. 'audio_channels:1,2',
@ -250,22 +250,16 @@ class UploadTrackCommand extends CommandBase
// all tags read by getID3, including the cover art
$allTags = $getId3->analyze($file->getPathname());
// tags specific to a file format (ID3 or Atom), pre-normalization but with cover art removed
$rawTags = [];
// normalized tags used by Pony.fm
$parsedTags = [];
// $rawTags => tags specific to a file format (ID3 or Atom), pre-normalization but with cover art removed
// $parsedTags => normalized tags used by Pony.fm
if ($audioCodec === 'mp3') {
list($parsedTags, $rawTags) = $this->getId3Tags($allTags);
} elseif (Str::startsWith($audioCodec, 'aac')) {
} elseif (Str::startsWith($audioCodec, ['aac', 'alac'])) {
list($parsedTags, $rawTags) = $this->getAtomTags($allTags);
} elseif ($audioCodec === 'vorbis') {
list($parsedTags, $rawTags) = $this->getVorbisTags($allTags);
} elseif ($audioCodec === 'flac') {
} elseif (in_array($audioCodec, ['vorbis', 'flac'])) {
list($parsedTags, $rawTags) = $this->getVorbisTags($allTags);
} elseif (Str::startsWith($audioCodec, ['pcm', 'adpcm'])) {

View file

@ -64,6 +64,10 @@ class PfmValidator extends Illuminate\Validation\Validator
return true;
}
if (in_array('alac', $parameters) && Str::startsWith($codecString, 'alac')) {
return true;
}
return in_array($file->getAudioCodec(), $parameters);
}

View file

@ -3,11 +3,13 @@
<p>Drop files here to begin your upload!</p>
</div>
<p>FLAC, WAV, and AIFF files will be accepted. Each file can be up to 200 MB in size.</p>
<p>Our preferred formats are FLAC, WAV, AIFF, and ALAC (because lossless audio is awesome) but we accept a few others, too. Each file can be up to 200 MB in size.</p>
<p>Tracks must be a <strong>minimum</strong> of 30 seconds long.</p>
<p>Please note that you need to publish your tracks after uploading them before they will become available to the public.</p>
<p>Note that you&#39;ll need to publish your tracks after uploading them before they&#39;ll become available to the public.</p>
<p>Contact <a href="mailto:feld0@pony.fm">feld0@pony.fm</a> if you run into any issues!</p>
<ul class="uploads">
<li ng-repeat="upload in data.queue track by $index" ng-class="{'uploading': upload.isUploading, 'has-error': upload.error != null, 'is-processing': upload.isProcessing || upload.progress >= 100}" ng-animate="'upload-queue'">