diff --git a/index.js b/index.js index c88104c..82280a9 100644 --- a/index.js +++ b/index.js @@ -212,6 +212,11 @@ function baseRowData(row) } } +let topCache = {}; +setInterval(() => { + topCache = {}; +}, 24 * 60 * 60 * 1000); + io.on('connection', function(socket) { socket.on('recentTorrents', function(callback) @@ -445,17 +450,24 @@ io.on('connection', function(socket) where = ' and `added` > DATE_SUB(NOW(), INTERVAL 30 DAY) ' } } - mysqlPool.query(`SELECT * FROM torrents WHERE seeders > 0 and (contentCategory is null or contentCategory != 'xxx') ${where} ORDER BY seeders + leechers DESC LIMIT ${max}`, function (error, rows) { + + const query = `SELECT * FROM torrents WHERE seeders > 0 and (contentCategory is null or contentCategory != 'xxx') ${where} ORDER BY seeders + leechers DESC LIMIT ${max}`; + if(topCache[query]) + { + callback(topCache[query]); + return; + } + mysqlPool.query(query, function (error, rows) { if(!rows || rows.length == 0) { callback(undefined) return; } - let searchList = []; - rows.forEach((row) => { - searchList.push(baseRowData(row)); - }); - callback(searchList); + rows = rows.map((row) => { + return baseRowData(row); + }); + topCache[query] = rows; + callback(rows); }); }); diff --git a/src/top-page.js b/src/top-page.js index 049ca89..10a94ee 100644 --- a/src/top-page.js +++ b/src/top-page.js @@ -47,14 +47,14 @@ export default class TopPage extends Page { window.router('/') }} /> { - this.types.map((type) => { + this.types.map((type, index) => { const torrents = this.topTorrents[type]; if(!torrents) return null; return ( - + { this.descriptions[type]