mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2024-09-20 04:54:00 +02:00
added ability for vips to submit segments not in a video
This commit is contained in:
parent
44ea0c418a
commit
f53c541538
3 changed files with 55 additions and 12 deletions
|
@ -1,4 +1,3 @@
|
|||
var fs = require('fs');
|
||||
var config = require('../config.js');
|
||||
|
||||
var databases = require('../databases/databases.js');
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
const db = require('../databases/databases.js').db;
|
||||
const getHash = require('../utils/getHash.js');
|
||||
const isUserVIP = require('../utils/isUserVIP.js');
|
||||
const logger = require('../utils/logger.js');
|
||||
|
||||
module.exports = (req, res) => {
|
||||
// Collect user input data
|
||||
|
@ -27,5 +29,34 @@ module.exports = (req, res) => {
|
|||
return;
|
||||
}
|
||||
|
||||
res.status(200).json({status: 200});
|
||||
// Get existing no segment markers
|
||||
let noSegmentList = db.prepare('all', 'SELECT category from noSegments where videoID = ?', [videoID]);
|
||||
if (!noSegmentList || noSegmentList.length === 0) {
|
||||
noSegmentList = [];
|
||||
} else {
|
||||
noSegmentList = noSegmentList.map((obj) => {
|
||||
return obj.category;
|
||||
});
|
||||
}
|
||||
|
||||
// get user categorys not already submitted
|
||||
let categorysToMark = categorys.filter((category) => {
|
||||
return noSegmentList.indexOf(category) === -1;
|
||||
});
|
||||
|
||||
// remove any duplicates
|
||||
categorysToMark = categorysToMark.filter((category, index) => {
|
||||
return categorysToMark.indexOf(category) === index;
|
||||
});
|
||||
|
||||
// create database entry
|
||||
categorysToMark.forEach((category) => {
|
||||
db.prepare('run', "INSERT INTO noSegments (videoID, userID, category) VALUES(?, ?, ?)", [videoID, userID, category]);
|
||||
//ogger.debug('submitting ' + category);
|
||||
});
|
||||
|
||||
res.status(200).json({
|
||||
status: 200,
|
||||
submitted: categorysToMark
|
||||
});
|
||||
};
|
|
@ -9,6 +9,9 @@ var db = databases.db;
|
|||
describe('postNoSegments', () => {
|
||||
before(() => {
|
||||
db.exec("INSERT INTO vipUsers (userID) VALUES ('" + getHash("VIPUser-noSegments") + "')");
|
||||
|
||||
db.exec("INSERT INTO noSegments (userID, videoID, category) VALUES ('" + getHash("VIPUser-noSegments") + "', 'no-segments-video-id', 'sponsor')");
|
||||
db.exec("INSERT INTO noSegments (userID, videoID, category) VALUES ('" + getHash("VIPUser-noSegments") + "', 'no-segments-video-id', 'intro')");
|
||||
});
|
||||
|
||||
it('should update the database version when starting the application', (done) => {
|
||||
|
@ -17,12 +20,23 @@ describe('postNoSegments', () => {
|
|||
else done('Version isn\'t greater that 1. Version is ' + version);
|
||||
});
|
||||
|
||||
it('Should be able to submit no segments', (done) => {
|
||||
it('Should be able to submit categorys not in video', (done) => {
|
||||
let json = {
|
||||
videoID: 'noSegmentsTestVideoID',
|
||||
videoID: 'no-segments-video-id',
|
||||
userID: 'VIPUser-noSegments',
|
||||
categorys: [
|
||||
'sponsor'
|
||||
'outro',
|
||||
'shilling',
|
||||
'shilling',
|
||||
'intro'
|
||||
]
|
||||
};
|
||||
|
||||
let expected = {
|
||||
status: 200,
|
||||
submitted: [
|
||||
'outro',
|
||||
'shilling'
|
||||
]
|
||||
};
|
||||
|
||||
|
@ -31,12 +45,11 @@ describe('postNoSegments', () => {
|
|||
(err, res, body) => {
|
||||
if (err) done(err);
|
||||
else if (res.statusCode === 200) {
|
||||
//let row = db.prepare('get', "SELECT startTime, endTime, category FROM sponsorTimes WHERE videoID = ?", ["noSegmentsTestVideoID"]);
|
||||
//if (row.startTime === 2 && row.endTime === 10 && row.category === "sponsor") {
|
||||
done()
|
||||
//} else {
|
||||
// done("Submitted times were not saved. Actual submission: " + JSON.stringify(row));
|
||||
//}
|
||||
if (JSON.stringify(body) === JSON.stringify(expected)) {
|
||||
done();
|
||||
} else {
|
||||
done("Incorrect response: expected " + JSON.stringify(expected) + " got " + JSON.stringify(body));
|
||||
}
|
||||
} else {
|
||||
console.log(body);
|
||||
done("Status code was " + res.statusCode);
|
||||
|
@ -166,7 +179,7 @@ describe('postNoSegments', () => {
|
|||
(err, res, body) => {
|
||||
if (err) done(err);
|
||||
else if (res.statusCode === 403) {
|
||||
done()
|
||||
done();
|
||||
} else {
|
||||
done("Status code was " + res.statusCode);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue