Skip to content

Commit 6d2264b

Browse files
committed
Clean up sid (shout_id)/message_id handling
1 parent 0cef150 commit 6d2264b

3 files changed

Lines changed: 12 additions & 19 deletions

File tree

chat_server/blueprints/chat.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ async def get_live_conversation(
210210
build_message_json(raw_message=message_data[i], skin=model.skin)
211211
for i in range(len(message_data))
212212
]
213+
LOG.info(f"Returning live conversation: {conversation_data}")
213214

214215
return conversation_data
215216

chat_server/sio/handlers/tts.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ async def request_tts(sid, data):
5252
:param data: received tts request data
5353
"""
5454
try:
55-
request = GetTtsRequest(sid=sid, **data)
55+
request = GetTtsRequest(**data)
5656
matching_message = MongoDocumentsAPI.SHOUTS.get_item(item_id=request.message_id)
5757
if not matching_message:
5858
LOG.error("Failed to request TTS - matching message not found")

chat_server/sio/handlers/user_message.py

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2828

2929
from klatchat_utils.database_utils.mongo_utils.queries import mongo_queries
30-
from klatchat_utils.database_utils.mongo_utils.queries.dao.prompts import PromptStates
3130
from klatchat_utils.database_utils.mongo_utils.queries.wrapper import (
3231
MongoDocumentsAPI,
3332
)
@@ -38,30 +37,20 @@
3837
from chat_server.server_config import server_config
3938
from chat_server.utils.enums import UserRoles
4039
from chat_server.utils.services.popularity_counter import PopularityCounter
41-
from pydantic import ValidationError
4240
from neon_data_models.models.api.klat.socketio import UserMessage
4341

4442

4543
@sio.event
4644
async def user_message(sid, data):
4745
"""
4846
SIO event fired on new user message in chat
49-
:param sid: client session id
47+
:param sid: client session id (NOT shout_id which is in data['sid'])
5048
:param data: user message data
5149
"""
5250
LOG.debug(f"Received user message data: {data}")
53-
# TODO: Identify purpose of sid and data['sid'] (they do not appear to ever match)
5451
try:
55-
try:
56-
data.setdefault("sid", "") # TODO: This is patching something...
57-
message = UserMessage(**data)
58-
except ValidationError as e:
59-
LOG.error(
60-
e
61-
) # TODO: This should be an error after the primary sources of errors are fixed
62-
data.pop("user_id", None) # remove user_id if present
63-
data.pop("userID", None) # remove userID if present
64-
message = UserMessage(**data) # try again
52+
data.setdefault("sid", "") # TODO: This is patching clients that exclude `sid`
53+
message = UserMessage(**data)
6554
is_bot = message.is_bot == "1"
6655
is_proctor = message.username.startswith("proctor")
6756
LOG.info(f"{message.username} is_proctor={is_proctor}|is_bot={is_bot}")
@@ -95,7 +84,7 @@ async def user_message(sid, data):
9584
await emit_error(sids=[sid], message=msg)
9685
return
9786

98-
audio_path = f"{message.message_id}_audio.wav"
87+
audio_path = f"{message.sid}_audio.wav"
9988
try:
10089
if message.is_audio == "1":
10190
message_text = message.message_body.split(",")[-1]
@@ -127,10 +116,13 @@ async def user_message(sid, data):
127116

128117
mongo_queries.add_shout(data=new_shout_data)
129118
if not message.is_announcement and message.prompt_id is not None:
119+
LOG.info(
120+
f"Adding shout to prompt {message.prompt_id} from user {message.user_uid}"
121+
)
130122
is_ok = MongoDocumentsAPI.PROMPTS.add_shout_to_prompt(
131123
prompt_id=message.prompt_id,
132-
user_id=message.user_id,
133-
message_id=message.message_id,
124+
user_id=message.user_uid,
125+
message_id=message.sid,
134126
prompt_state=message.prompt_state,
135127
)
136128
if is_ok:
@@ -149,7 +141,7 @@ async def user_message(sid, data):
149141
for language, gender_mapping in message.message_tts.items():
150142
for gender, audio_data in gender_mapping.items():
151143
MongoDocumentsAPI.SHOUTS.save_tts_response(
152-
shout_id=message.message_id,
144+
shout_id=message.sid,
153145
audio_data=audio_data,
154146
lang=language,
155147
gender=gender,

0 commit comments

Comments
 (0)