示例#1
0
        private void ReplyAll()
        {
            ClientTweet tweet = selectTweet;

            if (tweet == null)
            {
                return;
            }
            if (tweet.originalTweet == null || tweet.user == null)
            {
                return;
            }

            StringBuilder sb = new StringBuilder();

            sb.Append($"@{tweet.user.screen_name} ");
            if (tweet.retweeted)
            {
                sb.Append($"@{tweet.originalTweet.user.screen_name} ");
            }
            foreach (string name in tweet.hashMention)
            {
                if (DataInstence.CheckIsMe(name) == false)
                {
                    sb.Append($"@{name} ");
                }
            }
            inputTweetBox.Text           = sb.ToString();
            inputTweetBox.SelectionStart = inputTweetBox.Text.Length;
            replyTweet = tweet;
            EnterInputTweet();
        }
示例#2
0
        private void contextClick_Retweet(object sender, RoutedEventArgs e)
        {
            if (tweet == null)
            {
                return;
            }

            if (tweet.user.Protected && DataInstence.CheckIsMe(tweet.user.id) == false &&
                DataInstence.option.isRetweetProtectUser == false)
            {
                DalsaeInstence.ShowMessageBox("잠금 계정의 트윗은 리트윗 할 수 없습니다.\r", "알림");
                return;
            }

            MessageBoxResult mr = DalsaeInstence.ShowMessageBox("선택한 트윗을 리트윗 하시겠습니까?", "리트윗 확인", MessageBoxButton.YesNo);

            if (mr != MessageBoxResult.Yes)
            {
                return;
            }

            if (tweet.user.Protected && DataInstence.CheckIsMe(tweet.user.id) == false)
            {
                DalsaeInstence.RetweetProtect(tweet);
            }
            else
            {
                DalsaeInstence.Retweet(tweet.originalTweet.id, !tweet.retweeted);
            }
        }
示例#3
0
        public void Retweet(ClientTweet tweet)
        {
            if (tweet.user.Protected && DataInstence.CheckIsMe(tweet.user.id) == false &&
                DataInstence.option.isRetweetProtectUser == false)
            {
                DalsaeInstence.ShowMessageBox("잠금 계정의 트윗은 리트윗 할 수 없습니다.\r", "알림");
                return;
            }

            if (tweet.originalTweet.retweeted == false)
            {
                MessageBoxResult mr = DalsaeInstence.ShowMessageBox("선택한 트윗을 리트윗 하시겠습니까?", "리트윗 확인", MessageBoxButton.YesNo);
                if (mr != MessageBoxResult.Yes)
                {
                    return;
                }
            }
            if (tweet.user.Protected && tweet.isRetweet == false && DataInstence.CheckIsMe(tweet.user.id) == false)
            {
                DalsaeInstence.RetweetProtect(tweet);
            }
            else
            {
                DalsaeInstence.Retweet(tweet.originalTweet.id, !tweet.originalTweet.retweeted);
            }
        }
示例#4
0
        private void LoadOption()
        {
            Option option = null;

            if (File.Exists(optionFilePath))
            {
                string json = string.Empty;

                using (StreamReader sr = new StreamReader(optionFilePath))
                {
                    json = sr.ReadToEnd();
                }
                if (json.Length < 10)
                {
                    App.SendException("option load error, option.json is empty", "jsonnnnnn");
                }
                try { option = JsonConvert.DeserializeObject <Option>(json); }
                catch (Exception e) { App.SendException("Load Option Error", ""); }
                if (option == null)
                {
                    option = new Option();
                }

                //DataInstence.option = option;
                DataInstence.SetOption(option);
            }
            else
            {
                option = new Option();
                DataInstence.SetOption(option);
            }
        }
示例#5
0
 private void SaveWindowSizeAndLocation()
 {
     if (WindowState != WindowState.Maximized && WindowState != WindowState.Minimized)
     {
         DataInstence.SetMainWindowLocation(Left, Top, Width, Height);
         FileInstence.UpdateOption(DataInstence.option);
     }
 }
示例#6
0
 private void mainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
 {
     if (WindowState != WindowState.Maximized && WindowState != WindowState.Minimized)
     {
         DataInstence.SetMainWindowLocation(Left, Top, Width, Height);
     }
     DalsaeInstence.ProgramClosing();
 }
