public DirectMessage(Mastonet.Entities.Status cDirectMessage, Mastonet.Entities.Account cRecipient) { CreatedAt = cDirectMessage.CreatedAt; var urlEntities = new List <string>(); var text = cDirectMessage.Content.Replace("<br />", "\n"); text = Status.LinkRegex.Replace(text, match => { var userMention = cDirectMessage.Mentions.Where(x => x.Url == match.Groups[2].Value || x.Url.Replace("/@", "/users/") == match.Groups[2].Value).ToArray(); if (userMention.Length != 0) { return(" @" + userMention.First().AccountName + " "); } urlEntities.Add(match.Groups[2].Value); return(" " + match.Groups[1]?.Value + match.Groups[3].Value + " "); }); text = Status.ContentRegex.Replace(text, "").Trim(); text = EmojiPatterns.LightValidEmoji.Replace(text, x => EmojiPatterns.EmojiDictionary.TryGetValue(x.Groups[2].Value, out string val) ? val : x.Value); Text = text; Entities = new Entities(cDirectMessage.MediaAttachments, cDirectMessage.Mentions, cDirectMessage.Tags, urlEntities, cDirectMessage.Content); Id = cDirectMessage.Id; Recipient = new User(cRecipient); Sender = new User(cDirectMessage.Account); PossiblySensitive = cDirectMessage.Sensitive ?? false; }
public RetweetInformation(Mastonet.Entities.Status cOrigStatus) { if (cOrigStatus.Reblog == null) { return; } User = new User(cOrigStatus.Account); Id = cOrigStatus.Id; CreatedAt = cOrigStatus.CreatedAt; }
public Status(Mastonet.Entities.Status cOrigStatus) { var cStatus = cOrigStatus; if (cStatus.Reblog != null) { cStatus = cStatus.Reblog; } CreatedAt = cStatus.CreatedAt; FavoriteCount = cStatus.FavouritesCount; RetweetCount = cStatus.ReblogCount; InReplyToStatusId = cStatus.InReplyToId ?? 0; InReplyToScreenName = ""; InReplyToUserId = cStatus.InReplyToAccountId ?? 0; Id = cStatus.Id; var urlEntities = new List <string>(); var text = cStatus.Content.Replace("<br />", "\n"); text = LinkRegex.Replace(text, match => { var userMention = cStatus.Mentions.Where(x => x.Url == match.Groups[2].Value || x.Url.Replace("/@", "/users/") == match.Groups[2].Value).ToArray(); if (userMention.Length != 0) { return(" @" + userMention.First().AccountName + " "); } urlEntities.Add(match.Groups[2].Value); return(" " + match.Groups[1]?.Value + match.Groups[3].Value + " "); }); text = ContentRegex.Replace(text, "").Trim(); text = EmojiPatterns.LightValidEmoji.Replace(text, x => EmojiPatterns.EmojiDictionary.TryGetValue(x.Groups[2].Value, out string val) ? val : x.Value); Text = text; Entities = new Entities(cStatus.MediaAttachments, cStatus.Mentions, cStatus.Tags, urlEntities, text); User = cStatus.Account != null ? new User(cStatus.Account) : null; IsFavorited = cStatus.Favourited ?? false; IsRetweeted = cStatus.Reblogged ?? false; PossiblySensitive = cStatus.Sensitive ?? false; RetweetInformation = cOrigStatus.Reblog != null ? new RetweetInformation(cOrigStatus) : null; HasRetweetInformation = cOrigStatus.Reblog != null; MentionStatus = null; QuotedStatus = null; QuotedStatusId = 0; Url = cStatus.Url; Source = cStatus.Application != null ? cStatus.Application.Name : "Web"; }
public Toot(Mastonet.Entities.Status toot) { InitializeComponent(); // Icon var bitmapImage = new BitmapImage(); bitmapImage.BeginInit(); bitmapImage.UriSource = new Uri(toot.Account.AvatarUrl); bitmapImage.EndInit(); iconImage.Source = bitmapImage; // Name nameTextBlock.Text = $"{toot.Account.DisplayName} (@{toot.Account.AccountName})"; // Content mainContent.Text = ParseContent(toot.Content); // date dateTextBlock.Text = toot.CreatedAt.AddHours(9).ToString(); }
/// <summary> /// Mastonet の Status を MastodonStatus に変換する /// </summary> public static MastodonStatus ToMastodonStatus(this Mastonet.Entities.Status self) { if (self == null) { return(null); } return(new MastodonStatus( id: self.Id, reblog: self.Reblog.ToMastodonStatus(), content: self.Content, favorited: self.Favourited ?? false, reblogged: self.Reblogged ?? false, account: self.Account.ToMastodonAccount(), replyToId: self.InReplyToId, replyToAccountId: self.InReplyToAccountId, mediaAttachments: self.MediaAttachments.Select(x => x.ToMastodonAttachment()), tags: self.Tags.Select(x => x.ToMastodonTag()), createdAt: self.CreatedAt )); }