Monorepo for Aesthetic.Computer
aesthetic.computer
1#!/usr/bin/env node
2// Manually trigger handle refresh on chat servers
3// Usage: node refresh-chat-handles.mjs [chat-system|chat-clock|chat-sotce]
4
5import dotenv from "dotenv";
6import fetch from "node-fetch";
7
8dotenv.config({ path: "chat.env" });
9
10const instance = process.argv[2] || "chat-clock";
11const dev = process.env.NODE_ENV === "development";
12
13const servers = {
14 "chat-system": dev ? "https://localhost:8083/log" : "https://chat-system.aesthetic.computer/log",
15 "chat-clock": dev ? "https://localhost:8085/log" : "https://chat-clock.aesthetic.computer/log",
16 "chat-sotce": dev ? "https://localhost:8084/log" : "https://chat.sotce.net/log",
17};
18
19const url = servers[instance];
20
21if (!url) {
22 console.error(`❌ Invalid instance: ${instance}`);
23 console.log("Valid instances: chat-system, chat-clock, chat-sotce");
24 process.exit(1);
25}
26
27// Send a dummy log message to trigger the server
28const msg = {
29 from: "refresh-script",
30 text: `🔄 Handle refresh triggered for ${instance}`,
31 when: new Date(),
32 users: [],
33 action: "system:refresh"
34};
35
36console.log(`🔄 Triggering handle refresh for ${instance}...`);
37console.log(`📡 URL: ${url}`);
38
39try {
40 const response = await fetch(url, {
41 method: "POST",
42 headers: {
43 "Content-Type": "application/json",
44 "Authorization": `Bearer ${process.env.LOGGER_KEY}`,
45 },
46 body: JSON.stringify(msg),
47 });
48
49 if (response.ok) {
50 const result = await response.json();
51 console.log(`✅ Success:`, result);
52 } else {
53 console.error(`❌ Failed: ${response.status} ${response.statusText}`);
54 const text = await response.text();
55 console.error(text);
56 }
57} catch (error) {
58 console.error(`❌ Error:`, error.message);
59}