From 261432a7fde59ee5982ee37bc2a8ba5db0a25a6c Mon Sep 17 00:00:00 2001 From: Ajay Ramachandran Date: Sat, 16 May 2020 16:40:18 -0400 Subject: [PATCH] Fix isUserTrustworthy missing from voting method --- src/routes/postSkipSegments.js | 19 +------------------ src/routes/voteOnSponsorTime.js | 1 + src/utils/isUserTrustworthy.js | 20 ++++++++++++++++++++ 3 files changed, 22 insertions(+), 18 deletions(-) create mode 100644 src/utils/isUserTrustworthy.js diff --git a/src/routes/postSkipSegments.js b/src/routes/postSkipSegments.js index 5beeee0..977ed94 100644 --- a/src/routes/postSkipSegments.js +++ b/src/routes/postSkipSegments.js @@ -10,24 +10,7 @@ var isoDurations = require('iso8601-duration'); var getHash = require('../utils/getHash.js'); var getIP = require('../utils/getIP.js'); var getFormattedTime = require('../utils/getFormattedTime.js'); - -// TODO: might need to be a util -//returns true if the user is considered trustworthy -//this happens after a user has made 5 submissions and has less than 60% downvoted submissions -async function isUserTrustworthy(userID) { - //check to see if this user how many submissions this user has submitted - let totalSubmissionsRow = db.prepare("SELECT count(*) as totalSubmissions, sum(votes) as voteSum FROM sponsorTimes WHERE userID = ?").get(userID); - - if (totalSubmissionsRow.totalSubmissions > 5) { - //check if they have a high downvote ratio - let downvotedSubmissionsRow = db.prepare("SELECT count(*) as downvotedSubmissions FROM sponsorTimes WHERE userID = ? AND (votes < 0 OR shadowHidden > 0)").get(userID); - - return (downvotedSubmissionsRow.downvotedSubmissions / totalSubmissionsRow.totalSubmissions) < 0.6 || - (totalSubmissionsRow.voteSum > downvotedSubmissionsRow.downvotedSubmissions); - } - - return true; -} +var isUserTrustworthy = require('../utils/isUserTrustworthy.js') function sendDiscordNotification(userID, videoID, UUID, segmentInfo) { //check if they are a first time user diff --git a/src/routes/voteOnSponsorTime.js b/src/routes/voteOnSponsorTime.js index 8a2aff7..ac34e18 100644 --- a/src/routes/voteOnSponsorTime.js +++ b/src/routes/voteOnSponsorTime.js @@ -4,6 +4,7 @@ var config = require('../config.js'); var getHash = require('../utils/getHash.js'); var getIP = require('../utils/getIP.js'); var getFormattedTime = require('../utils/getFormattedTime.js'); +var isUserTrustworthy = require('../utils/isUserTrustworthy.js') var databases = require('../databases/databases.js'); var db = databases.db; diff --git a/src/utils/isUserTrustworthy.js b/src/utils/isUserTrustworthy.js new file mode 100644 index 0000000..a17c29d --- /dev/null +++ b/src/utils/isUserTrustworthy.js @@ -0,0 +1,20 @@ +var databases = require('../databases/databases.js'); +var db = databases.db; + +//returns true if the user is considered trustworthy +//this happens after a user has made 5 submissions and has less than 60% downvoted submissions + +module.exports = async (userID) => { + //check to see if this user how many submissions this user has submitted + let totalSubmissionsRow = db.prepare("SELECT count(*) as totalSubmissions, sum(votes) as voteSum FROM sponsorTimes WHERE userID = ?").get(userID); + + if (totalSubmissionsRow.totalSubmissions > 5) { + //check if they have a high downvote ratio + let downvotedSubmissionsRow = db.prepare("SELECT count(*) as downvotedSubmissions FROM sponsorTimes WHERE userID = ? AND (votes < 0 OR shadowHidden > 0)").get(userID); + + return (downvotedSubmissionsRow.downvotedSubmissions / totalSubmissionsRow.totalSubmissions) < 0.6 || + (totalSubmissionsRow.voteSum > downvotedSubmissionsRow.downvotedSubmissions); + } + + return true; +} \ No newline at end of file