Skip to content

Commit

Permalink
integrated with normalize lib
Browse files Browse the repository at this point in the history
  • Loading branch information
liangzan committed Aug 27, 2011
1 parent 6ee2451 commit 55adaf0
Showing 1 changed file with 80 additions and 69 deletions.
149 changes: 80 additions & 69 deletions app.js
@@ -1,91 +1,102 @@

/**
/*
* Module dependencies.
*/

var logger = require('nlogger').logger(module);
var fs = require('fs');
var express = require('express')
, form = require('connect-form');

var logger = require('nlogger').logger(module),
sys = require('sys'),
path = require('path'),
fs = require('fs'),
exec = require('child_process').exec,
express = require('express'),
form = require('connect-form'),
normalizer = require('./lib/normalize').Normalizer;

var app = module.exports = express.createServer(
form({ keepExtensions: true })
form({ keepExtensions: true })
);

// Configuration

app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function(){
app.use(express.errorHandler());
});
app.use(express.errorHandler());
});

// Routes

var tempDir = '/tmp/'; //this is where the connect middleware is storing uploaded files
var audioDir = '/home/teamates/audio/'; // this is where we will permanently store uploaded files
var audioDir = __dirname + '/audio/';
var fileCounter = 'counter.json';

app.get('/', function(req, res){
res.render('index', {
title: 'Tea-mates'
});
});

app.post('/', function (req, res, next) {
req.form.complete(function(err, fields, files) {
if (err) {
next(err);
} else {
logger.debug('\nuploaded %s to %s'
, files.audio.filename
, files.audio.path);

// should prob use async fs functions below with a callback

// get the file extension
var split = files.audio.filename.split('.');
var ext = split[split.length - 1];

if (ext == 'mp3') {
// get the file counter and increment it
var fileContents = fs.readFileSync(fileCounter,'utf8');
var jsonCounter = JSON.parse(fileContents);
var counter = jsonCounter.counter;
counter++;
logger.debug(counter);
fs.writeFileSync(fileCounter, '{ "counter": ' + counter + ' }');

// move the file from the temp to permanent dir
fs.rename(files.audio.path
, audioDir + counter + '.' + ext);
res.redirect('back');
}
else {
res.send(415);
}


}
res.render('index', { title: 'Tea-mates' });
});

req.form.on('progress', function(bytesReceived, bytesExpected){
var percent = (bytesReceived / bytesExpected * 100) | 0;
process.stdout.write('Uploading: %' + percent + '\r');
});
});
app.post('/', function (req, res, next) {
req.form.complete(function(err, fields, files) {
if (err) {
next(err);
} else {
logger.debug('\nuploaded %s to %s'
, files.audio.filename
, files.audio.path);

// should prob use async fs functions below with a callback

// get the file extension
var split = files.audio.filename.split('.');
var ext = split[split.length - 1];

if (ext == 'mp3') {
// get the file counter and increment it
var fileContents = fs.readFileSync(fileCounter,'utf8');
var jsonCounter = JSON.parse(fileContents);
var counter = jsonCounter.counter;
counter++;
logger.debug(counter);
fs.writeFileSync(fileCounter, '{ "counter": ' + counter + ' }');

// move the file from the temp to permanent dir
var audioFileName = counter + '.' + ext;
var audioFilePath = audioDir + audioFileName;
var cmd = "mv " + files.audio.path + " " + audioFilePath;
var child = exec(cmd, function(err, stdout, stderr) {
if (err) {
sys.puts(JSON.stringify(err));
} else {
normalizer.normalizeFile(audioFilePath, function(err, text) {
if (err) {
sys.puts(JSON.stringify(err));
} else {
sys.puts(text);
fs.unlinkSync(__dirname + '/' + path.basename(audioFileName, '.mp3') + '.flac');
}
});
}
});
res.redirect('back');
}
else {
res.send(415);
}


}
});

req.form.on('progress', function(bytesReceived, bytesExpected){
var percent = (bytesReceived / bytesExpected * 100) | 0;
process.stdout.write('Uploading: %' + percent + '\r');
});
});

app.listen(3000);
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);

0 comments on commit 55adaf0

Please sign in to comment.