Ejemplo n.º 1
0
 private static Tweet ParseTweet(TwitterSearchStatus searchStatus)
 {
     return(new Tweet
     {
         Id = searchStatus.Id,
         Text = searchStatus.Text,
         ProfileImageUrl = searchStatus.ProfileImageUrl,
         Time = searchStatus.CreatedDate,
         ScreenName = searchStatus.FromUserScreenName,
         UserName = searchStatus.FromUserName
     });
 }
Ejemplo n.º 2
0
        public void SetData(TwitterSearchStatus status)
        {
            this._status = status;

            this.ScreenName = status.Author.ScreenName;
            this.Name = status.FromUserName;
            this.HasImage = false;

            SetUserImage(status);
            SetPicture(status);
            SetText(status);
            UpdateTime();
        }
Ejemplo n.º 3
0
 public static TwitterStatus SearchToStatus(TwitterSearchStatus search)
 {
     TwitterStatus status = new TwitterStatus
     {
         User = search.Author as TwitterUser,
         Text = search.Text,
         TextAsHtml = search.TextAsHtml,
         Source = search.Source,
         Id = search.Id,
         CreatedDate = search.CreatedDate,
         Entities = search.Entities
     };
     return status;
 }
Ejemplo n.º 4
0
        public TweetViewModel(TwitterSearchStatus status)
        {
            if (status == null)
            {
                return;
            }

            this.AuthoerScreenName = new ReactiveProperty<string>(status.Author.ScreenName);
            this.Text = new ReactiveProperty<string>(StringUtils.Decode(status.Text));
            this.CreatedDate = new ReactiveProperty<DateTime>(TimeZoneInfo.ConvertTime(status.CreatedDate, TimeZoneInfo.Local));
            this.ProfileImageUrl = new ReactiveProperty<string>(status.Author.ProfileImageUrl);
            this.Id = new ReactiveProperty<long>(status.Id);
            this.StatusUri = new ReactiveProperty<Uri>(status.GetStatusUri());
            this.Uris = status
                .Entities
                .Urls
                .Select(uri => new TweetUriViewModel(new Uri(uri.Value, UriKind.Absolute)))
                .ToObservable()
                .ToReactiveCollection();
        }
Ejemplo n.º 5
0
        private void SetPicture(TwitterSearchStatus status)
        {
            this.HasImage = false;

            if (status.Entities == null)
                return;

            if (status.Entities.Media.Any())
            {
                var img = new BitmapImage();
                img.BeginInit();
                img.CreateOptions |= BitmapCreateOptions.IgnoreColorProfile;
                img.UriSource = new Uri(status.Entities.Media.First().MediaUrl, UriKind.Absolute);
                img.EndInit();
                this.Picture = img;
                this.HasImage = true;
            }
        }
Ejemplo n.º 6
0
 private void SetUserImage(TwitterSearchStatus status)
 {
     var img = new BitmapImage();
     img.BeginInit();
     img.CreateOptions |= BitmapCreateOptions.IgnoreColorProfile;
     img.UriSource = new Uri(status.Author.ProfileImageUrl, UriKind.Absolute);
     img.EndInit();
     this.UserImage = img;
 }
Ejemplo n.º 7
0
        private void SetText(TwitterSearchStatus status)
        {
            Text.Clear();
            Int32 entityIndex = 0;

            if (status.Entities == null)
            {
                Text.Add(new TextSegment { Text = status.Text });
                return;
            }

            if (status.Entities.Any())
            {
                var entities = status.Entities.OrderBy(x => x.StartIndex);
                Text.Add(new TextSegment() { Text = WebUtility.HtmlDecode(status.Text.Substring(0, entities.First().StartIndex)) });

                foreach (var entity in entities)
                {
                    Text.Add(new TextSegment { Text = WebUtility.HtmlDecode(status.Text.Substring(entity.StartIndex, entity.EndIndex - entity.StartIndex)), IsHighlighted = true });
                    entityIndex++;

                    if (entities.Count() > entityIndex)
                    {
                        var nextEntity = entities.ElementAt(entityIndex);
                        var distance = nextEntity.StartIndex - entity.EndIndex;
                        Text.Add(new TextSegment() { Text = WebUtility.HtmlDecode(status.Text.Substring(entity.EndIndex, distance)) });
                    }
                    else
                    {
                        Text.Add(new TextSegment() { Text = WebUtility.HtmlDecode(status.Text.Substring(entity.EndIndex, status.Text.Length - entity.EndIndex)) });
                    }
                }
            }
            else
            {
                Text.Add(new TextSegment { Text = WebUtility.HtmlDecode(status.Text) });
            }
        }