示例#7
0
 private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
 {
     isClosed = true;
     timer.Stop();
     mediaElement.Stop();
     mediaElement.Source = null;
     DataInstence.SetVideoWindowLocation(Left, Top, Width, Height);
     Properties.Settings.Default.videoVolume = mediaElement.Volume;
     DalsaeInstence.FocusPanel();
 }
示例#8
0
 public void ResponseRetweetOff(ClientFollowingUpdate relation)
 {
     if (DataInstence.UpdateRetweetOff(relation.relationship.target.id))
     {
         ShowMessageBox($"{relation.relationship.target.screen_name}의 리트윗을 표시하지 않습니다.", "알림", MessageBoxImage.Information);
     }
     else
     {
         ShowMessageBox($"{relation.relationship.target.screen_name}의 리트윗을 표시합니다.", "알림", MessageBoxImage.Information);
     }
 }
示例#9
0
 private void ResponseUSTweet(ClientTweet tweet)
 {
     tweet.Init();
     if (tweet.isRetweet && DataInstence.CheckIsMe(tweet.user.id))
     {
         tweet.originalTweet.retweeted = true;
     }
     TweetInstence.AddTweet(eTweetPanel.eHome, tweet);
     //DeleAddTweet dele = new DeleAddTweet(TweetInstence.AddTweet);
     //Application.Current.Dispatcher.BeginInvoke(dele, new object[] { eTweetPanel.eHome, tweet });
 }
示例#10
0
        public App()
        {
            this.Dispatcher.UnhandledException         += Dispatcher_UnhandledException;
            this.Dispatcher.UnhandledExceptionFilter   += Dispatcher_UnhandledExceptionFilter;
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
            TaskScheduler.UnobservedTaskException      += TaskScheduler_UnobservedTaskException;

            DataInstence.Init();
            FileInstence.Init();            //init
            DalsaeInstence.Init();          //init
        }
示例#11
0
 private void imageWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
 {
     if (WindowState != WindowState.Maximized && WindowState != WindowState.Minimized)
     {
         DataInstence.SetImageWidowLocation(Left, Top, Width, Height);
     }
     for (int i = 0; i < listBitmapImage.Count; i++)
     {
         listBitmapImage[i].StreamSource?.Dispose();
     }
 }
示例#12
0
 public void ResponseOAuth(Web.ResOAuth oauth)
 {
     if (oauth.isCallBack)
     {
         DataInstence.UpdateToken(oauth);
         System.Diagnostics.Process.Start($"https://api.twitter.com/oauth/authorize?oauth_token={oauth.tokenStr}");
     }
     else
     {
         DataInstence.UpdateToken(oauth);
         FileInstence.UpdateToken(DataInstence.userInfo);
         LoadMyInfo();
     }
 }
示例#13
0
        public void ClearClient()
        {
            apiInstence.StopSend();
            usInstence.DisconnectStreaming();
            DataInstence.ClearToken();
            DeleClear dele = new DeleClear(TweetInstence.Clear);

            Application.Current.Dispatcher.BeginInvoke(dele);

            dele = new DeleClear(window.ClearWindow);
            Application.Current.Dispatcher.BeginInvoke(dele);

            GC.Collect();
        }
示例#14
0
        private void ResponseSingleTweet(ClientTweet tweet, UIProperty property)
        {
            if (tweet == null)
            {
                tweet = new ClientTweet("트윗을 표시할 수 없습니다.");
                return;
            }
            tweet.Init();
            if (DataInstence.isShowTweet(tweet, eTweetPanel.eHome) == false)
            {
                tweet.Init();
                tweet = new ClientTweet("트윗이 뮤트되었습니다.");
            }

            property.AddSingleTweet(tweet, tweet.uiProperty.isQtTweet ? tweet.uiProperty : tweet.uiProperty.parentTweet, false);
        }
