Skip to content
Permalink
Browse files

style(server): merge return and invocation to callback

  • Loading branch information...
mycoboco committed Jul 9, 2019
1 parent 90f01c2 commit f5a8f4d190044d31ebdefcdb1d5800f43edbb607
Showing with 40 additions and 122 deletions.
  1. +12 −42 server/lib/api.js
  2. +10 −31 server/lib/db.mongo.js
  3. +7 −20 server/lib/db.ne.js
  4. +1 −2 server/lib/mdns.js
  5. +8 −22 server/lib/mp3.js
  6. +2 −5 server/server.js
@@ -54,24 +54,19 @@ var nextSession = function () {
function auth(req, res, next) {
var p

if (!conf.server.password) {
next()
return
}
if (!conf.server.password) return next()

if (!req.headers.authorization) {
log.warning('password required')
res.send(401)
return
return res.send(401)
}

p = req.headers.authorization.substring(5) // 'Basic ...'
p = new Buffer(p, 'base64').toString()
p = p.substring(p.indexOf(':')) // iTunes_12.1:password
if (p !== ':'+conf.server.password) {
log.warning('authorization failed')
res.send(401)
return
return res.send(401)
}

next()
@@ -155,10 +150,7 @@ function databaseInfo(req, res) {
}

db.song.count(function (err, number) {
if (err) {
res.err(err)
return
}
if (err) return res.err(err)

if (mlcl.mlit) mlcl.mlit.mimc = number
daap.build({
@@ -230,10 +222,7 @@ function containerInfo(req, res) {
}

db.song.count(function (err, number) {
if (err) {
res.err(err)
return
}
if (err) return res.err(err)

daap.build({
aply: [
@@ -270,45 +259,29 @@ function song(req, res) {
var id, rs

id = /([0-9]+)\.(mp3|ogg)/i.exec(req.params.file)
if (!isFinite(+id[1])) {
res.err(400)
return
}
if (!isFinite(+id[1])) return res.err(400)

db.song.path(+id[1], function (err, songs) {
var i

if (err) {
res.err(err)
return
}
if (songs.length === 0) {
res.err(404)
return
}
if (err) return res.err(err)
if (songs.length === 0) return res.err(404)

for (i = 0; i < conf.server.scan.path.length; i++) {
if (songs[0].path.indexOf(conf.server.scan.path[0]) === 0) break
}
if (i === conf.server.scan.path.length) {
log.error(new Error('requested file('+songs[0].path+') has no valid path'))
res.err(404)
return
return res.err(404)
}

fs.stat(songs[0].path, function (err, stats) {
var r

if (err) {
res.err(404)
return
}
if (err) return res.err(404)

r = hodgepodge.range.parse(req.headers.range, stats)
if (r instanceof Error) {
res.err(416, r)
return
}
if (r instanceof Error) return res.err(416, r)

if (r) {
res.writeHead(206, {
@@ -337,10 +310,7 @@ function cacheUpdate(name, metas, res) {
metas = metas || defaultMetas(name)

db.song.listIter(function (err, songs) {
if (err) {
res.err(err)
return
}
if (err) return res.err(err)

daap[name].item(songs, metas, function (obj) {
daap.build(obj, function (buf) {
@@ -75,10 +75,7 @@ function init(_conf, cb) {

hodgepodge.mongoose.init(log)
hodgepodge.mongoose.connect(conf.db, function (err, _db) {
if (err) {
cb(err)
return
}
if (err) return cb(err)

db = _db
Info = db.model('Info', infoSchema)
@@ -106,15 +103,9 @@ function songListIter(cb) {
var cursor = Song.find().cursor()
var next = function () {
cursor.next(function (err, song) {
if (err) {
cb(err)
return
}

if (!song) {
cb(null, songs)
return
}
if (err) return cb(err)

if (!song) return cb(null, songs)
songs.push(song)
setImmediate(next)
})
@@ -136,12 +127,10 @@ function songGet(id, cb) {

function songAdd(song, cb) {
if (typeof song.id !== 'number' || song.id !== song.id) {
cb(new Error('invalid song id: '+util.inspect(song.id)))
return
return cb(new Error('invalid song id: '+util.inspect(song.id)))
}
if (typeof song.path !== 'string' || !song.path) {
cb(new Error('invalid song path: '+util.inspect(song.path)))
return
return cb(new Error('invalid song path: '+util.inspect(song.path)))
}

Song.update({
@@ -170,10 +159,7 @@ function versionGet(cb) {
Info.find({
type: 'music'
}, function (err, versions) {
if (err) {
cb(err)
return
}
if (err) return cb(err)
if (versions.length === 0) versions[0] = { version: 2 } // #26

cb(null, versions[0].version)
@@ -185,10 +171,7 @@ function versionInc(cb) {
Info.update({ type: 'music' }, {
$inc: { version: 1 }
}, function (err, result) {
if (err) {
cb(err)
return
}
if (err) return cb(err)

if (!result.nModified) {
Info.update({ type: 'music' }, {
@@ -206,10 +189,7 @@ function dbIdGet(cb) {
Info.find({
type: 'music'
}).select('dbId -_id').exec(function (err, ids) {
if (err) {
cb(err)
return
}
if (err) return cb(err)

cb(null, ids && ids[0] && ids[0].dbId)
})
@@ -218,8 +198,7 @@ function dbIdGet(cb) {

function dbIdSet(dbId, cb) {
if (typeof dbId !== 'string' || !dbId) {
cb(new Error('invalid db id: '+util.inspect(dbId)))
return
return cb(new Error('invalid db id: '+util.inspect(dbId)))
}

Info.update({
@@ -79,12 +79,10 @@ function songGet(id, cb) {

function songAdd(song, cb) {
if (typeof song.id !== 'number' || song.id !== song.id) {
cb(new Error('invalid song id: '+util.inspect(song.id)))
return
return cb(new Error('invalid song id: '+util.inspect(song.id)))
}
if (typeof song.path !== 'string' || !song.path) {
cb(new Error('invalid song path: '+util.inspect(song.path)))
return
return cb(new Error('invalid song path: '+util.inspect(song.path)))
}

db.song.update({
@@ -113,10 +111,7 @@ function versionGet(cb) {
db.info.find({
type: 'music'
}, function (err, versions) {
if (err) {
cb(err)
return
}
if (err) return cb(err)
if (versions.length === 0) versions[0] = { version: 2 } // #26

cb(null, versions[0].version)
@@ -128,10 +123,7 @@ function versionInc(cb) {
db.info.update({ type: 'music' }, {
$inc: { version: 1 }
}, function (err, nModified) {
if (err) {
cb(err)
return
}
if (err) return cb(err)

if (!nModified) {
db.info.update({ type: 'music' }, {
@@ -152,10 +144,7 @@ function dbIdGet(cb) {
dbId: 1,
_id: 0
}, function (err, ids) {
if (err) {
cb(err)
return
}
if (err) return cb(err)

cb(null, ids && ids[0] && ids[0].dbId)
})
@@ -164,8 +153,7 @@ function dbIdGet(cb) {

function dbIdSet(dbId, cb) {
if (typeof dbId !== 'string' || !dbId) {
cb(new Error('invalid db id: '+util.inspect(dbId)))
return
return cb(new Error('invalid db id: '+util.inspect(dbId)))
}

db.info.update({
@@ -221,8 +209,7 @@ function cacheClear(cb) {
fs.readdir(conf.db.path, function (err, files) {
if (err) {
log.warning(err)
cb() // errors ignored
return
return cb() // errors ignored
}

funcs = files.filter(function (f) { return /^cache-/.test(f) })
@@ -14,8 +14,7 @@ function init(db, cb) {
db.dbId.get(function (err, dbId) {
if (!err && dbId) {
id = dbId
cb(null, id)
return
return cb(null, id)
}

dbId = (new Date()).valueOf().toString(16) + Math.floor(Math.random()*16).toString(16)
@@ -211,35 +211,26 @@ function next(cb) {

if (qd.length === 0 && qf.length === 0) {
qd = [], qf = []
done(cb)
return
return done(cb)
}

async.parallel([
function (callback) {
var p = qd.pop()
if (!p) {
callback(null)
return
}
if (!p) return callback(null)

fs.readdir(p, function (err, files) {
var funcs = []

if (err) {
callback(err)
return
}
if (err) return callback(err)

for (var i = 0; i < files.length; i++) {
files[i] = path.join(p, files[i])
!function (file) {
funcs.push(function (callback) {
fs.stat(file, function (err, stats) {
if (err) {
callback(err)
return
}
if (err) return callback(err)

if (stats.isDirectory()) {
qd.push(file)
callback(null)
@@ -259,17 +250,12 @@ function next(cb) {
},
function (callback) {
var p = qf.pop()
if (!p) {
callback(null)
return
}
if (!p) return callback(null)

if (p.changed) {
meta(p.path, function (err, song) {
if (err) {
callback(err)
return
}
if (err) return callback(err)

song.version = version+1
song.mtime = p.mtime
db.song.add(song, function (err) {
@@ -243,12 +243,9 @@ function usage() {
res.end()
}

if (!body) {
res.send(500)
return
}
log.info('sending response to '+req.method+' '+req.url)
if (!body) return res.send(500)

log.info('sending response to '+req.method+' '+req.url)
if (/\bgzip\b/.test(req.headers['accept-encoding'])) {
zlib.gzip(body, send)
} else {

0 comments on commit f5a8f4d

Please sign in to comment.
You can’t perform that action at this time.