public static Dictionary <string, object> _parse_customization_info(JToken data) { var rtn = new Dictionary <string, object>(); if (data == null || data.get("customization_info") == null) { return(rtn); } var info = data.get("customization_info"); rtn["emoji"] = info.get("emoji"); rtn["color"] = ThreadColor._from_graphql(info.get("outgoing_bubble_color")); if ( data.get("thread_type")?.Value <string>() == "GROUP" || (data.get("is_group_thread")?.Value <bool>() ?? false) || (data.get("thread_key")?.get("thread_fbid") != null)) { rtn["nicknames"] = new Dictionary <string, string>(); foreach (var k in info.get("participant_customizations")) { ((Dictionary <string, string>)rtn["nicknames"])[k.get("participant_id")?.Value <string>()] = k.get("nickname")?.Value <string>(); } } else if (info.get("participant_customizations") != null) { string uid = data.get("thread_key")?.get("other_user_id")?.Value <string>() ?? data.get("id")?.Value <string>(); var pc = info.get("participant_customizations"); if (pc.Type == JTokenType.Array && pc.Value <JArray>().Count > 0) { if (pc[0]?.get("participant_id")?.Value <string>() == uid) { rtn["nickname"] = pc[0]?.get("nickname")?.Value <string>(); } else { rtn["own_nickname"] = pc[0]?.get("nickname")?.Value <string>(); } } if (pc.Type == JTokenType.Array && pc.Value <JArray>().Count > 1) { if (pc[1]?.get("participant_id")?.Value <string>() == uid) { rtn["nickname"] = pc[1]?.get("nickname")?.Value <string>(); } else { rtn["own_nickname"] = pc[1]?.get("nickname")?.Value <string>(); } } } return(rtn); }
internal static FB_ColorSet _from_fetch(FB_Thread thread, JToken data) { (FB_User author, long at) = FB_ColorSet._parse_fetch(thread.session, data); var color = ThreadColor._from_graphql(data?.get("extensible_message_admin_text")?.get("theme_color")); return(new FB_ColorSet() { author = author, thread = thread, color = color, at = at }); }
internal static FB_ColorSet _parse(Session session, JToken data) { (FB_User author, FB_Thread thread, long at) = FB_ColorSet._parse_metadata(session, data); var color = ThreadColor._from_graphql(data?.get("untypedData")?.get("theme_color")); return(new FB_ColorSet() { author = author, thread = thread, color = color, at = at }); }