示例#15
0
        //스트리밍에서 호출하게 될 트윗 추가
        public void AddTweet(eTweetPanel panel, ClientTweet tweet)
        {
            lock (lockObject)
            {
                tweet.Init();
                //if (DataInstence.CheckIsMe(tweet.user.id))//내트윗일 경우 작업
                //{
                //	DataInstence.UpdateMyScreenName(tweet.user.screen_name);//아이디 변경 체크
                //	DataInstence.UpdateMyProfilePicture(tweet.user.profile_image_url);//인장 변경 체크
                //}

                if (dicHashs[panel].Contains(tweet.id))
                {
                    return;                                                    //중복 트윗
                }
                if (DataInstence.isShowTweet(tweet, panel) == false)
                {
                    return;                                                                 //트윗 미표시
                }
                bool isShowTweet = true;
                if (panel == eTweetPanel.eHome)
                {
                    if (DataInstence.option.MatchHighlight(tweet.originalTweet.text) || tweet.isMention)                    //하이라이트,멘션 멘션에 추가
                    {
                        AddTweetData(eTweetPanel.eMention, tweet);
                    }
                    else if (DataInstence.CheckIsMe(tweet.originalTweet.user.id) && tweet.retweeted) //내 트윗 체크(리트윗용)
                    {
                        isShowTweet = DataInstence.option.isShowRetweet;                             //리트윗을 TL표시할경우 추가
                        if (isShowTweet && DataInstence.option.isNotiRetweet)                        //리트윗 멘션함에 오게 할 경우 추가
                        {
                            AddTweetData(eTweetPanel.eMention, tweet);
                        }
                        //if (DataInstence.CheckIsMe(tweet.user.id) && tweet.retweeted_status != null)//내가 한 리트윗
                        //	Retweet(tweet, true);
                    }
                }
                if (isShowTweet)
                {
                    AddTweetData(panel, tweet);
                }

                //if (DataInstence.CheckIsMe(tweet.user.id) && tweet.retweeted_status != null)//리트윗 갱신
                //	Retweet(tweet, true);
            }
        }
示例#16
0
 public void ChangeAccount(string screen_name)
 {
     foreach (UserKey item in switter.dicUserKey.Values)
     {
         if (item.screen_name == screen_name)
         {
             DataInstence.UpdateToken(new Web.ResOAuth()
             {
                 tokenStr = item.Token, secretStr = item.TokenSecret, isCallBack = false
             });
             switter.selectAccount = item;
             SaveSwitter();
             if (followList.dicFollow.ContainsKey(switter.selectAccount.id))
             {
                 DataInstence.dicFollwing = followList.dicFollow[switter.selectAccount.id];
             }
             break;
         }
     }
 }
示例#17
0
        private void ReplyDM()
        {
            ClientDirectMessage dm = dicPanel[eTweetPanel.eDm].treeView.SelectedItem as ClientDirectMessage;

            if (dm == null)
            {
                return;
            }

            if (DataInstence.CheckIsMe(dm.sender_screen_name))
            {
                inputTweetBox.Text = $"d @{dm.recipient_screen_name} ";
            }
            else
            {
                inputTweetBox.Text = $"d @{dm.sender_screen_name} ";
            }
            inputTweetBox.SelectionStart = inputTweetBox.Text.Length;
            EnterInputTweet();
        }
示例#18
0
        public void AddTweet(eTweetPanel panel, List <ClientTweet> listTweet, bool isMore)
        {
            if (isMore)                                   //더 불러오기는 순서가 일반과 반대
            {
                for (int i = 0; i < listTweet.Count; i++) //API콜은 역순으로 등록
                {
                    listTweet[i].Init();
                    if (dicHashs[panel].Contains(listTweet[i].id))
                    {
                        continue;                                                               //중복 트윗
                    }
                    if (DataInstence.isShowTweet(listTweet[i], panel) == false)
                    {
                        continue;                                                                            //트윗 미표시
                    }
                    AddTweetData(panel, listTweet[i], isMore);
                }
            }
            else
            {
                if (panel == eTweetPanel.eUser)
                {
                    ClearUserTweet();                                         //유저트윗 초기화
                }
                for (int i = listTweet.Count - 1; i >= 0; i--)                //더 불러오기가 아닌 거
                {
                    listTweet[i].Init();
                    if (dicHashs[panel].Contains(listTweet[i].id))
                    {
                        continue;                                                               //중복 트윗
                    }
                    if (DataInstence.isShowTweet(listTweet[i], panel) == false)
                    {
                        continue;                                                                            //트윗 미표시
                    }
                    AddTweetData(panel, listTweet[i], isMore);
                }
            }

            SortTweet(panel);
        }
