This commit is contained in:
Sewmina 2025-06-08 14:52:46 +00:00
parent 8cbab9894c
commit 3c64ea8a2c
3 changed files with 274 additions and 6 deletions

View File

@ -11,14 +11,28 @@ export interface ChatMessage {
timestamp: number;
}
// Initialize chat history file if it doesn't exist
function initializeChatHistory(): void {
if (!fs.existsSync(CHAT_HISTORY_FILE)) {
fs.writeFileSync(CHAT_HISTORY_FILE, JSON.stringify([], null, 2));
}
}
export function saveMessage(message: ChatMessage): void {
try {
initializeChatHistory();
let messages: ChatMessage[] = [];
// Read existing messages if file exists
if (fs.existsSync(CHAT_HISTORY_FILE)) {
const fileContent = fs.readFileSync(CHAT_HISTORY_FILE, 'utf-8');
// Read existing messages
const fileContent = fs.readFileSync(CHAT_HISTORY_FILE, 'utf-8');
try {
messages = JSON.parse(fileContent);
if (!Array.isArray(messages)) {
messages = [];
}
} catch (parseError) {
console.error('Error parsing chat history file:', parseError);
messages = [];
}
// Add new message
@ -38,13 +52,20 @@ export function saveMessage(message: ChatMessage): void {
export function loadRecentMessages(): ChatMessage[] {
try {
if (fs.existsSync(CHAT_HISTORY_FILE)) {
const fileContent = fs.readFileSync(CHAT_HISTORY_FILE, 'utf-8');
initializeChatHistory();
const fileContent = fs.readFileSync(CHAT_HISTORY_FILE, 'utf-8');
try {
const messages: ChatMessage[] = JSON.parse(fileContent);
if (!Array.isArray(messages)) {
return [];
}
return messages.slice(-MAX_MESSAGES);
} catch (parseError) {
console.error('Error parsing chat history file:', parseError);
return [];
}
} catch (error) {
console.error('Error loading chat messages:', error);
return [];
}
return [];
}

236
chat_history.json Normal file
View File

@ -0,0 +1,236 @@
[
{
"id": "1748834522620",
"user": "did:privy:cm8u2diob01cu14c92y4yq5pf",
"message": "hello",
"timestamp": 1748834522620
},
{
"id": "1748834575328",
"user": "did:privy:cm8u2diob01cu14c92y4yq5pf",
"message": "🤙",
"timestamp": 1748834575328
},
{
"id": "1748834624738",
"user": "did:privy:cm8u263b100nr8poz1raucxf1",
"message": "Lets goo!",
"timestamp": 1748834624738
},
{
"id": "1748834629682",
"user": "did:privy:cm8u263b100nr8poz1raucxf1",
"message": "Lets play",
"timestamp": 1748834629682
},
{
"id": "1748857523946",
"user": "did:privy:cm9a473ks010gjj0ll7wn72ss",
"message": "Hey guys",
"timestamp": 1748857523946
},
{
"id": "1748857555701",
"user": "did:privy:cm9a473ks010gjj0ll7wn72ss",
"message": "Who wants a game",
"timestamp": 1748857555701
},
{
"id": "1748860471361",
"user": "did:privy:cm8u2diob01cu14c92y4yq5pf",
"message": "Not me",
"timestamp": 1748860471362
},
{
"id": "1748862050959",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "Hello GM",
"timestamp": 1748862050959
},
{
"id": "1748862058136",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "This Looks amazing",
"timestamp": 1748862058136
},
{
"id": "1748881894335",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "Hello",
"timestamp": 1748881894335
},
{
"id": "1748882200482",
"user": "did:privy:cm8u263b100nr8poz1raucxf1",
"message": "Hey",
"timestamp": 1748882200482
},
{
"id": "1748884741464",
"user": "did:privy:cm9k9l0qj0230l80meuah0kqm",
"message": "Hi Guys how are you ?",
"timestamp": 1748884741464
},
{
"id": "1748884856007",
"user": "did:privy:cm8u263b100nr8poz1raucxf1",
"message": "Doing good, How r u?",
"timestamp": 1748884856007
},
{
"id": "1748884900958",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "Sup Antonio",
"timestamp": 1748884900958
},
{
"id": "1748898557688",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "Can we share links here? t.me/duelfidotio",
"timestamp": 1748898557688
},
{
"id": "1748898564241",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "ok good",
"timestamp": 1748898564241
},
{
"id": "1748904127441",
"user": "did:privy:cm9fv6jtt02akjm0n8m8c4hhw",
"message": "niggers",
"timestamp": 1748904127441
},
{
"id": "1748935380736",
"user": "did:privy:cm9jye9rp0310lh0n995ggqyr",
"message": "It looks great!👌",
"timestamp": 1748935380736
},
{
"id": "1748943845291",
"user": "did:privy:cmbgbydte00bnle0nr5qlflux",
"message": "Looks good",
"timestamp": 1748943845291
},
{
"id": "1748959696416",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "New users stay in the Website if you create a game",
"timestamp": 1748959696416
},
{
"id": "1748959720646",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "The Game will Start automatically once another Person joins",
"timestamp": 1748959720646
},
{
"id": "1748959918935",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "GG!",
"timestamp": 1748959918935
},
{
"id": "1748963014469",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "To all new members.",
"timestamp": 1748963014469
},
{
"id": "1748963028889",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "Dont forget to Join our Telegram Group. Link in the Footer of the Website.",
"timestamp": 1748963028889
},
{
"id": "1748966106232",
"user": "did:privy:cmb8738dl016kju0l16g3erak",
"message": "Lets go wont my first few games! This is addictive ngl",
"timestamp": 1748966106232
},
{
"id": "1748966111724",
"user": "did:privy:cmb8738dl016kju0l16g3erak",
"message": "Won**",
"timestamp": 1748966111724
},
{
"id": "1748966474640",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "Haha congrats",
"timestamp": 1748966474640
},
{
"id": "1748966720207",
"user": "did:privy:cmbglcup300nhlb0mncu9td6f",
"message": "GG BK",
"timestamp": 1748966720207
},
{
"id": "1748966731039",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "GG artigow",
"timestamp": 1748966731039
},
{
"id": "1749052986827",
"user": "did:privy:cmbhxxvrj006hjp0n3h8g6qtf",
"message": "gg",
"timestamp": 1749052986827
},
{
"id": "1749053880297",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "GG",
"timestamp": 1749053880297
},
{
"id": "1749169644330",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "Iadobi GG",
"timestamp": 1749169644330
},
{
"id": "1749169650045",
"user": "did:privy:cmbhxxvrj006hjp0n3h8g6qtf",
"message": "gg",
"timestamp": 1749169650045
},
{
"id": "1749169651634",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "rematch",
"timestamp": 1749169651634
},
{
"id": "1749169655696",
"user": "did:privy:cmbhxxvrj006hjp0n3h8g6qtf",
"message": "hard game",
"timestamp": 1749169655696
},
{
"id": "1749169659315",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "0.02 now comeone haha",
"timestamp": 1749169659315
},
{
"id": "1749169663853",
"user": "did:privy:cm9a3f19v00iri90mag51e0zk",
"message": "youre really good",
"timestamp": 1749169663853
},
{
"id": "1749169719087",
"user": "did:privy:cmbhxxvrj006hjp0n3h8g6qtf",
"message": "for start this match, i need ctrl + f5",
"timestamp": 1749169719087
},
{
"id": "1749169728542",
"user": "did:privy:cmbhxxvrj006hjp0n3h8g6qtf",
"message": "idk why, but loading freeze",
"timestamp": 1749169728542
}
]

11
start-server.sh Executable file
View File

@ -0,0 +1,11 @@
#!/bin/bash
# Load NVM
export NVM_DIR="/root/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# Navigate to the project directory
cd /root/duelfi/duelfi_socket_chat
# Run the server
npm run start