예제 #1
0
        public User(Mastonet.Entities.Account cUser)
        {
            CreateAt        = cUser.CreatedAt;
            Description     = ContentRegex.Replace(LinkRegex.Replace(cUser.Note.Replace("<br>", "\n"), x => " " + x.Groups[1].Value + " "), "").Trim();
            Entities        = new UserEntities();
            FavouritesCount = 0;
            FollowersCount  = cUser.FollowersCount;
            FriendsCount    = cUser.FollowingCount;
            Id = cUser.Id;
            IsFollowRequestSent = false;
            IsMuting            = false;
            IsProtected         = cUser.Locked;
            IsVerified          = false;
            Language            = "en";
            ListedCount         = 0;
            Location            = "";
            var name = string.IsNullOrWhiteSpace(cUser.DisplayName) ? cUser.UserName : cUser.DisplayName;

            name = EmojiPatterns.LightValidEmoji.Replace(name,
                                                         x => EmojiPatterns.EmojiDictionary.TryGetValue(x.Groups[2].Value, out string val) ? val : x.Value);
            Name = name;
            ProfileBackgroundColor    = "C0DEED";
            ProfileBackgroundImageUrl = "http://localhost/";
            ProfileBannerUrl          = cUser.HeaderUrl.StartsWith("http") ? cUser.HeaderUrl : "http://localhost/";
            ProfileImageUrl           = cUser.AvatarUrl.StartsWith("http") ? cUser.AvatarUrl : "http://localhost/";
            ScreenName    = cUser.AccountName;
            StatusesCount = cUser.StatusesCount;
            TimeZone      = null;
            Url           = cUser.ProfileUrl;
        }
예제 #2
0
        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;
        }
예제 #3
0
 private string GetName(Mastonet.Entities.Account account)
 {
     if (account.DisplayName != "")
     {
         return(account.DisplayName);
     }
     else
     {
         return(account.UserName);
     }
 }
예제 #4
0
        public static MastodonAccount ToMastodonAccount(this Mastonet.Entities.Account self)
        {
            if (self == null)
            {
                return(null);
            }

            return(new MastodonAccount(
                       id: self.Id,
                       accountName: self.AccountName,
                       url: self.ProfileUrl,
                       displayName: self.DisplayName,
                       avatarUrl: self.AvatarUrl
                       ));
        }