示例#19
0
        private void buttonFollow_Click(object sender, RoutedEventArgs e)
        {
            UserFollow user = gridUserTop.DataContext as UserFollow;

            if (user == null)
            {
                return;
            }
            if (DataInstence.CheckIsMe(user.id))
            {
                return;                                             //출력중인 게 본인이면 작동 x
            }
            if (buttonFollow.Content.ToString() == "언팔로우 하기")
            {
                ThreadPool.QueueUserWorkItem(UnFollow, new PacketUnFollow(user.screen_name));
            }
            else if (buttonFollow.Content.ToString() == "팔로우 하기")
            {
                ThreadPool.QueueUserWorkItem(Follow, new PacketFollow(user.screen_name));
            }
        }
示例#20
0
        private void LoadHotKey()
        {
            HotKeys hotkey = null;

            if (System.IO.File.Exists(hotkeyFilePath))
            {
                string json = string.Empty;

                using (StreamReader sr = new StreamReader(hotkeyFilePath))
                {
                    json = sr.ReadToEnd();
                }
                try { hotkey = JsonConvert.DeserializeObject <HotKeys>(json); }
                catch (Exception e) { App.SendException("Load hotky Error", ""); }
            }
            if (hotkey == null)
            {
                hotkey = new HotKeys();
                UpdateHotkey(hotkey);
            }
            DataInstence.UpdateHotkeys(hotkey);
        }
示例#21
0
        private void ChangeAccount(UserKey userKey)
        {
            UserKey token = null;

            if (userKey != null)
            {
                if (switter.dicUserKey.ContainsKey(userKey.id))
                {
                    token = switter.dicUserKey[userKey.id];
                }
            }
            else
            {
                if (switter.dicUserKey.Count > 0)
                {
                    foreach (UserKey item in switter.dicUserKey.Values)
                    {
                        token = item;
                        break;
                    }
                }
            }
            foreach (UserKey item in switter.dicUserKey.Values)
            {
                if (item.id == token.id)
                {
                    switter.selectAccount = item;
                    break;
                }
            }
            if (token != null)
            {
                DataInstence.UpdateToken(new Web.ResOAuth()
                {
                    tokenStr = token.Token, secretStr = token.TokenSecret, isCallBack = false
                });
            }
        }
示例#22
0
        private void LoadSkin()
        {
            Skin   skin = null;
            string path = skinFolderPath + "/" + DataInstence.option.skinName + ".txt";

            if (File.Exists(path))            //스킨 파일 체크
            {
                string json = string.Empty;

                using (StreamReader sr = new StreamReader(path))
                {
                    json = sr.ReadToEnd();
                }

                try { skin = JsonConvert.DeserializeObject <Skin>(json); }
                catch { skin = new Skin(); }
            }
            else
            {
                skin = new Skin();
            }
            DataInstence.UpdateSkin(skin);
        }
示例#23
0
        private void ResponseUSEvent(StreamEvent streamEvent)
        {
            switch (streamEvent.Event)
            {
            case "unblock":
                DataInstence.UpdateBlockIds(streamEvent.target.id, false);
                break;

            case "block":
                DataInstence.UpdateBlockIds(streamEvent.target.id, true);
                break;

            case "follow":
                DataInstence.UpdateFollow(streamEvent.target, true);
                break;

            case "unfollow":
                DataInstence.UpdateFollow(streamEvent.target, false);
                break;

            case "delete":
                break;
            }
        }
