feat: add analytics hooks and routes for moderation statistics

- Implemented `useAnalytics` hook for fetching and managing analytics data.
- Created `analyticsStore.ts` to handle database queries for hourly stats, topic trends, user leaderboard, and moderation stats.
- Added Express routes for analytics endpoints including overview, hourly stats, topic trends, user leaderboard, moderation stats, and top violators.
- Introduced a utility function `filterHits` for filtering specific terms in text.
This commit is contained in:
MythEclipse
2026-05-29 19:37:08 +07:00
parent fb09ac81c5
commit 8c3bb77984
15 changed files with 2157 additions and 17 deletions
+19
View File
@@ -0,0 +1,19 @@
function filterHits(text, hits) {
const lowerText = text.toLowerCase();
return hits.filter(hit => {
if (hit === "asu") {
const words = lowerText.match(/[\p{L}\p{N}_]+/gu) || [];
return words.some(w =>
w.includes("asu") &&
!["asus", "masuk", "termasuk", "dimasukkan", "memasukkan", "kasur", "asumsi", "asuransi", "asupan", "pasukan", "pasundan"].includes(w)
);
}
return true;
});
}
console.log(filterHits("Gua aja mau membeli asus", ["asu"])); // []
console.log(filterHits("asus asu", ["asu"])); // ["asu"]
console.log(filterHits("masuk", ["asu"])); // []
console.log(filterHits("asuuu", ["asu"])); // ["asu"]
console.log(filterHits("ngasu", ["asu"])); // ["asu"]