mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-11 14:07:09 +03:00
Fix isUserTrustworthy missing from voting method
This commit is contained in:
@@ -10,24 +10,7 @@ var isoDurations = require('iso8601-duration');
|
|||||||
var getHash = require('../utils/getHash.js');
|
var getHash = require('../utils/getHash.js');
|
||||||
var getIP = require('../utils/getIP.js');
|
var getIP = require('../utils/getIP.js');
|
||||||
var getFormattedTime = require('../utils/getFormattedTime.js');
|
var getFormattedTime = require('../utils/getFormattedTime.js');
|
||||||
|
var isUserTrustworthy = require('../utils/isUserTrustworthy.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;
|
|
||||||
}
|
|
||||||
|
|
||||||
function sendDiscordNotification(userID, videoID, UUID, segmentInfo) {
|
function sendDiscordNotification(userID, videoID, UUID, segmentInfo) {
|
||||||
//check if they are a first time user
|
//check if they are a first time user
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ var config = require('../config.js');
|
|||||||
var getHash = require('../utils/getHash.js');
|
var getHash = require('../utils/getHash.js');
|
||||||
var getIP = require('../utils/getIP.js');
|
var getIP = require('../utils/getIP.js');
|
||||||
var getFormattedTime = require('../utils/getFormattedTime.js');
|
var getFormattedTime = require('../utils/getFormattedTime.js');
|
||||||
|
var isUserTrustworthy = require('../utils/isUserTrustworthy.js')
|
||||||
|
|
||||||
var databases = require('../databases/databases.js');
|
var databases = require('../databases/databases.js');
|
||||||
var db = databases.db;
|
var db = databases.db;
|
||||||
|
|||||||
20
src/utils/isUserTrustworthy.js
Normal file
20
src/utils/isUserTrustworthy.js
Normal file
@@ -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;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user