示例#24
0
        private ContextMenu CreateContextMenu(ClientTweet tweet)
        {
            if (tweet.user == null || tweet.originalTweet == null)
            {
                return(new ContextMenu());
            }
            ContextMenu contextMenu = new ContextMenu();
            MenuItem    mi          = new MenuItem();

            mi.Header = "입력하기";
            mi.Click += contextClick_EnterInput;
            contextMenu.Items.Add(mi);

            Separator sp = new Separator();

            contextMenu.Items.Add(sp);
            //------------------미디어---------------------
            if (tweet.isMedia)
            {
                foreach (ClientMedia item in tweet.dicPhoto.Values)
                {
                    if (tweet.isPhoto)
                    {
                        MenuItem imageItem = new MenuItem();
                        imageItem.Header = item.display_url;
                        imageItem.Click += contextClick_Image;
                        contextMenu.Items.Add(imageItem);
                        break;
                    }
                }
                if (tweet.isMovie)                //동영상 추가
                {
                    MenuItem gifMi = new MenuItem();
                    gifMi.Header = "gif / 동영상";
                    MenuItem gifItem = new MenuItem();
                    gifItem.Header = tweet.tweetMovie.display_url;
                    gifItem.Click += contextClick_Video;
                    gifMi.Items.Add(gifItem);
                    contextMenu.Items.Add(gifMi);
                }

                sp = new Separator();
                contextMenu.Items.Add(sp);
            }
            //----------------------------------------------

            //------------------URL----------------------
            if (tweet.isUrl)
            {
                mi        = new MenuItem();
                mi.Header = "URL";
                for (int i = 0; i < tweet.listUrl.Count; i++)
                {
                    MenuItem url = new MenuItem();
                    url.Header = tweet.listUrl[i].display_url;
                    url.Click += contextClick_Url;
                    mi.Items.Add(url);
                    url.Tag = tweet.listUrl[i];
                }
                contextMenu.Items.Add(mi);
                sp = new Separator();
                contextMenu.Items.Add(sp);
            }
            //----------------------------------------------
            mi        = new MenuItem();
            mi.Header = "답글";
            mi.Click += contextClick_Reply;
            contextMenu.Items.Add(mi);

            mi        = new MenuItem();
            mi.Header = "모두에게 답글";
            mi.Click += contextClick_ReplyAll;
            contextMenu.Items.Add(mi);

            sp = new Separator();
            contextMenu.Items.Add(sp);
            //----------------------------------------------
            if (tweet.isReply)
            {
                mi        = new MenuItem();
                mi.Header = "대화 보기";
                mi.Click += contextClick_LoadDeahwa;
                contextMenu.Items.Add(mi);
                sp = new Separator();
                contextMenu.Items.Add(sp);
            }

            //----------------------------------------------
            //------------------사용자---------------------
            //----------------------------------------------
            mi        = new MenuItem();
            mi.Header = "사용자 기능";
            contextMenu.Items.Add(mi);

            //------------------USER----------------------
            {
                MenuItem usermi = new MenuItem();
                usermi.Header = "유저 트윗";
                HashSet <string> hashUser = new HashSet <string>();
                hashUser.Add(tweet.user.screen_name);                //리트윗 유저
                hashUser.Add(tweet.originalTweet.user.screen_name);  //리트윗 원본 작성자
                foreach (string name in tweet.hashMention)
                {
                    hashUser.Add(name);
                }
                foreach (string name in hashUser)
                {
                    MenuItem umi = new MenuItem();
                    umi.Header = name.Replace("_", "__");
                    umi.Click += contextClick_UserTweet;
                    usermi.Items.Add(umi);
                }
                mi.Items.Add(usermi);
                MenuItem usermedia = new MenuItem();
                usermedia.Header = "유저 미디어";
                foreach (string name in hashUser)
                {
                    MenuItem umi = new MenuItem();
                    umi.Header = name.Replace("_", "__");
                    umi.Click += contextClick_UserMediaTweet;
                    usermedia.Items.Add(umi);
                }
                mi.Items.Add(usermedia);

                //------------------MUTE----------------------
                MenuItem muteItem = new MenuItem();
                muteItem.Header = "유저 뮤트";
                foreach (string name in hashUser)
                {
                    MenuItem umi = new MenuItem();
                    umi.Header = name.Replace("_", "__");
                    umi.Click += contextClick_UserMute;
                    umi.Tag    = name;
                    muteItem.Items.Add(umi);
                }
                mi.Items.Add(muteItem);

                //------------------프로필----------------------
                MenuItem profileItem = new MenuItem();
                profileItem.Header = "유저 프로필 보기";
                foreach (string name in hashUser)
                {
                    MenuItem umi = new MenuItem();
                    umi.Header = name.Replace("_", "__");
                    umi.Click += contextClick_UserProfile;
                    profileItem.Items.Add(umi);
                }
                mi.Items.Add(profileItem);
                sp = new Separator();
                mi.Items.Add(sp);
            }
            //------------------------------------------------
            {
                MenuItem usermi = new MenuItem();
                if (DataInstence.hashRetweetOff.Contains(tweet.user.id))
                {
                    usermi.Header = $"{tweet.user.screen_name.Replace("_", "__")}의 리트윗 켜기";
                }
                else
                {
                    usermi.Header = $"{tweet.user.screen_name.Replace("_", "__")}의 리트윗 끄기";
                }
                usermi.Click += contextClick_UserRetweetOff;
                mi.Items.Add(usermi);

                sp = new Separator();
                mi.Items.Add(sp);

                usermi        = new MenuItem();
                usermi.Header = "클라이언트 뮤트";
                usermi.Click += contextClick_ClientMute;
                mi.Items.Add(usermi);

                usermi        = new MenuItem();
                usermi.Header = "트윗 뮤트";
                usermi.Click += contextClick_TweetMute;
                mi.Items.Add(usermi);
            }
            sp = new Separator();
            contextMenu.Items.Add(sp);

            //------------------해시태그----------------------
            if (tweet.lastEntities.hashtags.Count > 0)
            {
                mi        = new MenuItem();
                mi.Header = "해시 태그";
                for (int i = 0; i < tweet.lastEntities.hashtags.Count; i++)
                {
                    MenuItem hash = new MenuItem();
                    hash.Header = tweet.lastEntities.hashtags[i].text.Replace("_", "__");
                    hash.Click += contextClick_Hashtag;
                    mi.Items.Add(hash);
                }
                contextMenu.Items.Add(mi);
                sp = new Separator();
                contextMenu.Items.Add(sp);
            }
            //------------------------------------------------
            mi        = new MenuItem();
            mi.Header = "웹에서 보기";
            mi.Click += contextClick_ViewWeb;
            contextMenu.Items.Add(mi);

            mi        = new MenuItem();
            mi.Header = "리트윗(RT)";
            mi.Click += contextClick_Retweet;
            contextMenu.Items.Add(mi);

            mi        = new MenuItem();
            mi.Header = "인용하기(QT)";
            mi.Click += contextClick_Qt;
            contextMenu.Items.Add(mi);

            mi        = new MenuItem();
            mi.Header = "쪽지";
            mi.Click += contextClick_DM;
            contextMenu.Items.Add(mi);

            mi        = new MenuItem();
            mi.Header = "관심글";
            mi.Click += contextClick_Favorite;
            contextMenu.Items.Add(mi);

            sp = new Separator();
            contextMenu.Items.Add(sp);

            mi        = new MenuItem();
            mi.Header = "트윗 복사";
            mi.Click += contextClick_TweetCopy;
            contextMenu.Items.Add(mi);


            mi           = new MenuItem();
            mi.Header    = "삭제";
            mi.Click    += contextClick_TweetDelete;
            mi.IsEnabled = DataInstence.CheckIsMe(tweet.user.id);
            contextMenu.Items.Add(mi);

            return(contextMenu);
        }
