mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-14 23:47:00 +03:00
add ignored counts
This commit is contained in:
@@ -27,6 +27,15 @@ async function dbGetSubmittedSegmentSummary(userID: HashedUserID): Promise<{ min
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function dbGetIgnoredSegmentCount(userID: HashedUserID): Promise<{ ignoredSegmentCount: number }> {
|
||||||
|
try {
|
||||||
|
let row = await db.prepare("get", `SELECT COUNT(*) as "ignoredSegmentCount" FROM "sponsorTimes" WHERE "userID" = ? AND ( "votes" <= -2 OR "shadowHidden" = 1 )`, [userID]);
|
||||||
|
return row?.ignoredSegmentCount ?? 0
|
||||||
|
} catch (err) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function dbGetUsername(userID: HashedUserID) {
|
async function dbGetUsername(userID: HashedUserID) {
|
||||||
try {
|
try {
|
||||||
let row = await db.prepare('get', `SELECT "userName" FROM "userNames" WHERE "userID" = ?`, [userID]);
|
let row = await db.prepare('get', `SELECT "userName" FROM "userNames" WHERE "userID" = ?`, [userID]);
|
||||||
@@ -50,6 +59,15 @@ async function dbGetViewsForUser(userID: HashedUserID) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function dbGetIgnoredViewsForUser(userID: HashedUserID) {
|
||||||
|
try {
|
||||||
|
let row = await db.prepare('get', `SELECT SUM("views") as "ignoredViewCount" FROM "sponsorTimes" WHERE "userID" = ? AND ( "votes" <= -2 OR "shadowHidden" = 1 )`, [userID]);
|
||||||
|
return row?.ignoredViewCount ?? 0;
|
||||||
|
} catch (err) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function dbGetWarningsForUser(userID: HashedUserID): Promise<number> {
|
async function dbGetWarningsForUser(userID: HashedUserID): Promise<number> {
|
||||||
try {
|
try {
|
||||||
let row = await db.prepare('get', `SELECT COUNT(*) as total FROM "warnings" WHERE "userID" = ? AND "enabled" = 1`, [userID]);
|
let row = await db.prepare('get', `SELECT COUNT(*) as total FROM "warnings" WHERE "userID" = ? AND "enabled" = 1`, [userID]);
|
||||||
@@ -70,7 +88,6 @@ export async function getUserInfo(req: Request, res: Response) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const segmentsSummary = await dbGetSubmittedSegmentSummary(hashedUserID);
|
const segmentsSummary = await dbGetSubmittedSegmentSummary(hashedUserID);
|
||||||
if (segmentsSummary) {
|
if (segmentsSummary) {
|
||||||
res.send({
|
res.send({
|
||||||
@@ -78,7 +95,9 @@ export async function getUserInfo(req: Request, res: Response) {
|
|||||||
userName: await dbGetUsername(hashedUserID),
|
userName: await dbGetUsername(hashedUserID),
|
||||||
minutesSaved: segmentsSummary.minutesSaved,
|
minutesSaved: segmentsSummary.minutesSaved,
|
||||||
segmentCount: segmentsSummary.segmentCount,
|
segmentCount: segmentsSummary.segmentCount,
|
||||||
|
ignoredSegmentCount: await dbGetIgnoredSegmentCount(hashedUserID),
|
||||||
viewCount: await dbGetViewsForUser(hashedUserID),
|
viewCount: await dbGetViewsForUser(hashedUserID),
|
||||||
|
ignoredViewCount: await dbGetIgnoredViewsForUser(hashedUserID),
|
||||||
warnings: await dbGetWarningsForUser(hashedUserID),
|
warnings: await dbGetWarningsForUser(hashedUserID),
|
||||||
reputation: await getReputation(hashedUserID),
|
reputation: await getReputation(hashedUserID),
|
||||||
vip: await isUserVIP(hashedUserID),
|
vip: await isUserVIP(hashedUserID),
|
||||||
|
|||||||
@@ -54,8 +54,12 @@ describe('getUserInfo', () => {
|
|||||||
done('Returned incorrect minutesSaved "' + data.minutesSaved + '"');
|
done('Returned incorrect minutesSaved "' + data.minutesSaved + '"');
|
||||||
} else if (data.viewCount !== 30) {
|
} else if (data.viewCount !== 30) {
|
||||||
done('Returned incorrect viewCount "' + data.viewCount + '"');
|
done('Returned incorrect viewCount "' + data.viewCount + '"');
|
||||||
|
} else if (data.ignoredViewCount !== 20) {
|
||||||
|
done('Returned incorrect ignoredViewCount "' + data.ignoredViewCount + '"');
|
||||||
} else if (data.segmentCount !== 3) {
|
} else if (data.segmentCount !== 3) {
|
||||||
done('Returned incorrect segmentCount "' + data.segmentCount + '"');
|
done('Returned incorrect segmentCount "' + data.segmentCount + '"');
|
||||||
|
} else if (data.ignoredSegmentCount !== 2) {
|
||||||
|
done('Returned incorrect ignoredSegmentCount "' + data.ignoredSegmentCount + '"');
|
||||||
} else if (Math.abs(data.reputation - -0.928) > 0.001) {
|
} else if (Math.abs(data.reputation - -0.928) > 0.001) {
|
||||||
done('Returned incorrect reputation "' + data.reputation + '"');
|
done('Returned incorrect reputation "' + data.reputation + '"');
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user