253 lines
6.2 KiB
Plaintext
253 lines
6.2 KiB
Plaintext
// Simple Chat Simulation in Nyash
|
|
// Simulate P2P messaging without network components
|
|
|
|
print("=== Nyash Simple Chat Simulator ===")
|
|
print("")
|
|
|
|
// Initialize components
|
|
rand = new RandomBox()
|
|
time = new TimeBox()
|
|
messageHistory = new ArrayBox()
|
|
userList = new ArrayBox()
|
|
|
|
print("Chat system initialized!")
|
|
print("")
|
|
|
|
// Setup users
|
|
userList.push("Alice")
|
|
userList.push("Bob")
|
|
userList.push("Charlie")
|
|
userList.push("Diana")
|
|
userList.push("Eve")
|
|
|
|
print("=== Active Users ===")
|
|
i = 0
|
|
loop {
|
|
if i >= userList.length() {
|
|
break
|
|
}
|
|
user = userList.get(i)
|
|
userNum = i + 1
|
|
print(userNum + ". " + user)
|
|
i = i + 1
|
|
}
|
|
print("")
|
|
|
|
// Message templates for simulation
|
|
messageTemplates = new ArrayBox()
|
|
messageTemplates.push("Hello everyone!")
|
|
messageTemplates.push("How is everyone doing?")
|
|
messageTemplates.push("Just finished a great coding session!")
|
|
messageTemplates.push("Anyone working on interesting projects?")
|
|
messageTemplates.push("The weather is nice today!")
|
|
messageTemplates.push("Thanks for the help earlier!")
|
|
messageTemplates.push("Looking forward to our next meeting!")
|
|
messageTemplates.push("Great work on the latest release!")
|
|
messageTemplates.push("Happy to be part of this team!")
|
|
messageTemplates.push("Coffee break anyone?")
|
|
|
|
// Simulate chat conversation
|
|
print("=== Chat Conversation Simulation ===")
|
|
print("")
|
|
|
|
conversationLength = rand.randInt(8, 15)
|
|
i = 0
|
|
loop {
|
|
if i >= conversationLength {
|
|
break
|
|
}
|
|
|
|
// Select random user and message
|
|
sender = rand.choice(userList)
|
|
message = rand.choice(messageTemplates)
|
|
timestamp = time.format("%H:%M:%S")
|
|
|
|
// Create formatted message
|
|
formattedMessage = "[" + timestamp + "] " + sender + ": " + message
|
|
messageHistory.push(formattedMessage)
|
|
|
|
// Display message
|
|
print(formattedMessage)
|
|
|
|
i = i + 1
|
|
}
|
|
print("")
|
|
|
|
// Chat statistics
|
|
print("=== Chat Session Statistics ===")
|
|
print("Total messages: " + messageHistory.length())
|
|
print("Active users: " + userList.length())
|
|
print("Session duration: " + conversationLength + " message exchanges")
|
|
print("")
|
|
|
|
// Message analysis
|
|
print("=== Message Analysis ===")
|
|
|
|
// Count messages per user (simplified)
|
|
aliceCount = 0
|
|
bobCount = 0
|
|
charlieCount = 0
|
|
|
|
i = 0
|
|
loop {
|
|
if i >= messageHistory.length() {
|
|
break
|
|
}
|
|
message = messageHistory.get(i)
|
|
|
|
if message.contains("Alice") {
|
|
aliceCount = aliceCount + 1
|
|
}
|
|
if message.contains("Bob") {
|
|
bobCount = bobCount + 1
|
|
}
|
|
if message.contains("Charlie") {
|
|
charlieCount = charlieCount + 1
|
|
}
|
|
|
|
i = i + 1
|
|
}
|
|
|
|
print("Alice messages: " + aliceCount)
|
|
print("Bob messages: " + bobCount)
|
|
print("Charlie messages: " + charlieCount)
|
|
print("")
|
|
|
|
// Most active user
|
|
mostActiveUser = "Alice"
|
|
maxMessages = aliceCount
|
|
|
|
if bobCount > maxMessages {
|
|
mostActiveUser = "Bob"
|
|
maxMessages = bobCount
|
|
}
|
|
if charlieCount > maxMessages {
|
|
mostActiveUser = "Charlie"
|
|
maxMessages = charlieCount
|
|
}
|
|
|
|
print("Most active user: " + mostActiveUser + " (" + maxMessages + " messages)")
|
|
print("")
|
|
|
|
// Sentiment analysis (very basic)
|
|
print("=== Basic Sentiment Analysis ===")
|
|
positiveWords = new ArrayBox()
|
|
positiveWords.push("great")
|
|
positiveWords.push("thanks")
|
|
positiveWords.push("happy")
|
|
positiveWords.push("nice")
|
|
positiveWords.push("good")
|
|
|
|
positiveCount = 0
|
|
i = 0
|
|
loop {
|
|
if i >= messageHistory.length() {
|
|
break
|
|
}
|
|
message = messageHistory.get(i)
|
|
|
|
j = 0
|
|
loop {
|
|
if j >= positiveWords.length() {
|
|
break
|
|
}
|
|
word = positiveWords.get(j)
|
|
|
|
if message.contains(word) {
|
|
positiveCount = positiveCount + 1
|
|
}
|
|
|
|
j = j + 1
|
|
}
|
|
|
|
i = i + 1
|
|
}
|
|
|
|
print("Positive sentiment indicators: " + positiveCount)
|
|
if positiveCount >= 3 {
|
|
print("Overall mood: Positive :)")
|
|
}
|
|
if positiveCount < 3 {
|
|
print("Overall mood: Neutral :|")
|
|
}
|
|
print("")
|
|
|
|
// Save chat log
|
|
currentDate = time.format("%Y-%m-%d")
|
|
currentTime = time.format("%H-%M-%S")
|
|
filename = "chat_log_" + currentDate + "_" + currentTime + ".txt"
|
|
file = new FileBox(filename)
|
|
|
|
// Create chat log content
|
|
logContent = "=== Nyash Simple Chat Log ===\n"
|
|
logContent = logContent + "Date: " + currentDate + "\n"
|
|
logContent = logContent + "Session Start: " + currentTime + "\n"
|
|
logContent = logContent + "Total Messages: " + messageHistory.length() + "\n"
|
|
logContent = logContent + "Active Users: " + userList.length() + "\n"
|
|
logContent = logContent + "\n=== Message History ===\n"
|
|
|
|
i = 0
|
|
loop {
|
|
if i >= messageHistory.length() {
|
|
break
|
|
}
|
|
message = messageHistory.get(i)
|
|
logContent = logContent + message + "\n"
|
|
i = i + 1
|
|
}
|
|
|
|
logContent = logContent + "\n=== Session Statistics ===\n"
|
|
logContent = logContent + "Most Active User: " + mostActiveUser + "\n"
|
|
logContent = logContent + "Positive Sentiment Count: " + positiveCount + "\n"
|
|
logContent = logContent + "\nChat session completed successfully!\n"
|
|
|
|
// Save log
|
|
saveResult = file.write(logContent)
|
|
print("=== Chat Log Saved ===")
|
|
print("Saved to: " + filename)
|
|
print("Save result: " + saveResult)
|
|
print("")
|
|
|
|
// P2P Connection Simulation
|
|
print("=== P2P Connection Status ===")
|
|
connectionStatus = new ArrayBox()
|
|
connectionStatus.push("Connected")
|
|
connectionStatus.push("Reconnecting")
|
|
connectionStatus.push("Stable")
|
|
|
|
currentStatus = rand.choice(connectionStatus)
|
|
print("Network status: " + currentStatus)
|
|
print("Peers connected: " + userList.length())
|
|
|
|
latency = rand.randInt(10, 150)
|
|
print("Average latency: " + latency + "ms")
|
|
print("")
|
|
|
|
// Future features
|
|
print("=== Planned Features ===")
|
|
features = new ArrayBox()
|
|
features.push("File sharing")
|
|
features.push("Voice messages")
|
|
features.push("Message encryption")
|
|
features.push("Group channels")
|
|
features.push("Message history search")
|
|
features.push("User presence indicators")
|
|
|
|
plannedFeature = rand.choice(features)
|
|
print("Next feature to implement: " + plannedFeature)
|
|
print("")
|
|
|
|
// Random chat tip
|
|
tips = new ArrayBox()
|
|
tips.push("Keep messages clear and concise")
|
|
tips.push("Be respectful to all participants")
|
|
tips.push("Use @mentions for direct communication")
|
|
tips.push("Share resources and help others learn")
|
|
tips.push("Stay engaged but don't overwhelm the chat")
|
|
|
|
tip = rand.choice(tips)
|
|
print("Chat Tip: " + tip)
|
|
print("")
|
|
|
|
print("=== Chat Session Complete! ===")
|
|
print("Thanks for using Nyash Simple Chat!") |