示例#25
0
        private void SetBoolean()
        {
            if (string.IsNullOrEmpty(originalTweet.in_reply_to_status_id_str) == false)
            {
                isReply = true;
            }
            if (string.IsNullOrEmpty(originalTweet.quoted_status_id_str) == false)
            {
                isQTRetweet = true;
            }
            if (originalTweet.extended_tweet != null)
            {
                isExtendTweet = true;
            }

            if (isExtendTweet)            //확장 트윗일 경우 확장 트윗의 일반,확장 엔티티 설정
            {
                if (originalTweet.extended_tweet.extended_entities != null)
                {
                    mediaEntities = originalTweet.extended_tweet.extended_entities;
                }
                else
                {
                    mediaEntities = originalTweet.entities;
                }
                lastEntities = originalTweet.extended_tweet.entities;
            }
            else
            {
                if (originalTweet.extended_entities != null)
                {
                    mediaEntities = originalTweet.extended_entities;
                }
                else
                {
                    mediaEntities = originalTweet.entities;
                }
                lastEntities = originalTweet.entities;
            }
            if (mediaEntities?.media != null)
            {
                if (mediaEntities.media.Count > 0)
                {
                    isMedia = true;
                }
            }

            for (int i = 0; i < lastEntities.user_mentions.Count; i++)
            {
                if (DataInstence.CheckIsMe(lastEntities.user_mentions[i].id))
                {
                    isMention = true;
                }

                hashMention.Add(lastEntities.user_mentions[i].screen_name);
            }

            if (lastEntities.urls != null)
            {
                if (lastEntities.urls.Count > 0)
                {
                    isUrl = true;
                }
            }
        }