MCPcopy Create free account
hub / github.com/bugy/script-server / on_message

Method on_message

src/web/script_config_socket.py:65–112  ·  view source on GitHub ↗
(self, text)

Source from the content-addressed store, hash-verified

63
64 @gen.coroutine
65 def on_message(self, text):
66 try:
67 message = json.loads(text)
68
69 type = message.get('event')
70 data = message.get('data')
71
72 if type == 'parameterValue':
73 param = data.get('parameter')
74 set_parameter_func = functools.partial(
75 self._set_parameter_value,
76 param,
77 data.get('value'),
78 data.get('clientStateVersion'))
79
80 def handle_future_exception(result):
81 if result.exception():
82 LOGGER.exception(f'Failed to set parameter {param} value', exc_info=result.exception())
83
84 future = self._start_task(set_parameter_func)
85 future.add_done_callback(handle_future_exception)
86
87 return
88 elif type == 'reloadModelValues':
89 parameter_values = data.get('parameterValues')
90 external_id = data.get('clientModelId')
91
92 yield self._prepare_and_send_model(parameter_values=parameter_values,
93 external_id=external_id,
94 event_type='reloadedConfig',
95 client_state_version=data.get('clientStateVersion'))
96 return
97 elif type == 'initialValues':
98 if not self.init_with_values:
99 logging.warning('Received initial values, but not expected. Ignoring')
100 return
101 if self.config_model:
102 logging.warning('Received initial values, but model is already initialized. Ignoring')
103 return
104 parameter_values = data.get('parameterValues')
105
106 yield self._prepare_and_send_model(parameter_values=parameter_values,
107 event_type='initialConfig')
108 return
109
110 LOGGER.warning('Unknown message received in ScriptConfigSocket: ' + text)
111 except:
112 LOGGER.exception('Failed to process message ' + text)
113
114 def _start_task(self, func):
115 future = tornado.ioloop.IOLoop.current().run_in_executor(

Callers

nothing calls this directly

Calls 3

_start_taskMethod · 0.95
getMethod · 0.45

Tested by

no test coverage detected