mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-08 20:47:02 +03:00
Rename user stats parameters
This commit is contained in:
@@ -7,9 +7,9 @@ import { Logger } from "../utils/logger";
|
|||||||
type nestedObj = Record<string, Record<string, number>>;
|
type nestedObj = Record<string, Record<string, number>>;
|
||||||
const maxRewardTimePerSegmentInSeconds = config.maxRewardTimePerSegmentInSeconds ?? 86400;
|
const maxRewardTimePerSegmentInSeconds = config.maxRewardTimePerSegmentInSeconds ?? 86400;
|
||||||
|
|
||||||
async function dbGetUserSummary(userID: HashedUserID, categoryStats: boolean, typeStats: boolean) {
|
async function dbGetUserSummary(userID: HashedUserID, fetchCategoryStats: boolean, fetchActionTypeStats: boolean) {
|
||||||
let additionalQuery = "";
|
let additionalQuery = "";
|
||||||
if (categoryStats) {
|
if (fetchCategoryStats) {
|
||||||
additionalQuery += `
|
additionalQuery += `
|
||||||
SUM(CASE WHEN "category" = 'sponsor' THEN 1 ELSE 0 END) as "categorySumSponsor",
|
SUM(CASE WHEN "category" = 'sponsor' THEN 1 ELSE 0 END) as "categorySumSponsor",
|
||||||
SUM(CASE WHEN "category" = 'intro' THEN 1 ELSE 0 END) as "categorySumIntro",
|
SUM(CASE WHEN "category" = 'intro' THEN 1 ELSE 0 END) as "categorySumIntro",
|
||||||
@@ -20,7 +20,7 @@ async function dbGetUserSummary(userID: HashedUserID, categoryStats: boolean, ty
|
|||||||
SUM(CASE WHEN "category" = 'preview' THEN 1 ELSE 0 END) as "categorySumPreview",
|
SUM(CASE WHEN "category" = 'preview' THEN 1 ELSE 0 END) as "categorySumPreview",
|
||||||
SUM(CASE WHEN "category" = 'poi_highlight' THEN 1 ELSE 0 END) as "categorySumHighlight",`;
|
SUM(CASE WHEN "category" = 'poi_highlight' THEN 1 ELSE 0 END) as "categorySumHighlight",`;
|
||||||
}
|
}
|
||||||
if (typeStats) {
|
if (fetchActionTypeStats) {
|
||||||
additionalQuery += `
|
additionalQuery += `
|
||||||
SUM(CASE WHEN "actionType" = 'skip' THEN 1 ELSE 0 END) as "typeSumSkip",
|
SUM(CASE WHEN "actionType" = 'skip' THEN 1 ELSE 0 END) as "typeSumSkip",
|
||||||
SUM(CASE WHEN "actionType" = 'mute' THEN 1 ELSE 0 END) as "typeSumMute",`;
|
SUM(CASE WHEN "actionType" = 'mute' THEN 1 ELSE 0 END) as "typeSumMute",`;
|
||||||
@@ -42,7 +42,7 @@ async function dbGetUserSummary(userID: HashedUserID, categoryStats: boolean, ty
|
|||||||
minutesSaved: proxy.minutesSaved,
|
minutesSaved: proxy.minutesSaved,
|
||||||
segmentCount: proxy.segmentCount,
|
segmentCount: proxy.segmentCount,
|
||||||
};
|
};
|
||||||
if (categoryStats) {
|
if (fetchCategoryStats) {
|
||||||
result.categoryCount = {
|
result.categoryCount = {
|
||||||
sponsor: proxy.categorySumSponsor,
|
sponsor: proxy.categorySumSponsor,
|
||||||
intro: proxy.categorySumIntro,
|
intro: proxy.categorySumIntro,
|
||||||
@@ -54,7 +54,7 @@ async function dbGetUserSummary(userID: HashedUserID, categoryStats: boolean, ty
|
|||||||
poi_highlight: proxy.categorySumHighlight,
|
poi_highlight: proxy.categorySumHighlight,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (typeStats) {
|
if (fetchActionTypeStats) {
|
||||||
result.actionTypeCount = {
|
result.actionTypeCount = {
|
||||||
skip: proxy.typeSumSkip,
|
skip: proxy.typeSumSkip,
|
||||||
mute: proxy.typeSumMute,
|
mute: proxy.typeSumMute,
|
||||||
@@ -79,14 +79,14 @@ async function dbGetUsername(userID: HashedUserID) {
|
|||||||
export async function getUserStats(req: Request, res: Response): Promise<Response> {
|
export async function getUserStats(req: Request, res: Response): Promise<Response> {
|
||||||
const userID = req.query.userID as UserID;
|
const userID = req.query.userID as UserID;
|
||||||
const hashedUserID: HashedUserID = userID ? getHash(userID) : req.query.publicUserID as HashedUserID;
|
const hashedUserID: HashedUserID = userID ? getHash(userID) : req.query.publicUserID as HashedUserID;
|
||||||
const categoryStats = req.query.categoryStats == "true";
|
const fetchCategoryStats = req.query.fetchCategoryStats == "true";
|
||||||
const typeStats = req.query.typeStats == "true";
|
const fetchActionTypeStats = req.query.fetchActionTypeStats == "true";
|
||||||
|
|
||||||
if (hashedUserID == undefined) {
|
if (hashedUserID == undefined) {
|
||||||
//invalid request
|
//invalid request
|
||||||
return res.status(400).send("Invalid userID or publicUserID parameter");
|
return res.status(400).send("Invalid userID or publicUserID parameter");
|
||||||
}
|
}
|
||||||
const segmentSummary = await dbGetUserSummary(hashedUserID, categoryStats, typeStats);
|
const segmentSummary = await dbGetUserSummary(hashedUserID, fetchCategoryStats, fetchActionTypeStats);
|
||||||
const responseObj = {
|
const responseObj = {
|
||||||
userID: hashedUserID,
|
userID: hashedUserID,
|
||||||
userName: await dbGetUsername(hashedUserID),
|
userName: await dbGetUsername(hashedUserID),
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ describe("getUserStats", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("Should be able to get all user info", (done: Done) => {
|
it("Should be able to get all user info", (done: Done) => {
|
||||||
fetch(`${getbaseURL()}/api/userStats?userID=getuserstats_user_01&categoryStats=true&typeStats=true`)
|
fetch(`${getbaseURL()}/api/userStats?userID=getuserstats_user_01&fetchCategoryStats=true&fetchActionTypeStats=true`)
|
||||||
.then(async res => {
|
.then(async res => {
|
||||||
assert.strictEqual(res.status, 200);
|
assert.strictEqual(res.status, 200);
|
||||||
const expected = {
|
const expected = {
|
||||||
@@ -109,7 +109,7 @@ describe("getUserStats", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("Should get parts of extra stats if not requested", (done: Done) => {
|
it("Should get parts of extra stats if not requested", (done: Done) => {
|
||||||
fetch(`${getbaseURL()}/api/userStats?userID=getuserstats_user_01&typeStats=true`)
|
fetch(`${getbaseURL()}/api/userStats?userID=getuserstats_user_01&fetchActionTypeStats=true`)
|
||||||
.then(async res => {
|
.then(async res => {
|
||||||
assert.strictEqual(res.status, 200);
|
assert.strictEqual(res.status, 200);
|
||||||
const data = await res.json();
|
const data = await res.json();
|
||||||
|
|||||||
Reference in New Issue
Block a user