diff --git a/src/databases/databases.js b/src/databases/databases.js index 46aa92a..1a1b448 100644 --- a/src/databases/databases.js +++ b/src/databases/databases.js @@ -32,10 +32,13 @@ if (config.mysql) { if (fs.existsSync(config.privateDBSchema)) privateDB.exec(fs.readFileSync(config.privateDBSchema).toString()); } - // Upgrade database if required if (!config.readOnly) { + // Upgrade database if required ugradeDB(db, "sponsorTimes"); ugradeDB(privateDB, "private") + + // Attach private db to main db + db.prepare("ATTACH ? as privateDB").run(config.privateDB); } // Enable WAL mode checkpoint number diff --git a/src/routes/getTopUsers.js b/src/routes/getTopUsers.js index 9931afa..2b452b6 100644 --- a/src/routes/getTopUsers.js +++ b/src/routes/getTopUsers.js @@ -44,7 +44,9 @@ module.exports = function getTopUsers (req, res) { "SUM((sponsorTimes.endTime - sponsorTimes.startTime) / 60 * sponsorTimes.views) as minutesSaved, " + additionalFields + "IFNULL(userNames.userName, sponsorTimes.userID) as userName FROM sponsorTimes LEFT JOIN userNames ON sponsorTimes.userID=userNames.userID " + - "WHERE sponsorTimes.votes > -1 AND sponsorTimes.shadowHidden != 1 GROUP BY IFNULL(userName, sponsorTimes.userID) ORDER BY " + sortBy + " DESC LIMIT 100", []); + "LEFT JOIN privateDB.shadowBannedUsers ON sponsorTimes.userID=privateDB.shadowBannedUsers.userID " + + "WHERE sponsorTimes.votes > -1 AND sponsorTimes.shadowHidden != 1 AND privateDB.shadowBannedUsers.userID IS NULL " + + "GROUP BY IFNULL(userName, sponsorTimes.userID) ORDER BY " + sortBy + " DESC LIMIT 100", []); for (let i = 0; i < rows.length; i++) { userNames[i] = rows[i].userName;