mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-27 01:48:33 +03:00
Add chapter category & action type to getUserStats.ts
This also fixes chapters not being counted in the segment counts.
This commit is contained in:
@@ -21,6 +21,7 @@ async function dbGetUserSummary(userID: HashedUserID, fetchCategoryStats: boolea
|
|||||||
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",
|
||||||
SUM(CASE WHEN "category" = 'filler' THEN 1 ELSE 0 END) as "categorySumFiller",
|
SUM(CASE WHEN "category" = 'filler' THEN 1 ELSE 0 END) as "categorySumFiller",
|
||||||
SUM(CASE WHEN "category" = 'exclusive_access' THEN 1 ELSE 0 END) as "categorySumExclusiveAccess",
|
SUM(CASE WHEN "category" = 'exclusive_access' THEN 1 ELSE 0 END) as "categorySumExclusiveAccess",
|
||||||
|
SUM(CASE WHEN "category" = 'chapter' THEN 1 ELSE 0 END) as "categorySumChapter",
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
if (fetchActionTypeStats) {
|
if (fetchActionTypeStats) {
|
||||||
@@ -29,15 +30,16 @@ async function dbGetUserSummary(userID: HashedUserID, fetchCategoryStats: boolea
|
|||||||
SUM(CASE WHEN "actionType" = 'mute' THEN 1 ELSE 0 END) as "typeSumMute",
|
SUM(CASE WHEN "actionType" = 'mute' THEN 1 ELSE 0 END) as "typeSumMute",
|
||||||
SUM(CASE WHEN "actionType" = 'full' THEN 1 ELSE 0 END) as "typeSumFull",
|
SUM(CASE WHEN "actionType" = 'full' THEN 1 ELSE 0 END) as "typeSumFull",
|
||||||
SUM(CASE WHEN "actionType" = 'poi' THEN 1 ELSE 0 END) as "typeSumPoi",
|
SUM(CASE WHEN "actionType" = 'poi' THEN 1 ELSE 0 END) as "typeSumPoi",
|
||||||
|
SUM(CASE WHEN "actionType" = 'chapter' THEN 1 ELSE 0 END) as "typeSumChapter",
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const row = await db.prepare("get", `
|
const row = await db.prepare("get", `
|
||||||
SELECT SUM(((CASE WHEN "endTime" - "startTime" > ? THEN ? ELSE "endTime" - "startTime" END) / 60) * "views") as "minutesSaved",
|
SELECT SUM(CASE WHEN "actionType" = 'chapter' THEN 0 ELSE ((CASE WHEN "endTime" - "startTime" > ? THEN ? ELSE "endTime" - "startTime" END) / 60) * "views" END) as "minutesSaved",
|
||||||
${additionalQuery}
|
${additionalQuery}
|
||||||
count(*) as "segmentCount"
|
count(*) as "segmentCount"
|
||||||
FROM "sponsorTimes"
|
FROM "sponsorTimes"
|
||||||
WHERE "userID" = ? AND "votes" > -2 AND "shadowHidden" != 1 AND "actionType" != 'chapter'`,
|
WHERE "userID" = ? AND "votes" > -2 AND "shadowHidden" != 1`,
|
||||||
[maxRewardTimePerSegmentInSeconds, maxRewardTimePerSegmentInSeconds, userID]);
|
[maxRewardTimePerSegmentInSeconds, maxRewardTimePerSegmentInSeconds, userID]);
|
||||||
const source = (row.minutesSaved != null) ? row : {};
|
const source = (row.minutesSaved != null) ? row : {};
|
||||||
const handler = { get: (target: Record<string, any>, name: string) => target?.[name] || 0 };
|
const handler = { get: (target: Record<string, any>, name: string) => target?.[name] || 0 };
|
||||||
@@ -60,6 +62,7 @@ async function dbGetUserSummary(userID: HashedUserID, fetchCategoryStats: boolea
|
|||||||
poi_highlight: proxy.categorySumHighlight,
|
poi_highlight: proxy.categorySumHighlight,
|
||||||
filler: proxy.categorySumFiller,
|
filler: proxy.categorySumFiller,
|
||||||
exclusive_access: proxy.categorySumExclusiveAccess,
|
exclusive_access: proxy.categorySumExclusiveAccess,
|
||||||
|
chapter: proxy.categorySumChapter,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (fetchActionTypeStats) {
|
if (fetchActionTypeStats) {
|
||||||
@@ -67,7 +70,8 @@ async function dbGetUserSummary(userID: HashedUserID, fetchCategoryStats: boolea
|
|||||||
skip: proxy.typeSumSkip,
|
skip: proxy.typeSumSkip,
|
||||||
mute: proxy.typeSumMute,
|
mute: proxy.typeSumMute,
|
||||||
full: proxy.typeSumFull,
|
full: proxy.typeSumFull,
|
||||||
poi: proxy.typeSumPoi
|
poi: proxy.typeSumPoi,
|
||||||
|
chapter: proxy.typeSumChapter,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
Reference in New Issue
Block a user