Merge pull request #5 from ajayyy/testing

Testing
This commit is contained in:
Joe Dowd
2020-09-03 22:27:18 +01:00
committed by GitHub
4 changed files with 31 additions and 25 deletions

View File

@@ -1,11 +1,16 @@
var request = require('request'); var request = require('request');
var config = require('../config.js'); const config = require('../config.js');
var getIP = require('../utils/getIP.js'); const getIP = require('../utils/getIP.js');
const getHash = require('../utils/getHash.js'); const getHash = require('../utils/getHash.js');
const logger = require('../utils/logger.js');
module.exports = function userCounter(req, res, next) { module.exports = function userCounter(req, res, next) {
request.post(config.userCounterURL + "/api/v1/addIP?hashedIP=" + getHash(getIP(req), 1)); try {
request.post(config.userCounterURL + "/api/v1/addIP?hashedIP=" + getHash(getIP(req), 1));
} catch(e) {
logger.debug("Failing to connect to user counter at: " + config.userCounterURL);
}
next(); next();
} }

View File

@@ -12,28 +12,30 @@ let apiUsersCache = null;
let lastUserCountCheck = 0; let lastUserCountCheck = 0;
module.exports = function getTotalStats (req, res) { module.exports = function getTotalStats (req, res) {
let row = db.prepare('get', "SELECT COUNT(DISTINCT userID) as userCount, COUNT(*) as totalSubmissions, " + let row = db.prepare('get', "SELECT COUNT(DISTINCT userID) as userCount, COUNT(*) as totalSubmissions, " +
"SUM(views) as viewCount, SUM((endTime - startTime) / 60 * views) as minutesSaved FROM sponsorTimes WHERE shadowHidden != 1 AND votes >= 0", []); "SUM(views) as viewCount, SUM((endTime - startTime) / 60 * views) as minutesSaved FROM sponsorTimes WHERE shadowHidden != 1 AND votes >= 0", []);
if (row !== undefined) { if (row !== undefined) {
//send this result let extensionUsers = chromeUsersCache + firefoxUsersCache;
res.send({
userCount: row.userCount,
activeUsers: chromeUsersCache + firefoxUsersCache,
apiUsers: apiUsersCache,
viewCount: row.viewCount,
totalSubmissions: row.totalSubmissions,
minutesSaved: row.minutesSaved
});
// Check if the cache should be updated (every ~14 hours) //send this result
let now = Date.now(); res.send({
if (now - lastUserCountCheck > 5000000) { userCount: row.userCount,
lastUserCountCheck = now; activeUsers: extensionUsers,
apiUsers: Math.max(apiUsersCache, extensionUsers),
viewCount: row.viewCount,
totalSubmissions: row.totalSubmissions,
minutesSaved: row.minutesSaved
});
updateExtensionUsers(); // Check if the cache should be updated (every ~14 hours)
} let now = Date.now();
} if (now - lastUserCountCheck > 5000000) {
lastUserCountCheck = now;
updateExtensionUsers();
}
}
} }
function updateExtensionUsers() { function updateExtensionUsers() {

View File

@@ -63,7 +63,7 @@ function sendWebhooks(userID, videoID, UUID, segmentInfo) {
// If it is a first time submission // If it is a first time submission
// Then send a notification to discord // Then send a notification to discord
if (config.discordFirstTimeSubmissionsWebhookURL === null) return; if (config.discordFirstTimeSubmissionsWebhookURL === null || userSubmissionCountRow.submissionCount > 1) return;
request.post(config.discordFirstTimeSubmissionsWebhookURL, { request.post(config.discordFirstTimeSubmissionsWebhookURL, {
json: { json: {
"embeds": [{ "embeds": [{

View File

@@ -1,5 +1,3 @@
var config = require('../config.js');
var databases = require('../databases/databases.js'); var databases = require('../databases/databases.js');
var db = databases.db; var db = databases.db;
var privateDB = databases.privateDB; var privateDB = databases.privateDB;
@@ -30,7 +28,8 @@ module.exports = async function shadowBanUser(req, res) {
//hash the userID //hash the userID
adminUserIDInput = getHash(adminUserIDInput); adminUserIDInput = getHash(adminUserIDInput);
if (adminUserIDInput !== config.adminUserID) { let isVIP = db.prepare("get", "SELECT count(*) as userCount FROM vipUsers WHERE userID = ?", [adminUserIDInput]).userCount > 0;
if (!isVIP) {
//not authorized //not authorized
res.sendStatus(403); res.sendStatus(403);
return; return;