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 }); }
internal static FB_MessageReplyEvent _parse(Session session, JToken data) { var thread = FB_MessageReplyEvent._get_thread(session, data); var metadata = data?.get("message")?.get("messageMetadata"); return(new FB_MessageReplyEvent() { author = new FB_User(session: session, uid: metadata?.get("actorFbId")?.Value <string>()), thread = thread, message = FB_Message._from_reply(data?.get("message"), thread), replied_to = FB_Message._from_reply(data?.get("repliedToMessage"), thread), }); }