MCPcopy Create free account
hub / github.com/chatmail/core / _map_ffi_event

Method _map_ffi_event

python/src/deltachat/events.py:294–326  ·  view source on GitHub ↗
(self, ffi_event: FFIEvent)

Source from the content-addressed store, hash-verified

292 self.account.log(f"{info}\nException {ex}\nTraceback:\n{logfile.getvalue()}")
293
294 def _map_ffi_event(self, ffi_event: FFIEvent):
295 name = ffi_event.name
296 account = self.account
297 if name == "DC_EVENT_CONFIGURE_PROGRESS":
298 data1 = ffi_event.data1
299 if data1 == 0 or data1 == 1000:
300 success = data1 == 1000
301 comment = ffi_event.data2
302 yield "ac_configure_completed", {"success": success, "comment": comment}
303 elif name == "DC_EVENT_INCOMING_MSG":
304 msg = account.get_message_by_id(ffi_event.data2)
305 if msg is not None:
306 yield ("ac_incoming_message", {"message": msg})
307 elif name == "DC_EVENT_MSGS_CHANGED":
308 if ffi_event.data2 != 0:
309 msg = account.get_message_by_id(ffi_event.data2)
310 if msg is not None:
311 if msg.is_outgoing():
312 yield "ac_outgoing_message", {"message": msg}
313 elif msg.is_in_fresh():
314 yield "ac_incoming_message", {"message": msg}
315 elif name == "DC_EVENT_REACTIONS_CHANGED":
316 assert ffi_event.data1 > 0
317 msg = account.get_message_by_id(ffi_event.data2)
318 if msg is not None:
319 yield "ac_reactions_changed", {"message": msg}
320 elif name == "DC_EVENT_MSG_DELIVERED":
321 msg = account.get_message_by_id(ffi_event.data2)
322 if msg is not None:
323 yield "ac_message_delivered", {"message": msg}
324 elif name == "DC_EVENT_CHAT_MODIFIED":
325 chat = account.get_chat_by_id(ffi_event.data1)
326 yield "ac_chat_modified", {"chat": chat}

Callers 1

_process_eventMethod · 0.95

Calls 4

is_in_freshMethod · 0.80
get_message_by_idMethod · 0.45
is_outgoingMethod · 0.45
get_chat_by_idMethod · 0.45

Tested by

no test coverage detected