コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: DeltaType.cs プロジェクト: xuan2261/fbchat-sharp
        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
            });
        }
コード例 #3
0
ファイル: DeltaType.cs プロジェクト: xuan2261/fbchat-sharp
        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
            });
        }