The weeb for the next gen discord boat - Wamellow
wamellow.com
bot
discord
1export interface AnalyticsResponse {
2 page: string;
3 pageviews: number;
4}
5
6export interface AnalyticsError {
7 error: string;
8}
9
10export async function getPageAnalytics(page: string): Promise<{ results: AnalyticsResponse[]; } | AnalyticsError | undefined> {
11
12 const params = {
13 site_id: process.env.PLAUSIBLE_DOMAIN as string,
14 period: "custom",
15 date: "2021-01-01,2026-03-02",
16 property: "event:page",
17 filters: "event:page==" + page,
18 metrics: "pageviews"
19 };
20
21 const res = await fetch(`${process.env.PLAUSIBLE_API}/v1/stats/breakdown?${objectToQueryString(params)}`, {
22 headers: { Authorization: "Bearer " + process.env.PLAUSIBLE_API_KEY },
23 next: { revalidate: 60 }
24 });
25
26 return res.json();
27}
28
29function objectToQueryString(obj: Record<string, string>): string {
30 return Object.entries(obj).map(([key, value]) => `${key}=${value}`).join("&");
31}