feat: public chat is now emote-only
This commit is contained in:
@@ -10,10 +10,9 @@ import java.util.Properties;
|
||||
|
||||
public class MistralDirectAPI {
|
||||
|
||||
public static void main(String[] args) {
|
||||
String apiKey;
|
||||
private static String apiKey;
|
||||
|
||||
// Load API key from properties file
|
||||
static {
|
||||
try {
|
||||
Properties props = new Properties();
|
||||
FileInputStream input = new FileInputStream("config.properties");
|
||||
@@ -22,18 +21,22 @@ public class MistralDirectAPI {
|
||||
input.close();
|
||||
} catch (IOException e) {
|
||||
System.err.println("Could not load API key: " + e.getMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
String payload =
|
||||
public static String translateToEmojis(String message) {
|
||||
String payload = String.format(
|
||||
"""
|
||||
{
|
||||
"model": "mistral-medium",
|
||||
"messages": [
|
||||
{ "role": "user", "content": "Reverse turing test." }
|
||||
{ "role": "system", "content": "Please translate the following message to emojis only. Do not include any comments. End the emoji message with ;" },
|
||||
{ "role": "user", "content": "%s" }
|
||||
]
|
||||
}
|
||||
""";
|
||||
""",
|
||||
message
|
||||
);
|
||||
|
||||
HttpRequest request = HttpRequest.newBuilder()
|
||||
.uri(URI.create("https://api.mistral.ai/v1/chat/completions"))
|
||||
@@ -49,10 +52,26 @@ public class MistralDirectAPI {
|
||||
request,
|
||||
HttpResponse.BodyHandlers.ofString()
|
||||
);
|
||||
System.out.println("Response Code: " + response.statusCode());
|
||||
System.out.println("Response Body: " + response.body());
|
||||
String responseBody = response.body();
|
||||
return extractContent(responseBody);
|
||||
} catch (IOException | InterruptedException e) {
|
||||
System.err.println("Error occurred: " + e.getMessage());
|
||||
return message;
|
||||
}
|
||||
}
|
||||
|
||||
private static String extractContent(String jsonResponse) {
|
||||
// Find the content field in the response
|
||||
int contentIndex = jsonResponse.indexOf("\"content\":\"");
|
||||
if (contentIndex != -1) {
|
||||
int startIndex = contentIndex + "\"content\":\"".length();
|
||||
|
||||
int endIndex = jsonResponse.indexOf(";", startIndex);
|
||||
|
||||
if (endIndex != -1) {
|
||||
return jsonResponse.substring(startIndex, endIndex);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package clientserver.server;
|
||||
|
||||
import clientserver.client.Client;
|
||||
import clientserver.common.MistralDirectAPI;
|
||||
import java.net.DatagramSocket;
|
||||
|
||||
public class MessageProcessor {
|
||||
@@ -44,7 +45,7 @@ public class MessageProcessor {
|
||||
break;
|
||||
default:
|
||||
// Broadcast message to all clients
|
||||
broadcastMessage(message);
|
||||
broadcastMessageEmoji(message);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -113,6 +114,23 @@ public class MessageProcessor {
|
||||
}
|
||||
}
|
||||
|
||||
private void broadcastMessageEmoji(String message) {
|
||||
// Translate message to emojis
|
||||
String emojiMessage = MistralDirectAPI.translateToEmojis(message);
|
||||
String formattedMessage =
|
||||
"> " + client.getPseudo() + ": " + emojiMessage;
|
||||
|
||||
for (ClientHandler handler : Server.getAllClientHandlers()) {
|
||||
Client targetClient = handler.getClient();
|
||||
Server.sendMessage(
|
||||
clientHandlerSocket,
|
||||
formattedMessage,
|
||||
targetClient.getAddress(),
|
||||
targetClient.getPort()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private void handleMsgCommand() {
|
||||
Server.sendMessage(
|
||||
clientHandlerSocket,
|
||||
|
||||
Reference in New Issue
Block a user