From d0f817e1a8c83f571defe287554565bddd63e0e5 Mon Sep 17 00:00:00 2001 From: Nicolas Constant Date: Tue, 13 Apr 2021 01:25:36 -0400 Subject: [PATCH 1/5] fix url missing with some AP softwares --- .gitignore | 1 + src/BirdsiteLive.Domain/ActivityPubService.cs | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 086c047..a6584fc 100644 --- a/.gitignore +++ b/.gitignore @@ -351,3 +351,4 @@ MigrationBackup/ # Ionide (cross platform F# VS Code tools) working folder .ionide/ +/src/BSLManager/Properties/launchSettings.json diff --git a/src/BirdsiteLive.Domain/ActivityPubService.cs b/src/BirdsiteLive.Domain/ActivityPubService.cs index fa3bf70..37fe0b5 100644 --- a/src/BirdsiteLive.Domain/ActivityPubService.cs +++ b/src/BirdsiteLive.Domain/ActivityPubService.cs @@ -46,7 +46,10 @@ namespace BirdsiteLive.Domain httpClient.DefaultRequestHeaders.Add("Accept", "application/activity+json"); var result = await httpClient.GetAsync(objectId); var content = await result.Content.ReadAsStringAsync(); - return JsonConvert.DeserializeObject(content); + + var actor = JsonConvert.DeserializeObject(content); + if (string.IsNullOrWhiteSpace(actor.url)) actor.url = objectId; + return actor; } public async Task PostNewNoteActivity(Note note, string username, string noteId, string targetHost, string targetInbox) From 32a4a6356b6e1094dbfff810831ba5a55be7c2be Mon Sep 17 00:00:00 2001 From: Nicolas Constant Date: Tue, 13 Apr 2021 01:28:07 -0400 Subject: [PATCH 2/5] road to 0.16.2 --- src/BirdsiteLive/BirdsiteLive.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BirdsiteLive/BirdsiteLive.csproj b/src/BirdsiteLive/BirdsiteLive.csproj index 9daebca..dd17829 100644 --- a/src/BirdsiteLive/BirdsiteLive.csproj +++ b/src/BirdsiteLive/BirdsiteLive.csproj @@ -4,7 +4,7 @@ netcoreapp3.1 d21486de-a812-47eb-a419-05682bb68856 Linux - 0.16.1 + 0.16.2 From cad6c2018e97378363fd354e4e1565bf31caaf20 Mon Sep 17 00:00:00 2001 From: Nicolas Constant Date: Thu, 15 Apr 2021 19:39:33 -0400 Subject: [PATCH 3/5] fix warm up number --- .../Tools/MaxUsersNumberProvider.cs | 6 +++--- .../Tools/MaxUsersNumberProviderTests.cs | 15 +++++++++------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/BirdsiteLive.Pipeline/Tools/MaxUsersNumberProvider.cs b/src/BirdsiteLive.Pipeline/Tools/MaxUsersNumberProvider.cs index c84b7b1..1c7e7c4 100644 --- a/src/BirdsiteLive.Pipeline/Tools/MaxUsersNumberProvider.cs +++ b/src/BirdsiteLive.Pipeline/Tools/MaxUsersNumberProvider.cs @@ -16,6 +16,7 @@ namespace BirdsiteLive.Pipeline.Tools private int _totalUsersCount = -1; private int _warmUpIterations; + private const int WarmUpMaxCapacity = 200; #region Ctor public MaxUsersNumberProvider(InstanceSettings instanceSettings, ITwitterUserDal twitterUserDal) @@ -31,8 +32,7 @@ namespace BirdsiteLive.Pipeline.Tools if (_totalUsersCount == -1) { _totalUsersCount = await _twitterUserDal.GetTwitterUsersCountAsync(); - var warmUpMaxCapacity = _instanceSettings.MaxUsersCapacity / 4; - _warmUpIterations = warmUpMaxCapacity == 0 ? 0 : (int)(_totalUsersCount / (float)warmUpMaxCapacity); + _warmUpIterations = (int)(_totalUsersCount / (float)WarmUpMaxCapacity); } // Return if warm up ended @@ -40,7 +40,7 @@ namespace BirdsiteLive.Pipeline.Tools // Calculate warm up value var maxUsers = _warmUpIterations > 0 - ? _instanceSettings.MaxUsersCapacity / 4 + ? WarmUpMaxCapacity : _instanceSettings.MaxUsersCapacity; _warmUpIterations--; return maxUsers; diff --git a/src/Tests/BirdsiteLive.Pipeline.Tests/Tools/MaxUsersNumberProviderTests.cs b/src/Tests/BirdsiteLive.Pipeline.Tests/Tools/MaxUsersNumberProviderTests.cs index d48beb8..c2f52d0 100644 --- a/src/Tests/BirdsiteLive.Pipeline.Tests/Tools/MaxUsersNumberProviderTests.cs +++ b/src/Tests/BirdsiteLive.Pipeline.Tests/Tools/MaxUsersNumberProviderTests.cs @@ -30,17 +30,20 @@ namespace BirdsiteLive.Pipeline.Tests.Tools var provider = new MaxUsersNumberProvider(settings, twitterUserDalMock.Object); var result = await provider.GetMaxUsersNumberAsync(); - Assert.AreEqual(250, result); + Assert.AreEqual(200, result); result = await provider.GetMaxUsersNumberAsync(); - Assert.AreEqual(250, result); + Assert.AreEqual(200, result); result = await provider.GetMaxUsersNumberAsync(); - Assert.AreEqual(250, result); + Assert.AreEqual(200, result); result = await provider.GetMaxUsersNumberAsync(); - Assert.AreEqual(250, result); - + Assert.AreEqual(200, result); + + result = await provider.GetMaxUsersNumberAsync(); + Assert.AreEqual(200, result); + result = await provider.GetMaxUsersNumberAsync(); Assert.AreEqual(1000, result); @@ -63,7 +66,7 @@ namespace BirdsiteLive.Pipeline.Tests.Tools var twitterUserDalMock = new Mock(MockBehavior.Strict); twitterUserDalMock .Setup(x => x.GetTwitterUsersCountAsync()) - .ReturnsAsync(249); + .ReturnsAsync(199); #endregion var provider = new MaxUsersNumberProvider(settings, twitterUserDalMock.Object); From 77f4b49d9ac69831cc3f98c9a0d5a4d689e608ee Mon Sep 17 00:00:00 2001 From: Nicolas Constant Date: Thu, 15 Apr 2021 20:40:27 -0400 Subject: [PATCH 4/5] increasing user limit --- src/BirdsiteLive/appsettings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BirdsiteLive/appsettings.json b/src/BirdsiteLive/appsettings.json index e25c7ca..8b12018 100644 --- a/src/BirdsiteLive/appsettings.json +++ b/src/BirdsiteLive/appsettings.json @@ -20,7 +20,7 @@ "AdminEmail": "me@domain.name", "ResolveMentionsInProfiles": true, "PublishReplies": false, - "MaxUsersCapacity": 800, + "MaxUsersCapacity": 1500, "UnlistedTwitterAccounts": null }, "Db": { From ed7ac5303eefc232984cd0c5b7838841dc2ba3f5 Mon Sep 17 00:00:00 2001 From: Nicolas Constant Date: Thu, 15 Apr 2021 21:21:22 -0400 Subject: [PATCH 5/5] Added Trace Info --- src/BirdsiteLive/Controllers/InboxController.cs | 12 ++++++++++++ src/BirdsiteLive/Controllers/UsersController.cs | 9 ++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/BirdsiteLive/Controllers/InboxController.cs b/src/BirdsiteLive/Controllers/InboxController.cs index a0d8748..db055cf 100644 --- a/src/BirdsiteLive/Controllers/InboxController.cs +++ b/src/BirdsiteLive/Controllers/InboxController.cs @@ -5,12 +5,22 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; namespace BirdsiteLive.Controllers { [ApiController] public class InboxController : ControllerBase { + private readonly ILogger _logger; + + #region Ctor + public InboxController(ILogger logger) + { + _logger = logger; + } + #endregion + [Route("/inbox")] [HttpPost] public async Task Inbox() @@ -19,6 +29,8 @@ namespace BirdsiteLive.Controllers using (var reader = new StreamReader(Request.Body)) { var body = await reader.ReadToEndAsync(); + + _logger.LogTrace("Inbox: {Body}", body); //System.IO.File.WriteAllText($@"C:\apdebug\inbox\{Guid.NewGuid()}.json", body); } diff --git a/src/BirdsiteLive/Controllers/UsersController.cs b/src/BirdsiteLive/Controllers/UsersController.cs index a06b1e9..8240d7b 100644 --- a/src/BirdsiteLive/Controllers/UsersController.cs +++ b/src/BirdsiteLive/Controllers/UsersController.cs @@ -17,6 +17,7 @@ using BirdsiteLive.Twitter; using BirdsiteLive.Twitter.Models; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; using Microsoft.Extensions.Primitives; using Newtonsoft.Json; @@ -29,15 +30,17 @@ namespace BirdsiteLive.Controllers private readonly IUserService _userService; private readonly IStatusService _statusService; private readonly InstanceSettings _instanceSettings; + private readonly ILogger _logger; #region Ctor - public UsersController(ITwitterUserService twitterUserService, IUserService userService, IStatusService statusService, InstanceSettings instanceSettings, ITwitterTweetsService twitterTweetService) + public UsersController(ITwitterUserService twitterUserService, IUserService userService, IStatusService statusService, InstanceSettings instanceSettings, ITwitterTweetsService twitterTweetService, ILogger logger) { _twitterUserService = twitterUserService; _userService = userService; _statusService = statusService; _instanceSettings = instanceSettings; _twitterTweetService = twitterTweetService; + _logger = logger; } #endregion @@ -57,6 +60,8 @@ namespace BirdsiteLive.Controllers [Route("/users/{id}")] public IActionResult Index(string id) { + _logger.LogTrace("User Index: {Id}", id); + id = id.Trim(new[] { ' ', '@' }).ToLowerInvariant(); // Ensure valid username @@ -131,6 +136,8 @@ namespace BirdsiteLive.Controllers using (var reader = new StreamReader(Request.Body)) { var body = await reader.ReadToEndAsync(); + + _logger.LogTrace("User Inbox: {Body}", body); //System.IO.File.WriteAllText($@"C:\apdebug\{Guid.NewGuid()}.json", body); var activity = ApDeserializer.ProcessActivity(body);