* adding resque to websocket-gateway

This commit is contained in:
Seth Call 2014-01-09 02:53:04 +00:00
parent 783a7c3adf
commit 0b723362ae
3 changed files with 48 additions and 4 deletions

View File

@ -7,24 +7,49 @@ module JamRuby
class AudioMixer
@@log = Logging.logger[AudioMixer]
def self.perform(manifest)
audiomixer = AudioMixer.new
audiomixer.run(manifest)
end
def initialize
end
def validate
raise "no files specified" if !@manifest[:files] || @manifest[:files].length == 0
end
def fetch_audio_files
@manifest[:files].each do |file|
filename = file[:filename]
end
end
def run(manifest)
manifest_file = Dir::Tmpname.make_tmpname "/var/tmp/audiomixer/manifest-#{manifest['recordingId']}", nil
@manifest = manifest.symbolize_keys
validate
fetch_audio_files
manifest_file = Dir::Tmpname.make_tmpname "/var/tmp/audiomixer/manifest-#{@manifest['recordingId']}", nil
File.open(manifest_file,"w") do |f|
f.write(manifest.to_json)
f.write(@manifest.to_json)
end
#{"files": [{"codec": "vorbis", "offset": 0, "filename": "TPD - bass.flac-stereo.ogg"}, {"codec": "vorbis", "offset": 0, "filename": "TPD - bg vox.flac-stereo.ogg"}, {"codec": "vorbis", "offset": 0, "filename": "TPD - drums.flac-stereo.ogg"}, {"codec": "vorbis", "offset": 0, "filename": "TPD - guitars.flac-stereo.ogg"}, {"codec": "vorbis", "offset": 0, "filename": "TPD - lead vox.flac-stereo.ogg"}], "output": {"codec": "vorbis", "filename": "mix.ogg"}, "timeline": [{"timestamp": 0, "mix": [{"balance": 0, "level": 100}, {"balance": 0, "level": 100}, {"balance": 0, "level": 100}, {"balance": 0, "level": 100}, {"balance": 0, "level": 100}]}]}
path = "/var/lib/audiomixer/audiomixer/audiomixerapp"
system("tar zxvf some_big_tarball.tar.gz")
audiomixer_cmd = "#{APP_CONFIG.audiomixer_path} #{manifest_file}"
@@log.debug("executing #{audiomixer_cmd}")
system(audiomixer_cmd)
end
end

View File

@ -0,0 +1,18 @@
require 'spec_helper'
# these tests avoid the use of ActiveRecord and FactoryGirl to do blackbox, non test-instrumented tests
describe AudioMixer do
let(:audiomixer) { AudioMixer.new }
describe "validate" do
it "no files specified" do
expect{ audiomixer.run({}) }.to raise_error("no files specified")
end
it "no codec specified" do
expect{ audiomixer.run({ "files" => [ "offset" => 0, "filename" => "/some/path"] }) }
end
end
end

View File

@ -37,6 +37,7 @@ gem 'aws-sdk', '1.29.1'
gem 'bugsnag'
gem 'geokit-rails'
gem 'postgres_ext'
gem 'resque'
group :development do
gem 'pry'