Skip to content

Commit

Permalink
Merge pull request #92 from NicolasConstant/develop
Browse files Browse the repository at this point in the history
0.14.5 PR
  • Loading branch information
NicolasConstant authored Feb 16, 2021
2 parents 7a88b80 + bde9c0c commit 4fbb691
Show file tree
Hide file tree
Showing 6 changed files with 54 additions and 13 deletions.
44 changes: 37 additions & 7 deletions src/BirdsiteLive.Pipeline/Processors/SaveProgressionProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,57 @@
using BirdsiteLive.DAL.Contracts;
using BirdsiteLive.Pipeline.Contracts;
using BirdsiteLive.Pipeline.Models;
using Microsoft.Extensions.Logging;

namespace BirdsiteLive.Pipeline.Processors
{
public class SaveProgressionProcessor : ISaveProgressionProcessor
{
private readonly ITwitterUserDal _twitterUserDal;

private readonly ILogger<SaveProgressionProcessor> _logger;

#region Ctor
public SaveProgressionProcessor(ITwitterUserDal twitterUserDal)
public SaveProgressionProcessor(ITwitterUserDal twitterUserDal, ILogger<SaveProgressionProcessor> logger)
{
_twitterUserDal = twitterUserDal;
_logger = logger;
}
#endregion

public async Task ProcessAsync(UserWithTweetsToSync userWithTweetsToSync, CancellationToken ct)
{
var userId = userWithTweetsToSync.User.Id;
var lastPostedTweet = userWithTweetsToSync.Tweets.Select(x => x.Id).Max();
var minimumSync = userWithTweetsToSync.Followers.Select(x => x.FollowingsSyncStatus[userId]).Min();
var now = DateTime.UtcNow;
await _twitterUserDal.UpdateTwitterUserAsync(userId, lastPostedTweet, minimumSync, now);
try
{
if (userWithTweetsToSync.Tweets.Length == 0)
{
_logger.LogWarning("No tweets synchronized");
return;
}
if(userWithTweetsToSync.Followers.Length == 0)
{
_logger.LogWarning("No Followers found for {User}", userWithTweetsToSync.User.Acct);
return;
}

var userId = userWithTweetsToSync.User.Id;
var followingSyncStatuses = userWithTweetsToSync.Followers.Select(x => x.FollowingsSyncStatus[userId]).ToList();

if (followingSyncStatuses.Count == 0)
{
_logger.LogWarning("No Followers sync found for {User}, Id: {UserId}", userWithTweetsToSync.User.Acct, userId);
return;
}

var lastPostedTweet = userWithTweetsToSync.Tweets.Select(x => x.Id).Max();
var minimumSync = followingSyncStatuses.Min();
var now = DateTime.UtcNow;
await _twitterUserDal.UpdateTwitterUserAsync(userId, lastPostedTweet, minimumSync, now);
}
catch (Exception e)
{
_logger.LogError(e, "SaveProgressionProcessor.ProcessAsync() Exception");
throw;
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ public ApiStatistics GetStatistics()
UserCallsCountMin = userCalls.Any() ? userCalls.Min() : 0,
UserCallsCountAvg = userCalls.Any() ? (int)userCalls.Average() : 0,
UserCallsCountMax = userCalls.Any() ? userCalls.Max() : 0,
UserCallsMax = 900,
UserCallsMax = 300,
TweetCallsCountMin = tweetCalls.Any() ? tweetCalls.Min() : 0,
TweetCallsCountAvg = tweetCalls.Any() ? (int)tweetCalls.Average() : 0,
TweetCallsCountMax = tweetCalls.Any() ? tweetCalls.Max() : 0,
Expand Down
2 changes: 1 addition & 1 deletion src/BirdsiteLive/BirdsiteLive.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<TargetFramework>netcoreapp3.1</TargetFramework>
<UserSecretsId>d21486de-a812-47eb-a419-05682bb68856</UserSecretsId>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<Version>0.14.4</Version>
<Version>0.14.5</Version>
</PropertyGroup>

<ItemGroup>
Expand Down
1 change: 1 addition & 0 deletions src/BirdsiteLive/Services/FederationService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
}
finally
{
await Task.Delay(1000 * 30);
_applicationLifetime.StopApplication();
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/BirdsiteLive/appsettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"AdminEmail": "[email protected]",
"ResolveMentionsInProfiles": true,
"PublishReplies": false,
"MaxUsersCapacity": 1400
"MaxUsersCapacity": 800
},
"Db": {
"Type": "postgres",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
using BirdsiteLive.Pipeline.Processors;
using BirdsiteLive.Twitter.Models;
using Castle.DynamicProxy.Contributors;
using Microsoft.Extensions.Logging;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;

Expand Down Expand Up @@ -53,6 +54,8 @@ public async Task ProcessAsync_Test()
},
User = user
};

var loggerMock = new Mock<ILogger<SaveProgressionProcessor>>();
#endregion

#region Mocks
Expand All @@ -67,11 +70,12 @@ public async Task ProcessAsync_Test()
.Returns(Task.CompletedTask);
#endregion

var processor = new SaveProgressionProcessor(twitterUserDalMock.Object);
var processor = new SaveProgressionProcessor(twitterUserDalMock.Object, loggerMock.Object);
await processor.ProcessAsync(usersWithTweets, CancellationToken.None);

#region Validations
twitterUserDalMock.VerifyAll();
loggerMock.VerifyAll();
#endregion
}

Expand Down Expand Up @@ -129,13 +133,16 @@ public async Task ProcessAsync_PartiallySynchronized_Test()
It.IsAny<DateTime>()
))
.Returns(Task.CompletedTask);

var loggerMock = new Mock<ILogger<SaveProgressionProcessor>>();
#endregion

var processor = new SaveProgressionProcessor(twitterUserDalMock.Object);
var processor = new SaveProgressionProcessor(twitterUserDalMock.Object, loggerMock.Object);
await processor.ProcessAsync(usersWithTweets, CancellationToken.None);

#region Validations
twitterUserDalMock.VerifyAll();
loggerMock.VerifyAll();
#endregion
}

Expand Down Expand Up @@ -201,13 +208,16 @@ public async Task ProcessAsync_PartiallySynchronized_MultiUsers_Test()
It.IsAny<DateTime>()
))
.Returns(Task.CompletedTask);

var loggerMock = new Mock<ILogger<SaveProgressionProcessor>>();
#endregion

var processor = new SaveProgressionProcessor(twitterUserDalMock.Object);
var processor = new SaveProgressionProcessor(twitterUserDalMock.Object, loggerMock.Object);
await processor.ProcessAsync(usersWithTweets, CancellationToken.None);

#region Validations
twitterUserDalMock.VerifyAll();
loggerMock.VerifyAll();
#endregion
}
}
Expand Down

0 comments on commit 4fbb691

Please sign in to comment.