Julio Biason
11 years ago
3 changed files with 78 additions and 9 deletions
@ -1,6 +1,74 @@
|
||||
/* |
||||
* main page |
||||
*/ |
||||
|
||||
var sqlite3 = require('sqlite3'); |
||||
var path = require('path'); |
||||
var db; // make it global
|
||||
|
||||
/** |
||||
* db name |
||||
*/ |
||||
function dbName() |
||||
{ |
||||
return path.join(__dirname, '../../db/lyrics.sq3'); |
||||
} |
||||
|
||||
/** |
||||
* turn a phrase into a list of acronyms |
||||
*/ |
||||
function acronymize(phrase) |
||||
{ |
||||
var letters = []; |
||||
phrase.split(' ').forEach(function(elem, idx, array) { |
||||
letters.push(elem[0].toUpperCase()); |
||||
}) |
||||
|
||||
return letters.join(''); |
||||
} |
||||
|
||||
/** |
||||
* Pick a song |
||||
*/ |
||||
function getSong(res) { |
||||
var name = dbName(); |
||||
console.log('Opening the database ' + name + '...'); |
||||
db = new sqlite3.Database(name, sqlite3.OPEN_READWRITE, function(error) { |
||||
if (error) { |
||||
throw error; |
||||
} |
||||
|
||||
console.log('Pickling a song...'); |
||||
db.get('SELECT * FROM songs WHERE done_in IS NULL ORDER BY random() LIMIT 1', function(err, song) { |
||||
if (err) { |
||||
throw err; |
||||
} |
||||
|
||||
db.get('SELECT * FROM artists WHERE id = ' + song.artist, function(err, artist) { |
||||
if (err) { |
||||
throw err; |
||||
} |
||||
|
||||
db.get('SELECT * FROM lyrics WHERE song = ' + song.id, function(err, lyrics) { |
||||
if (err) { |
||||
throw err; |
||||
} |
||||
|
||||
params = {title: 'Round', |
||||
lyrics: lyrics.lyrics, |
||||
song_title: song.title, |
||||
song_artist: artist.name, |
||||
acronym_title: acronymize(song.title), |
||||
acronym_artist: acronymize(artist.name) |
||||
}; |
||||
res.render('index', params); |
||||
}); |
||||
}); |
||||
}); |
||||
}); |
||||
} |
||||
|
||||
exports.index = function(req, res) { |
||||
res.render('index', { title: 'Round'} ); |
||||
} |
||||
// res.render('index', { title: 'Round'} );
|
||||
getSong(res); |
||||
} |
||||
|
Loading…
Reference in new issue