diff --git a/src/BirdsiteLive.ActivityPub/Models/Actor.cs b/src/BirdsiteLive.ActivityPub/Models/Actor.cs index 59ea71f..d517dc8 100644 --- a/src/BirdsiteLive.ActivityPub/Models/Actor.cs +++ b/src/BirdsiteLive.ActivityPub/Models/Actor.cs @@ -1,4 +1,5 @@ -using BirdsiteLive.ActivityPub.Converters; +using System.Net; +using BirdsiteLive.ActivityPub.Converters; using Newtonsoft.Json; namespace BirdsiteLive.ActivityPub @@ -19,5 +20,6 @@ namespace BirdsiteLive.ActivityPub public PublicKey publicKey { get; set; } public Image icon { get; set; } public Image image { get; set; } + public EndPoints endpoints { get; set; } } } diff --git a/src/BirdsiteLive.ActivityPub/Models/EndPoints.cs b/src/BirdsiteLive.ActivityPub/Models/EndPoints.cs new file mode 100644 index 0000000..8d671d5 --- /dev/null +++ b/src/BirdsiteLive.ActivityPub/Models/EndPoints.cs @@ -0,0 +1,7 @@ +namespace BirdsiteLive.ActivityPub +{ + public class EndPoints + { + public string sharedInbox { get; set; } + } +} \ No newline at end of file diff --git a/src/BirdsiteLive.Domain/UserService.cs b/src/BirdsiteLive.Domain/UserService.cs index 2c0b045..25b8ad1 100644 --- a/src/BirdsiteLive.Domain/UserService.cs +++ b/src/BirdsiteLive.Domain/UserService.cs @@ -27,18 +27,19 @@ namespace BirdsiteLive.Domain private readonly IProcessFollowUser _processFollowUser; private readonly IProcessUndoFollowUser _processUndoFollowUser; + private readonly InstanceSettings _instanceSettings; private readonly ICryptoService _cryptoService; private readonly IActivityPubService _activityPubService; - private readonly string _host; #region Ctor public UserService(InstanceSettings instanceSettings, ICryptoService cryptoService, IActivityPubService activityPubService, IProcessFollowUser processFollowUser, IProcessUndoFollowUser processUndoFollowUser) { + _instanceSettings = instanceSettings; _cryptoService = cryptoService; _activityPubService = activityPubService; _processFollowUser = processFollowUser; _processUndoFollowUser = processUndoFollowUser; - _host = $"https://{instanceSettings.Domain.Replace("https://",string.Empty).Replace("http://", string.Empty).TrimEnd('/')}"; + //_host = $"https://{instanceSettings.Domain.Replace("https://",string.Empty).Replace("http://", string.Empty).TrimEnd('/')}"; } #endregion @@ -46,17 +47,17 @@ namespace BirdsiteLive.Domain { var user = new Actor { - id = $"{_host}/users/{twitterUser.Acct}", + id = $"https://{_instanceSettings.Domain}/users/{twitterUser.Acct}", type = "Person", preferredUsername = twitterUser.Acct, name = twitterUser.Name, - inbox = $"{_host}/users/{twitterUser.Acct}/inbox", + inbox = $"https://{_instanceSettings.Domain}/users/{twitterUser.Acct}/inbox", summary = twitterUser.Description, - url = $"{_host}/@{twitterUser.Acct}", + url = $"https://{_instanceSettings.Domain}/@{twitterUser.Acct}", publicKey = new PublicKey() { - id = $"{_host}/users/{twitterUser.Acct}#main-key", - owner = $"{_host}/users/{twitterUser.Acct}", + id = $"https://{_instanceSettings.Domain}/users/{twitterUser.Acct}#main-key", + owner = $"https://{_instanceSettings.Domain}/users/{twitterUser.Acct}", publicKeyPem = _cryptoService.GetUserPem(twitterUser.Acct) }, icon = new Image @@ -68,6 +69,10 @@ namespace BirdsiteLive.Domain { mediaType = "image/jpeg", url = twitterUser.ProfileBannerURL + }, + endpoints = new EndPoints + { + sharedInbox = $"{_instanceSettings.Domain}/inbox" } }; return user; diff --git a/src/BirdsiteLive/Controllers/InboxController.cs b/src/BirdsiteLive/Controllers/InboxController.cs index 82de7b3..9d7783c 100644 --- a/src/BirdsiteLive/Controllers/InboxController.cs +++ b/src/BirdsiteLive/Controllers/InboxController.cs @@ -19,7 +19,7 @@ namespace BirdsiteLive.Controllers using (var reader = new StreamReader(Request.Body)) { var body = await reader.ReadToEndAsync(); - + //System.IO.File.WriteAllText($@"C:\apdebug\inbox\{Guid.NewGuid()}.json", body); }