diff --git a/src/BirdsiteLive.ActivityPub/Models/Actor.cs b/src/BirdsiteLive.ActivityPub/Models/Actor.cs index 713ea89..8e9b6cd 100644 --- a/src/BirdsiteLive.ActivityPub/Models/Actor.cs +++ b/src/BirdsiteLive.ActivityPub/Models/Actor.cs @@ -1,5 +1,8 @@ -using System.Net; +using System; +using System.Collections.Generic; +using System.Net; using BirdsiteLive.ActivityPub.Converters; +using BirdsiteLive.ActivityPub.Models; using Newtonsoft.Json; namespace BirdsiteLive.ActivityPub @@ -25,5 +28,6 @@ namespace BirdsiteLive.ActivityPub public Image image { get; set; } public EndPoints endpoints { get; set; } public UserAttachment[] attachment { get; set; } + public List tag; } } diff --git a/src/BirdsiteLive.ActivityPub/Models/Tag.cs b/src/BirdsiteLive.ActivityPub/Models/Tag.cs index 0699c97..34be51c 100644 --- a/src/BirdsiteLive.ActivityPub/Models/Tag.cs +++ b/src/BirdsiteLive.ActivityPub/Models/Tag.cs @@ -1,8 +1,19 @@ -namespace BirdsiteLive.ActivityPub.Models +using System; + +namespace BirdsiteLive.ActivityPub.Models { public class Tag { + public TagResource icon { get; set; } = null; + public string id { get; set; } public string type { get; set; } //Hashtag public string href { get; set; } //https://mastodon.social/tags/app public string name { get; set; } //#app + public DateTime updated { get; set; } = default(DateTime); + } + + public class TagResource + { + public string type { get; set; } + public string url { get; set; } } } \ No newline at end of file diff --git a/src/BirdsiteLive.Domain/UserService.cs b/src/BirdsiteLive.Domain/UserService.cs index f0fa430..c3817ed 100644 --- a/src/BirdsiteLive.Domain/UserService.cs +++ b/src/BirdsiteLive.Domain/UserService.cs @@ -7,6 +7,7 @@ using System.Text; using System.Threading.Tasks; using BirdsiteLive.ActivityPub; using BirdsiteLive.ActivityPub.Converters; +using BirdsiteLive.ActivityPub.Models; using BirdsiteLive.Common.Regexes; using BirdsiteLive.Common.Settings; using BirdsiteLive.Cryptography; @@ -140,6 +141,27 @@ namespace BirdsiteLive.Domain sharedInbox = $"https://{_instanceSettings.Domain}/inbox" } }; + + if (twitterUser.Verified) + { + user.tag = new List + { + new Tag + { + icon = new TagResource + { + type = "Image", + url = "https://" + _instanceSettings.Domain + "/verified.png" + }, + id = "https://" + _instanceSettings.Domain + "/verified.png", + name = ":verified:", + type = "Emoji" + } + }; + + user.name += " :verified:"; + } + return user; } diff --git a/src/BirdsiteLive.Twitter/Models/TwitterUser.cs b/src/BirdsiteLive.Twitter/Models/TwitterUser.cs index b41a2ae..45a82ae 100644 --- a/src/BirdsiteLive.Twitter/Models/TwitterUser.cs +++ b/src/BirdsiteLive.Twitter/Models/TwitterUser.cs @@ -12,5 +12,6 @@ public string ProfileBannerURL { get; set; } public bool Protected { get; set; } public bool Sensitive { get; set; } + public bool Verified { get; set; } } } \ No newline at end of file diff --git a/src/BirdsiteLive.Twitter/TwitterUserService.cs b/src/BirdsiteLive.Twitter/TwitterUserService.cs index 2370cea..d80f1a8 100644 --- a/src/BirdsiteLive.Twitter/TwitterUserService.cs +++ b/src/BirdsiteLive.Twitter/TwitterUserService.cs @@ -67,7 +67,8 @@ namespace BirdsiteLive.Twitter ProfileImageUrl = user.ProfileImageUrlFullSize.Replace("http://", "https://"), ProfileBackgroundImageUrl = user.ProfileBackgroundImageUrlHttps, ProfileBannerURL = user.ProfileBannerURL, - Protected = user.Protected + Protected = user.Protected, + Verified = user.Verified }; } } diff --git a/src/BirdsiteLive/wwwroot/verified.png b/src/BirdsiteLive/wwwroot/verified.png new file mode 100644 index 0000000..e994d9a Binary files /dev/null and b/src/BirdsiteLive/wwwroot/verified.png differ