Ejemplo n.º 8
0
 public static string TwitterAvatar(TwitterSearchStatus status)
 {
     return String.Format("<a href=\"http://twitter.com/{0}\" onclick=\"pageTracker._trackPageview('/exit/to/{0}');\" target=\"_blank\"> <img src=\"{1}\"></a>", status.FromUserScreenName, status.ProfileImageUrl);
 }
Ejemplo n.º 9
0
 public static string TwitterMessage(TwitterSearchStatus status)
 {
     return String.Format("<a href=\"http://twitter.com/{0}\" onclick=\"pageTracker._trackPageview('/exit/to/{0}');\" target=\"_blank\">{0}</a>: <span id=\"msgtxt{1}\" class=\"msgtxt en\">{2}</span>", status.FromUserScreenName, status.Id, TwitterfyText(status.Text));
 }
Ejemplo n.º 10
0
 public static string TwitterViewTweetLink(TwitterSearchStatus status)
 {
     return String.Format("<a href=\"http://twitter.com/{0}/statuses/{1}\" class=\"lit\" onclick=\"pageTracker._trackPageview('/exit/status/{1}');\" target=\"_blank\">View Tweet</a>", status.FromUserScreenName, status.Id);
 }
Ejemplo n.º 11
0
 public static string TwitterSource(TwitterSearchStatus status)
 {
     return HttpUtility.HtmlDecode(status.Source);
 }
Ejemplo n.º 12
0
 public static string TwitterReplyLink(TwitterSearchStatus status)
 {
     return String.Format("<a href=\"http://twitter.com/?status=@{0}%20%23cf360%20&amp;in_reply_to_status_id={1}&amp;in_reply_to={0}\" class=\"litnv\" onclick=\"pageTracker._trackPageview('/exit/reply/{0}');\" target=\"_blank\">Reply</a>", status.FromUserScreenName, status.Id);
 }
Ejemplo n.º 13
0
 public static string TwitterRelativeTime(TwitterSearchStatus status)
 {
     return status.CreatedDate.ToRelativeTime(false);
 }
Ejemplo n.º 14
0
        private void ShowTweet(TwitterSearchStatus tweet)
        {
            if (authorLabel.InvokeRequired)
            {
                this.Invoke((MethodInvoker)delegate
                {
                    authorLabel.Text = "@" + tweet.Author.ScreenName;
                });
            }
            else
            {
                authorLabel.Text = "@" + tweet.Author.ScreenName;
            }

            if (tweetLabel.InvokeRequired)
            {
                this.Invoke((MethodInvoker)delegate
                {
                    tweetLabel.Text = tweet.Text;
                });
            }
            else
            {
                tweetLabel.Text = tweet.Text;
            }

            if (replyLabel.InvokeRequired)
            {
                this.Invoke((MethodInvoker)delegate
                {
                    replyLabel.Text = "@" + tweet.Author.ScreenName + " " + replyTextBox.Text;
                });
            }
            else
            {
                replyLabel.Text = "@" + tweet.Author.ScreenName + " " + replyTextBox.Text;
            }

            if (authorPictureBox.InvokeRequired)
            {
                this.Invoke((MethodInvoker)delegate
                {
                    authorPictureBox.Image = null;
                });
            }
            else
            {
                authorPictureBox.Image = null;
            }

            BackgroundWorker pictureBw = new BackgroundWorker();
            pictureBw.DoWork += new DoWorkEventHandler(pictureBw_DoWork);
            pictureBw.RunWorkerAsync(tweet);
        }