private static FB_Event parse_client_delta(Session session, JToken data) { if (data?.get("deltaMessageReaction") != null) { return(FB_ReactionEvent._parse(session, data["deltaMessageReaction"])); } else if (data?.get("deltaChangeViewerStatus") != null) { // TODO: Parse all `reason` if (data?.get("deltaChangeViewerStatus")?.get("reason")?.Value <int>() == 2) { return(FB_UserStatusEvent._parse(session, data["deltaChangeViewerStatus"])); } } else if (data?.get("liveLocationData") != null) { return(FB_LiveLocationEvent._parse(session, data["liveLocationData"])); } else if (data?.get("deltaRecallMessageData") != null) { return(FB_UnsendEvent._parse(session, data["deltaRecallMessageData"])); } else if (data?.get("deltaMessageReply") != null) { return(FB_MessageReplyEvent._parse(session, data["deltaMessageReply"])); } return(new FB_UnknownEvent() { source = "client payload", data = data }); }
/// TODO: This! internal static FB_LiveLocationEvent _parse(Session session, JToken data) { var thread = FB_LiveLocationEvent._get_thread(session, data); foreach (var location_data in data?.get("messageLiveLocations") ?? Enumerable.Empty <JToken>()) { var message = new FB_Message(session: session, thread_id: thread.uid, uid: data?.get("messageId")?.Value <string>()); var author = new FB_User(session: session, uid: location_data?.get("senderId")?.Value <string>()); var location = FB_LiveLocationAttachment._from_pull(location_data); } return(null); }