From e6de177361065ee353da011f268b1d37ec8ca25c Mon Sep 17 00:00:00 2001 From: Alexey Kasyanchuk Date: Thu, 19 Jan 2017 15:06:26 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BB=D0=B8=D1=88=D0=BD=D0=B8=D1=85?= =?UTF-8?q?=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.js | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/index.js b/index.js index 74cc782..a0fd64b 100644 --- a/index.js +++ b/index.js @@ -428,10 +428,6 @@ client.on('complete', function (metadata, infohash, rinfo) { filesCount = metadata.info.files.length; size = 0; - pushDatabaseBalance(); - listenerMysql.query('DELETE FROM files WHERE hash = ?', hash, function (err, result) { - popDatabaseBalance(); - }) for(let i = 0; i < metadata.info.files.length; i++) { let file = metadata.info.files[i]; @@ -442,15 +438,6 @@ client.on('complete', function (metadata, infohash, rinfo) { size: file.length, }; filesArray.push(fileQ); - pushDatabaseBalance(); - let query = listenerMysql.query('INSERT INTO files SET ?', fileQ, function(err, result) { - popDatabaseBalance(); - if(!result) { - console.log(fileQ); - console.error(err); - } - }); - size += file.length; } } @@ -462,16 +449,30 @@ client.on('complete', function (metadata, infohash, rinfo) { size: size, }; filesArray.push(fileQ); - pushDatabaseBalance(); - let query = listenerMysql.query('INSERT INTO files SET ?', fileQ, function(err, result) { - popDatabaseBalance(); - if(!result) { - console.log(fileQ); - console.error(err); - } - }); } + listenerMysql.query('SELECT count(*) as files_count FROM files WHERE hash = ?', [hash], function(err, rows) { + const db_files = rows[0]['files_count']; + if(db_files !== filesCount) + { + pushDatabaseBalance(); + listenerMysql.query('DELETE FROM files WHERE hash = ?', hash, function (err, result) { + popDatabaseBalance(); + + filesArray.forEach((file) => { + pushDatabaseBalance(); + listenerMysql.query('INSERT INTO files SET ?', file, function(err, result) { + popDatabaseBalance(); + if(!result) { + console.log(fileQ); + console.error(err); + } + }); + }); + }) + } + }) + var torrentQ = { hash: hash, name: metadata.info.name,