Skip to content

Commit 99434c2

Browse files
committed
Ensure MVR-xchange protocol data compliance
1 parent eb4675c commit 99434c2

File tree

4 files changed

+15
-4
lines changed

4 files changed

+15
-4
lines changed

mvrxchange/mvrx_message.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,9 @@ def craft_packet(message=None, length=None, buffer=None, msg_type=0):
9393
request_message = {
9494
"Type": "MVR_REQUEST",
9595
"FileUUID": "",
96+
"StationUUID": "",
9697
"FromStationUUID": [],
98+
"FromStationsUUID": [],
9799
}
98100

99101
request_message_ret = {"Type": "MVR_REQUEST_RET", "OK": False, "Message": ""}
@@ -110,6 +112,7 @@ def craft_packet(message=None, length=None, buffer=None, msg_type=0):
110112

111113
leave_message = {
112114
"Type": "MVR_LEAVE",
115+
"StationUUID": "",
113116
"FromStationUUID": "",
114117
}
115118

@@ -127,7 +130,7 @@ def craft_packet(message=None, length=None, buffer=None, msg_type=0):
127130

128131
@staticmethod
129132
def create_message(
130-
message, commits=None, uuid=None, file_uuid=None, ok=None, nok_reason=None
133+
message, commits=None, uuid=None, file_uuid=None, ok=None, nok_reason=None, app_uuid = None,
131134
):
132135
if message == "MVR_JOIN_RET":
133136
response = mvrx_message.join_message_ret.copy()
@@ -158,10 +161,15 @@ def create_message(
158161
elif message == "MVR_REQUEST":
159162
response = mvrx_message.request_message.copy()
160163
response["FileUUID"] = file_uuid
164+
response["StationUUID"] = app_uuid
161165
response[
162166
"FromStationUUID"
163167
] = [] # the response seems to stay in memory, reset it
164168
response["FromStationUUID"].append(uuid)
169+
response[
170+
"FromStationsUUID"
171+
] = [] # the response seems to stay in memory, reset it
172+
response["FromStationsUUID"].append(uuid)
165173
return response
166174
elif message == "MVR_JOIN":
167175
response = mvrx_message.join_message.copy()
@@ -172,6 +180,7 @@ def create_message(
172180
return response
173181
elif message == "MVR_LEAVE":
174182
response = mvrx_message.leave_message.copy()
183+
response["StationUUID"] = uuid
175184
response["FromStationUUID"] = uuid
176185
return response
177186
elif message == "MVR_REQUEST_RET":

mvrxchange/mvrx_tcp_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ def request_file(self, commit, path):
100100
self.send(
101101
mvrx_message.craft_packet(
102102
mvrx_message.create_message(
103-
"MVR_REQUEST", uuid=commit.station_uuid, file_uuid=commit_uuid
103+
"MVR_REQUEST", uuid=commit.station_uuid, file_uuid=commit_uuid, app_uuid = self.application_uuid
104104
)
105105
)
106106
)

mvrxchange/mvrx_tcp_server.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,9 @@ def process_json_message(self, json_data, data):
180180
mvrx_message.create_message("MVR_LEAVE_RET", uuid=self.uuid)
181181
)
182182
)
183-
dmx.toggle_join_MVR_Client(json_data["FromStationUUID"], False)
183+
station_uuid = json_data.get("StationUUID") or json_data.get("FromStationUUID")
184+
if station_uuid:
185+
dmx.toggle_join_MVR_Client(station_uuid, False)
184186
# NOTE: this is sending the JOIN/LEAVE 2x, because the subscribe
185187
# event will trigger client side sending
186188

mvrxchange/mvrx_ws_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ def request_file(self, commit, path):
141141
commit_uuid = commit.commit_uuid
142142
self.send(
143143
mvrx_message.create_message(
144-
"MVR_REQUEST", uuid=commit.station_uuid, file_uuid=commit_uuid
144+
"MVR_REQUEST", uuid=commit.station_uuid, file_uuid=commit_uuid, app_uuid=self.application_uuid
145145
)
146146
)
147147

0 commit comments

Comments
 (0)