diff --git a/src/background/feed.js b/src/background/feed.js index 4ed6e5e..39114d1 100644 --- a/src/background/feed.js +++ b/src/background/feed.js @@ -19,7 +19,7 @@ module.exports = class Feed { if(!this.loaded) return // feed not loaded on begining, ignore saving - console.log('saving feed') + logT('feed', 'saving feed') config.feedDate = this.feedDate await this.sphinx.query('delete from feed where id > 0') let id = 0 @@ -40,12 +40,12 @@ module.exports = class Feed { this._order() this.feedDate = config.feedDate this.loaded = true - console.log('lodead feed') + logT('feed', 'lodead feed') } clear() { - console.log('clearing feed') + logT('feed', 'clearing feed') this.feed = [] } diff --git a/src/background/forBigTable.js b/src/background/forBigTable.js index 24451c6..8da4114 100644 --- a/src/background/forBigTable.js +++ b/src/background/forBigTable.js @@ -3,7 +3,7 @@ module.exports = (sphinx, table, callback, doneCallback, max = 1000, where = '') sphinx.query(`SELECT * FROM ${table} WHERE id > ${index} ${where} LIMIT ${max}`, (err, torrents) => { const finish = () => { if(err) - console.log('big table parse error', err) + logT('sql', 'big table parse error', err) if(doneCallback) doneCallback(true) done(true) diff --git a/src/background/mysql.js b/src/background/mysql.js index 3add985..f5b88ff 100644 --- a/src/background/mysql.js +++ b/src/background/mysql.js @@ -167,9 +167,9 @@ const single = (callback) => { }); mysqlSingle._mysql.on('error', (err) => { - console.log('db error', err); + logT('sql', 'db error', err); if(err.code === 'PROTOCOL_CONNECTION_LOST') { // Connection to the MySQL server is usually - console.log('restart single sql connection') + logT('sql', 'restart single sql connection') mysqlSingle._mysql = undefined start(); // lost due to either server restart, or a } else { // connnection idle timeout (the wait_timeout diff --git a/src/background/p2p.js b/src/background/p2p.js index 7685bd0..7a4c1fc 100644 --- a/src/background/p2p.js +++ b/src/background/p2p.js @@ -23,7 +23,7 @@ class p2p { this.info = {} if(!config.peerId) { - console.log('generate peerId') + logT('p2p', 'generate peerId') config.peerId = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15) } this.peerId = config.peerId; @@ -44,7 +44,7 @@ class p2p { this.tcpServer.on('connection', (socket) => { this.tcpServer.getConnections((err,con) => { - console.log('server connected', con, 'max', this.tcpServer.maxConnections) + logT('p2p', 'server connected', con, 'max', this.tcpServer.maxConnections) }) socket = new JsonSocket(socket); this.clients.push(socket) @@ -108,7 +108,7 @@ class p2p { // new peer with peer exchange this.on('peer', (peer) => { - console.log('got peer exchange', peer) + logT('p2p', 'got peer exchange', peer) this.add(peer) }) @@ -124,7 +124,7 @@ class p2p { if (alias >= 1) { // nothing } else { - console.log('ignore local address', iface.address); + logT('p2p', 'ignore local address', iface.address); this.ignore(iface.address) } ++alias; @@ -133,7 +133,7 @@ class p2p { } listen() { - console.log('listen p2p on', config.spiderPort, 'port') + logT('p2p', 'listen p2p on', config.spiderPort, 'port') this.tcpServer.listen(config.spiderPort, '0.0.0.0'); } @@ -145,17 +145,17 @@ class p2p { // all ok don't need to start any ssh tunnels if(isAvailable) { - console.log('tcp p2p port is reachable - all ok') + logT('ssh', 'tcp p2p port is reachable - all ok') return; } else { - console.log('tcp p2p port is unreachable - try ssh tunnel') + logT('ssh', 'tcp p2p port is unreachable - try ssh tunnel') } if(!this.encryptor) { - console.error('something wrong with encryptor') + logT('ssh', 'something wrong with encryptor') return } @@ -170,7 +170,7 @@ class p2p { return } - console.log('ssh tunnel success, redirect peers to ssh') + logT('ssh', 'ssh tunnel success, redirect peers to ssh') this.p2pStatus = 1 this.send('p2pStatus', this.p2pStatus) @@ -185,7 +185,7 @@ class p2p { { if(this.ssh) { - console.log('closing ssh...') + logT('ssh', 'closing ssh...') this.ssh.kill() } // close server @@ -312,7 +312,7 @@ class p2p { torrents: data.info ? data.info.torrents || 0 : 0 }) this.events.emit('peer', address) - console.log('new peer', address) + logT('p2p', 'new peer', address) // add some other peers if(data.peers && data.peers.length > 0) @@ -338,7 +338,7 @@ class p2p { } this.peers.splice(index, 1); - console.log('close peer connection', address) + logT('p2p', 'close peer connection', address) } }) diff --git a/src/background/sphinx.js b/src/background/sphinx.js index 485318e..18182e2 100644 --- a/src/background/sphinx.js +++ b/src/background/sphinx.js @@ -136,8 +136,8 @@ const writeSphinxConfig = (path, dbPath) => { config = iconv.encode(config, 'win1251') fs.writeFileSync(`${path}/sphinx.conf`, config) - console.log(`writed sphinx config to ${path}`) - console.log('db path:', dbPath) + logT('sphinx', `writed sphinx config to ${path}`) + logT('sphinx', 'db path:', dbPath) return {isInitDb} } @@ -146,7 +146,7 @@ module.exports = (callback, dataDirectory, onClose) => { const start = (callback) => { const sphinxPath = path.resolve(appPath('searchd')) - console.log('Sphinx Path:', sphinxPath) + logT('sphinx', 'Sphinx Path:', sphinxPath) const sphinxConfigDirectory = dataDirectory appConfig['dbPath'] = appConfig.dbPath && appConfig.dbPath.length > 0 ? appConfig.dbPath : sphinxConfigDirectory; @@ -174,14 +174,14 @@ module.exports = (callback, dataDirectory, onClose) => { const optimizeResolvers = {} sphinx.stdout.on('data', (data) => { - console.log(`sphinx: ${data}`) + logT('sphinx', `sphinx: ${data}`) // don't listen if we are in fixing mode if(sphinx.fixing) return if (data.includes('accepting connections')) { - console.log('catched sphinx start') + logT('sphinx', 'catched sphinx start') if(callback) callback() } @@ -196,14 +196,14 @@ module.exports = (callback, dataDirectory, onClose) => { { if(optimizeResolvers[checkOptimized[1]]) { - console.log('resolve optimizer', checkOptimized[1]) + logT('sphinx', 'resolve optimizer', checkOptimized[1]) optimizeResolvers[checkOptimized[1]]() } } }) sphinx.on('close', (code, signal) => { - console.log(`sphinx closed with code ${code} and signal ${signal}`) + logT('sphinx', `sphinx closed with code ${code} and signal ${signal}`) if(onClose && !sphinx.replaceOnClose) // sometime we don't want to call default callback onClose() if(sphinx.onClose) @@ -211,7 +211,7 @@ module.exports = (callback, dataDirectory, onClose) => { }) sphinx.stop = (onFinish, replaceFinish) => { - console.log('sphinx closing...') + logT('sphinx', 'sphinx closing...') if(onFinish) sphinx.onClose = onFinish if(replaceFinish) @@ -234,7 +234,7 @@ module.exports = (callback, dataDirectory, onClose) => { // close db await new Promise((resolve) => { sphinx.stop(resolve, true) - console.log('revent start') + logT('sphinx', 'revent start') }) const checkNullFile = (file) => new Promise((resolve) => { @@ -258,7 +258,7 @@ module.exports = (callback, dataDirectory, onClose) => { brokenFiles = probablyCoruptedFiles.filter((file, index) => !brokenFiles[index]) brokenFiles.forEach(file => { - console.log('FIXDB: clean file because of broken', file) + logT('sphinx', 'FIXDB: clean file because of broken', file) fs.unlinkSync(file) }) diff --git a/src/background/spider.js b/src/background/spider.js index 6b1cee9..314119f 100644 --- a/src/background/spider.js +++ b/src/background/spider.js @@ -113,7 +113,7 @@ module.exports = function (send, recive, dataDirectory, version, env) if(peers && peers.length > 0) { peers.forEach(peer => p2p.add(peer)) - console.log('loaded', peers.length, 'peers') + logT('p2p', 'loaded', peers.length, 'peers') } } @@ -129,7 +129,7 @@ module.exports = function (send, recive, dataDirectory, version, env) resolve(data.length > 0 && JSON.parse(data)) }); }).on("error", (err) => { - console.log(`${url} error: ` + err.message) + logT('http', `${url} error: ` + err.message) resolve(false) }); }) @@ -145,7 +145,7 @@ module.exports = function (send, recive, dataDirectory, version, env) if(peers && peers.length > 0) { peers.forEach(peer => p2p.add(peer)) - console.log('loaded', peers.length, 'peers from bootstrap') + logT('p2p', 'loaded', peers.length, 'peers from bootstrap') } } if(json.bootstrapMap) @@ -165,7 +165,7 @@ module.exports = function (send, recive, dataDirectory, version, env) } } } - console.log('loaded peers map from bootstrap') + logT('p2p', 'loaded peers map from bootstrap') } } @@ -184,7 +184,7 @@ module.exports = function (send, recive, dataDirectory, version, env) p2pBootstrapLoop = setInterval(() => { if(p2p.size === 0) { - console.log('load peers from bootstap again because no peers at this moment') + logT('p2p', 'load peers from bootstap again because no peers at this moment') loadBootstrap() } }, 90000) // try to load new peers if there is no one found @@ -282,7 +282,7 @@ module.exports = function (send, recive, dataDirectory, version, env) const checkTorrent = (torrent) => { if(config.filters.maxFiles > 0 && torrent.files > config.filters.maxFiles) { - console.log('ignore', torrent.name, 'because files', torrent.files, '>', config.filters.maxFiles) + logT('check', 'ignore', torrent.name, 'because files', torrent.files, '>', config.filters.maxFiles) return false } @@ -292,37 +292,37 @@ module.exports = function (send, recive, dataDirectory, version, env) const rx = new RegExp(nameRX) if(!config.filters.namingRegExpNegative && !rx.test(torrent.name)) { - console.log('ignore', torrent.name, 'by naming rx') + logT('check', 'ignore', torrent.name, 'by naming rx') return false } else if(config.filters.namingRegExpNegative && rx.test(torrent.name)) { - console.log('ignore', torrent.name, 'by naming rx negative') + logT('check', 'ignore', torrent.name, 'by naming rx negative') return false } } if(torrent.contentType === 'bad') { - console.log('ignore torrent', torrent.name, 'because this is a bad thing') + logT('check', 'ignore torrent', torrent.name, 'because this is a bad thing') return false } if(config.filters.adultFilter && torrent.contentCategory === 'xxx') { - console.log('ignore torrent', torrent.name, 'because adult filter') + logT('check', 'ignore torrent', torrent.name, 'because adult filter') return false } if(config.filters.sizeEnabled && (torrent.size < config.filters.size.min || torrent.size > config.filters.size.max)) { - console.log('ignore torrent', torrent.name, 'because size bounds of', torrent.size, ':', config.filters.size) + logT('check', 'ignore torrent', torrent.name, 'because size bounds of', torrent.size, ':', config.filters.size) return false } if(config.filters.contentType && Array.isArray(config.filters.contentType) && !config.filters.contentType.includes(torrent.contentType)) { - console.log('ignore torrent', torrent.name, 'because type', torrent.contentType, 'not in:', config.filters.contentType) + logT('check', 'ignore torrent', torrent.name, 'because type', torrent.contentType, 'not in:', config.filters.contentType) return false } @@ -377,7 +377,7 @@ module.exports = function (send, recive, dataDirectory, version, env) if(!filesList || filesList.length == 0) { - console.log('skip torrent', torrent.name, '- no filesList') + logT('add', 'skip torrent', torrent.name, '- no filesList') resolve() return } @@ -423,7 +423,7 @@ module.exports = function (send, recive, dataDirectory, version, env) sphinxSingle.query("SELECT id FROM torrents WHERE hash = ?", torrent.hash, (err, single) => { if(!single) { - console.log(err) + logT('add', err) resolve() return } @@ -462,7 +462,7 @@ module.exports = function (send, recive, dataDirectory, version, env) } else { - console.log(torrent); + logT('add', torrent); console.error(err); } resolve() @@ -494,7 +494,7 @@ module.exports = function (send, recive, dataDirectory, version, env) } const insertMetadata = (metadata, infohash, rinfo) => { - console.log('finded torrent', metadata.info.name, ' and add to database'); + logT('spider', 'finded torrent', metadata.info.name, ' and add to database'); const bufferToString = (buffer) => Buffer.isBuffer(buffer) ? buffer.toString() : buffer @@ -551,7 +551,7 @@ module.exports = function (send, recive, dataDirectory, version, env) { disk.check(rootPath, function(err, info) { if (err) { - console.log(err); + logT('quota', err); } else { const {available, free, total} = info; @@ -594,7 +594,7 @@ module.exports = function (send, recive, dataDirectory, version, env) } recive('dropTorrents', (pathTorrents) => { - console.log('drop torrents and replicate from original') + logT('drop', 'drop torrents and replicate from original') const torrents = pathTorrents.map(path => parseTorrent(fs.readFileSync(path))) torrents.forEach(torrent => insertMetadata(torrent, torrent.infoHashBuffer, {address: '127.0.0.1', port: 666})) }) @@ -610,7 +610,7 @@ module.exports = function (send, recive, dataDirectory, version, env) const {address, port} = stunMsg.getAttribute(STUN_ATTR_XOR_MAPPED_ADDRESS).value stunServer.close() - console.log('p2p stun ignore my address', address) + logT('stun', 'p2p stun ignore my address', address) p2p.ignore(address) // check port avalibility @@ -632,7 +632,7 @@ module.exports = function (send, recive, dataDirectory, version, env) ttl: 0 }, function(err) { if(err) - console.log('upnp server dont respond') + logT('upnp', 'upnp server dont respond') }); upnp.portMapping({ public: config.spiderPort, @@ -642,7 +642,7 @@ module.exports = function (send, recive, dataDirectory, version, env) ttl: 0 }, function(err) { if(err) - console.log('upnp server dont respond') + logT('upnp', 'upnp server dont respond') }); upnp.portMapping({ public: config.udpTrackersPort, @@ -652,7 +652,7 @@ module.exports = function (send, recive, dataDirectory, version, env) ttl: 0 }, function(err) { if(err) - console.log('upnp server dont respond') + logT('upnp', 'upnp server dont respond') }); } @@ -677,7 +677,7 @@ module.exports = function (send, recive, dataDirectory, version, env) if(err) return - console.log('p2p upnp ignore my address', ip) + logT('upnp', 'p2p upnp ignore my address', ip) p2p.ignore(ip) }); } @@ -732,20 +732,20 @@ module.exports = function (send, recive, dataDirectory, version, env) } // load torrents sessions - console.log('restore downloading sessions') + logT('downloader', 'restore downloading sessions') torrentClient.loadSession(dataDirectory + '/downloads.json') this.stop = async (callback) => { this.closing = true - console.log('spider closing...') + logT('close', 'spider closing...') if(upnp) upnp.ratsUnmap() - console.log('closing alternative db interface') + logT('close', 'closing alternative db interface') await new Promise(resolve => sphinxSingleAlternative.end(resolve)) // save torrents sessions - console.log('save torrents downloads sessions') + logT('close', 'save torrents downloads sessions') torrentClient.saveSession(dataDirectory + '/downloads.json') // save feed @@ -755,7 +755,7 @@ module.exports = function (send, recive, dataDirectory, version, env) if(config.p2pBootstrap && p2pBootstrapLoop) { clearInterval(p2pBootstrapLoop) - console.log('bootstrap loop stoped') + logT('close', 'bootstrap loop stoped') } // safe future peers @@ -766,7 +766,7 @@ module.exports = function (send, recive, dataDirectory, version, env) if(addresses.length > 0) { fs.writeFileSync(dataDirectory + '/peers.p2p', peersEncripted, 'utf8'); - console.log('local peers saved') + logT('close', 'local peers saved') } if(config.p2pBootstrap) @@ -804,7 +804,7 @@ module.exports = function (send, recive, dataDirectory, version, env) 'Content-Type' : "application/json", } }; - console.log('bootstrap peers saved to', host) + logT('close', 'bootstrap peers saved to', host) const req = http.request(options, resolve); req.on('error', resolve) req.end(JSON.stringify({ @@ -820,7 +820,7 @@ module.exports = function (send, recive, dataDirectory, version, env) } } - console.log('closing p2p...') + logT('close', 'closing p2p...') // don't listen spider peer appears spider.removeAllListeners('peer') await p2p.close() @@ -828,11 +828,11 @@ module.exports = function (send, recive, dataDirectory, version, env) // don't listen complete torrent responses client.removeAllListeners('complete') - console.log('closing torrent client') + logT('close', 'closing torrent client') torrentClient.destroy(() => { sphinx.end(() => spider.close(() => { sphinxSingle.destroy() - console.log('spider closed') + logT('close', 'spider closed') callback() })) }) diff --git a/src/background/ssh.js b/src/background/ssh.js index 81f771c..3fe7e37 100644 --- a/src/background/ssh.js +++ b/src/background/ssh.js @@ -46,7 +46,7 @@ const startSSH = (port, host, user, password, callback) => { } ssh.stdout.on('data', (data) => { - console.log(`ssh: ${data}`) + logT('ssh', `ssh: ${data}`) checkMessage(data) if(data.includes('Store key in cache?')) { @@ -56,7 +56,7 @@ const startSSH = (port, host, user, password, callback) => { }) ssh.stderr.on('data', (data) => { - console.log(`ssh error: ${data}`); + logT('ssh', `ssh error: ${data}`); checkMessage(data) if(data.includes('Password authentication failed')) { @@ -70,7 +70,7 @@ const startSSH = (port, host, user, password, callback) => { }); ssh.on('close', (code, signal) => { - console.log(`ssh closed with code ${code} and signal ${signal}`) + logT('ssh', `ssh closed with code ${code} and signal ${signal}`) if(callback) callback(false) }) diff --git a/src/background/store.js b/src/background/store.js index 433e858..8d07fa5 100644 --- a/src/background/store.js +++ b/src/background/store.js @@ -13,7 +13,7 @@ module.exports = class P2PStore extends EventEmitter { }); this.synchronized = false - console.log('connect p2p store...') + logT('store', 'connect p2p store...') this.p2p = p2p this.sphinx = sphinx @@ -24,7 +24,7 @@ module.exports = class P2PStore extends EventEmitter { if(rows[0] && rows[0].mx >= 1) this.id = rows[0].mx; - console.log('store db index', this.id) + logT('store', 'store db index', this.id) this.p2p.events.on('peer', (peer) => { if(peer.info && peer.info.store) @@ -40,7 +40,7 @@ module.exports = class P2PStore extends EventEmitter { this.p2p.on('dbStore', (record) => { if(!record || record.id - 1 !== this.id) { - console.log('out of range peerdb store', record.id) + logT('store', 'out of range peerdb store', record.id) return } @@ -51,7 +51,7 @@ module.exports = class P2PStore extends EventEmitter { }) this.p2p.on('dbSync', ({id} = {}, callback) => { - console.log('ask to sync db from', id, 'version') + logT('store', 'ask to sync db from', id, 'version') if(typeof id === 'undefined' || id >= this.id) { callback(false) @@ -62,7 +62,7 @@ module.exports = class P2PStore extends EventEmitter { this.sphinx.query(`select * from store where id > ${id}`, (err, records) => { if(err) { - console.log(err) + logT('store', err) return } @@ -77,7 +77,7 @@ module.exports = class P2PStore extends EventEmitter { sync(peer) { - console.log('sync db on version', this.id, peer ? `from peer ${peer.peerId}` : '') + logT('store', 'sync db on version', this.id, peer ? `from peer ${peer.peerId}` : '') const processSync = (data, nil, peer) => { if(!data || !data.records) return @@ -90,7 +90,7 @@ module.exports = class P2PStore extends EventEmitter { && oldIndex < this.id // last sync update of store must be successful, otherwise no point to try sync db from this peer && this.id < data.index) { - console.log('continue sync store from', this.id, 'index', 'peer', peer.peerId) + logT('store', 'continue sync store from', this.id, 'index', 'peer', peer.peerId) peer.emit('dbSync', {id: this.id}, processSync) } } @@ -119,7 +119,7 @@ module.exports = class P2PStore extends EventEmitter { // check hash if(objectHash(record.data) !== record.hash) { - console.log('wrong hash for sync peerdb') + logT('store', 'wrong hash for sync peerdb') return } @@ -127,7 +127,7 @@ module.exports = class P2PStore extends EventEmitter { record.myself = false // push to db - console.log('sync peerdb record', record.id) + logT('store', 'sync peerdb record', record.id) this._pushToDb(record) this.id = record.id @@ -145,7 +145,7 @@ module.exports = class P2PStore extends EventEmitter { (err) => { if(err) { - console.log(err) + logT('store', err) return } @@ -159,7 +159,7 @@ module.exports = class P2PStore extends EventEmitter { { if(!this.synchronized) { - console.log('cant store item on unsync db') + logT('store', 'cant store item on unsync db') return false } @@ -177,7 +177,7 @@ module.exports = class P2PStore extends EventEmitter { temp } - console.log('store object', value.id) + logT('store', 'store object', value.id) this._pushToDb(value, () => { // store record