RMC chatbot version 1 implemented
This commit is contained in:
91
fix_restart.py
Normal file
91
fix_restart.py
Normal file
@@ -0,0 +1,91 @@
|
||||
with open("src/main/java/com/example/whatsappautomation/service/ChatbotService.java", "r") as f:
|
||||
content = f.read()
|
||||
|
||||
# 1. Modify sendInteractiveButtons to fetch state and append restart text
|
||||
old_method_start = """ private void sendInteractiveButtons(String bodyText, String[] ids, String[] titles) {
|
||||
String phoneNumberId = currentPhoneId.get();
|
||||
String recipientPhoneNumber = currentFrom.get();"""
|
||||
|
||||
new_method_start = """ private void sendInteractiveButtons(String bodyText, String[] ids, String[] titles) {
|
||||
String phoneNumberId = currentPhoneId.get();
|
||||
String recipientPhoneNumber = currentFrom.get();
|
||||
|
||||
UserState uState = userStateRepository.findById(recipientPhoneNumber).orElse(null);
|
||||
if (uState != null && !"MAIN_MENU".equals(uState.getState()) && !"LANGUAGE_SELECTION".equals(uState.getState())) {
|
||||
String restartText = "en".equals(uState.getLanguagePreference())
|
||||
? "\\n\\n(Press 0 to restart the conversation)"
|
||||
: "\\n\\n(உரையாடலை மீண்டும் தொடங்க 0 ஐ அழுத்தவும்)";
|
||||
bodyText += restartText;
|
||||
}"""
|
||||
|
||||
content = content.replace(old_method_start, new_method_start)
|
||||
|
||||
# 2. Modify sendPaginatedButtons to not append restart text itself
|
||||
old_paginated = """ private void sendPaginatedButtons(UserState state, String bodyText, String[] ids, String[] titles) {
|
||||
int totalOptions = ids.length;
|
||||
String restartText = "en".equals(state.getLanguagePreference())
|
||||
? "\\n\\n(Send 0 to go back to the main menu / Restart the conversation)"
|
||||
: "\\n\\n(உரையாடலை மீண்டும் தொடங்க 0 ஐ அழுத்தவும்)";
|
||||
|
||||
// Loop and send chunks of up to 3 buttons
|
||||
for (int i = 0; i < totalOptions; i += 3) {
|
||||
int end = Math.min(i + 3, totalOptions);
|
||||
int count = end - i;
|
||||
String[] chunkIds = new String[count];
|
||||
String[] chunkTitles = new String[count];
|
||||
|
||||
for (int j = 0; j < count; j++) {
|
||||
chunkIds[j] = ids[i + j];
|
||||
chunkTitles[j] = titles[i + j];
|
||||
}
|
||||
|
||||
String chunkBodyText = (i == 0) ? bodyText : ( "en".equals(state.getLanguagePreference()) ? "More options:" : "மேலும் விருப்பங்கள்:" );
|
||||
if (end == totalOptions) {
|
||||
chunkBodyText += restartText;
|
||||
}
|
||||
|
||||
sendInteractiveButtons(chunkBodyText, chunkIds, chunkTitles);
|
||||
}
|
||||
}"""
|
||||
|
||||
new_paginated = """ private void sendPaginatedButtons(UserState state, String bodyText, String[] ids, String[] titles) {
|
||||
int totalOptions = ids.length;
|
||||
|
||||
// Loop and send chunks of up to 3 buttons
|
||||
for (int i = 0; i < totalOptions; i += 3) {
|
||||
int end = Math.min(i + 3, totalOptions);
|
||||
int count = end - i;
|
||||
String[] chunkIds = new String[count];
|
||||
String[] chunkTitles = new String[count];
|
||||
|
||||
for (int j = 0; j < count; j++) {
|
||||
chunkIds[j] = ids[i + j];
|
||||
chunkTitles[j] = titles[i + j];
|
||||
}
|
||||
|
||||
String chunkBodyText = (i == 0) ? bodyText : ( "en".equals(state.getLanguagePreference()) ? "More options:" : "மேலும் விருப்பங்கள்:" );
|
||||
|
||||
sendInteractiveButtons(chunkBodyText, chunkIds, chunkTitles);
|
||||
}
|
||||
}"""
|
||||
|
||||
content = content.replace(old_paginated, new_paginated)
|
||||
|
||||
# 3. Change processMessage to say "Press 0 to restart the conversation" instead of "(Send 0 to go back to the main menu / Restart the conversation)" for text responses
|
||||
old_process_text = """ if (response != null && !response.isEmpty() && !response.startsWith("INTERACTIVE:") && !userState.getState().equals("MAIN_MENU") && !userState.getState().equals("LANGUAGE_SELECTION")) {
|
||||
response += "\\n\\n(Send 0 to go back to the main menu / Restart the conversation)";
|
||||
}"""
|
||||
|
||||
new_process_text = """ if (response != null && !response.isEmpty() && !response.startsWith("INTERACTIVE:") && !userState.getState().equals("MAIN_MENU") && !userState.getState().equals("LANGUAGE_SELECTION")) {
|
||||
String rt = "en".equals(userState.getLanguagePreference())
|
||||
? "\\n\\n(Press 0 to restart the conversation)"
|
||||
: "\\n\\n(உரையாடலை மீண்டும் தொடங்க 0 ஐ அழுத்தவும்)";
|
||||
response += rt;
|
||||
}"""
|
||||
|
||||
content = content.replace(old_process_text, new_process_text)
|
||||
|
||||
with open("src/main/java/com/example/whatsappautomation/service/ChatbotService.java", "w") as f:
|
||||
f.write(content)
|
||||
|
||||
print("Replacement complete.")
|
||||
Reference in New Issue
Block a user