diff --git a/src/routes/postSkipSegments.js b/src/routes/postSkipSegments.js index e47bb09..40c8287 100644 --- a/src/routes/postSkipSegments.js +++ b/src/routes/postSkipSegments.js @@ -5,6 +5,7 @@ const db = databases.db; const privateDB = databases.privateDB; const YouTubeAPI = require('../utils/youtubeAPI.js'); const logger = require('../utils/logger.js'); +const getSubmissionUUID = require('../utils/getSubmissionUUID.js'); const request = require('request'); const isoDurations = require('iso8601-duration'); const fetch = require('node-fetch'); @@ -201,8 +202,7 @@ async function autoModerateSubmission(submission) { startTime = parseFloat(segments[i].segment[0]); endTime = parseFloat(segments[i].segment[1]); - let UUID = getHash("v2-categories" + submission.videoID + startTime + - endTime + segments[i].category + submission.userID, 1); + const UUID = getSubmissionUUID(submission.videoID, segments[i].category, submission.userID, startTime, endTime); // Send to Discord // Note, if this is too spammy. Consider sending all the segments as one Webhook sendWebhooksNB(submission.userID, submission.videoID, UUID, startTime, endTime, segments[i].category, nbPredictions.probabilities[predictionIdx], data); @@ -400,8 +400,7 @@ module.exports = async function postSkipSegments(req, res) { //this can just be a hash of the data //it's better than generating an actual UUID like what was used before //also better for duplication checking - let UUID = getHash("v2-categories" + videoID + segmentInfo.segment[0] + - segmentInfo.segment[1] + segmentInfo.category + userID, 1); + const UUID = getSubmissionUUID(videoID, segmentInfo.category, userID, segmentInfo.segment[0], segmentInfo.segment[1]); try { db.prepare('run', "INSERT INTO sponsorTimes " + diff --git a/src/utils/getSubmissionUUID.js b/src/utils/getSubmissionUUID.js new file mode 100644 index 0000000..4142be1 --- /dev/null +++ b/src/utils/getSubmissionUUID.js @@ -0,0 +1,7 @@ +const getHash = require('./getHash.js'); + +module.exports = function getSubmissionUUID(videoID, category, userID, + startTime, endTime) { + return getHash('v2-categories' + videoID + startTime + endTime + category + + userID, 1); +}; diff --git a/test/cases/getSubmissionUUID.js b/test/cases/getSubmissionUUID.js new file mode 100644 index 0000000..75f23f2 --- /dev/null +++ b/test/cases/getSubmissionUUID.js @@ -0,0 +1,8 @@ +const getSubmissionUUID = require('../../src/utils/getSubmissionUUID.js'); +const assert = require('assert'); + +describe('getSubmissionUUID', () => { + it('Should return the hashed value', () => { + assert.equal(getSubmissionUUID('video001', 'sponsor', 'testuser001', 13.33337, 42.000001), '1d33d7016aa6482849019bd906d75c08fe6b815e64e823146df35f66c35612dd'); + }); +});