···
31
31
emojiStats?: EmojiStat[];
32
32
}
33
33
34
34
-
const DEFAULT_API_URL = 'https://bsky.social/xrpc';
35
35
-
const MAX_ENTRIES = 50;
36
36
-
37
34
// Define approved emojis list - keep in sync with stats route
38
35
const APPROVED_EMOJIS = [
39
36
'๐ฝ', '๐งป', '๐ฉ', '๐จ', '๐พ', '๐งผ', '๐ช ', '๐ป', '๐ฉธ', '๐ง', '๐ฆ', '๐',
40
37
'๐ฃ', '๐คข', '๐คฎ', '๐ฅด', '๐ฎโ๐จ', '๐ณ', '๐ต', '๐พ', '๐ฆ', '๐ฑ', '๐', '๐ญ',
41
38
'1๏ธโฃ', '2๏ธโฃ', '๐ก', '๐ค'
42
39
];
40
40
+
41
41
+
const DEFAULT_API_URL = 'https://bsky.social/xrpc';
42
42
+
const MAX_ENTRIES = 50;
43
43
const FLUSHING_STATUS_NSID = 'im.flushing.right.now';
44
44
45
45
// Supabase client - using environment variables
···
9
9
const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL || '';
10
10
const supabaseKey = process.env.SUPABASE_SERVICE_ROLE_KEY || '';
11
11
12
12
+
// Define approved emojis list - shared across the route
13
13
+
const APPROVED_EMOJIS = [
14
14
+
'๐ฝ', '๐งป', '๐ฉ', '๐จ', '๐พ', '๐งผ', '๐ช ', '๐ป', '๐ฉธ', '๐ง', '๐ฆ', '๐',
15
15
+
'๐ฃ', '๐คข', '๐คฎ', '๐ฅด', '๐ฎโ๐จ', '๐ณ', '๐ต', '๐พ', '๐ฆ', '๐ฑ', '๐', '๐ญ',
16
16
+
'1๏ธโฃ', '2๏ธโฃ', '๐ก', '๐ค'
17
17
+
];
18
18
+
12
19
export async function GET(request: NextRequest) {
13
20
try {
14
21
// Define the plumber's DID - this is the official plumber account DID
···
34
41
count: number;
35
42
};
36
43
37
37
-
// Define approved emojis list
38
38
-
const APPROVED_EMOJIS = [
39
39
-
'๐ฝ', '๐งป', '๐ฉ', '๐จ', '๐พ', '๐งผ', '๐ช ', '๐ป', '๐ฉธ', '๐ง', '๐ฆ', '๐',
40
40
-
'๐ฃ', '๐คข', '๐คฎ', '๐ฅด', '๐ฎโ๐จ', '๐ณ', '๐ต', '๐พ', '๐ฆ', '๐ฑ', '๐', '๐ญ',
41
41
-
'1๏ธโฃ', '2๏ธโฃ', '๐ก', '๐ค'
42
42
-
];
44
44
+
// Use the approved emojis list defined at the top of the file
43
45
44
46
// If we have Supabase credentials, fetch stats
45
47
if (supabaseUrl && supabaseKey) {