mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-09 04:57:04 +03:00
Merge pull request #35 from ajayyy/experimental
Fixed nothing returning when more than 4 sponsors + raised cap
This commit is contained in:
41
index.js
41
index.js
@@ -548,6 +548,35 @@ app.get('/api/getViewsForUser', function (req, res) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//Gets all the saved time added up (views * sponsor length) for one userID
|
||||||
|
//Useful to see how much one user has contributed
|
||||||
|
//In minutes
|
||||||
|
app.get('/api/getSavedTimeForUser', function (req, res) {
|
||||||
|
let userID = req.query.userID;
|
||||||
|
|
||||||
|
if (userID == undefined) {
|
||||||
|
//invalid request
|
||||||
|
res.sendStatus(400);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//hash the userID
|
||||||
|
userID = getHash(userID);
|
||||||
|
|
||||||
|
//up the view count by one
|
||||||
|
db.prepare("SELECT SUM((endTime - startTime) / 60 * views) as minutesSaved FROM sponsorTimes WHERE userID = ?").get(userID, function(err, row) {
|
||||||
|
if (err) console.log(err);
|
||||||
|
|
||||||
|
if (row.minutesSaved != null) {
|
||||||
|
res.send({
|
||||||
|
timeSaved: row.minutesSaved
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
res.sendStatus(404);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
app.get('/api/getTopUsers', function (req, res) {
|
app.get('/api/getTopUsers', function (req, res) {
|
||||||
let sortType = req.query.sortType;
|
let sortType = req.query.sortType;
|
||||||
|
|
||||||
@@ -711,11 +740,9 @@ function getVoteOrganisedSponsorTimes(sponsorTimes, votes, UUIDs) {
|
|||||||
|
|
||||||
let voteSums = weightedRandomIndexes.weightSums;
|
let voteSums = weightedRandomIndexes.weightSums;
|
||||||
//convert these into the votes
|
//convert these into the votes
|
||||||
for (let i = 0; i < voteSums.length; i++) {
|
for (let i = 0; i < finalSponsorTimeIndexes.length; i++) {
|
||||||
if (voteSums[i] != undefined) {
|
//it should use the sum of votes, since anyone upvoting a similar sponsor is upvoting the existence of that sponsor.
|
||||||
//it should use the sum of votes, since anyone upvoting a similar sponsor is upvoting the existence of that sponsor.
|
votes[finalSponsorTimeIndexes[i]] = voteSums[i];
|
||||||
votes[finalSponsorTimeIndexes[i]] = voteSums;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//find the indexes never dealt with and add them
|
//find the indexes never dealt with and add them
|
||||||
@@ -726,8 +753,8 @@ function getVoteOrganisedSponsorTimes(sponsorTimes, votes, UUIDs) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//if there are too many indexes, find the best 4
|
//if there are too many indexes, find the best 4
|
||||||
if (finalSponsorTimeIndexes.length > 4) {
|
if (finalSponsorTimeIndexes.length > 8) {
|
||||||
finalSponsorTimeIndexes = getWeightedRandomChoice(finalSponsorTimeIndexes, votes, 4).finalChoices;
|
finalSponsorTimeIndexes = getWeightedRandomChoice(finalSponsorTimeIndexes, votes, 8).finalChoices;
|
||||||
}
|
}
|
||||||
|
|
||||||
//convert this to a final array to return
|
//convert this to a final array to return
|
||||||
|
|||||||
Reference in New Issue
Block a user