diff --git a/src/BirdsiteLive.Common/Settings/InstanceSettings.cs b/src/BirdsiteLive.Common/Settings/InstanceSettings.cs index 9353398..a85d9e6 100644 --- a/src/BirdsiteLive.Common/Settings/InstanceSettings.cs +++ b/src/BirdsiteLive.Common/Settings/InstanceSettings.cs @@ -11,5 +11,7 @@ public string UnlistedTwitterAccounts { get; set; } public string SensitiveTwitterAccounts { get; set; } + + public int FailingTwitterUserCleanUpThreshold { get; set; } } } diff --git a/src/BirdsiteLive.Pipeline/Processors/RefreshTwitterUserStatusProcessor.cs b/src/BirdsiteLive.Pipeline/Processors/RefreshTwitterUserStatusProcessor.cs index b4883ab..dae9fe0 100644 --- a/src/BirdsiteLive.Pipeline/Processors/RefreshTwitterUserStatusProcessor.cs +++ b/src/BirdsiteLive.Pipeline/Processors/RefreshTwitterUserStatusProcessor.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using BirdsiteLive.Common.Settings; using BirdsiteLive.DAL.Contracts; using BirdsiteLive.DAL.Models; using BirdsiteLive.Moderation.Actions; @@ -12,17 +13,18 @@ namespace BirdsiteLive.Pipeline.Processors { public class RefreshTwitterUserStatusProcessor : IRefreshTwitterUserStatusProcessor { - private const int FetchingErrorCountThreshold = 300; private readonly ICachedTwitterUserService _twitterUserService; private readonly ITwitterUserDal _twitterUserDal; private readonly IRemoveTwitterAccountAction _removeTwitterAccountAction; + private readonly InstanceSettings _instanceSettings; #region Ctor - public RefreshTwitterUserStatusProcessor(ICachedTwitterUserService twitterUserService, ITwitterUserDal twitterUserDal, IRemoveTwitterAccountAction removeTwitterAccountAction) + public RefreshTwitterUserStatusProcessor(ICachedTwitterUserService twitterUserService, ITwitterUserDal twitterUserDal, IRemoveTwitterAccountAction removeTwitterAccountAction, InstanceSettings instanceSettings) { _twitterUserService = twitterUserService; _twitterUserDal = twitterUserDal; _removeTwitterAccountAction = removeTwitterAccountAction; + _instanceSettings = instanceSettings; } #endregion @@ -56,7 +58,7 @@ namespace BirdsiteLive.Pipeline.Processors var dbUser = await _twitterUserDal.GetTwitterUserAsync(user.Acct); dbUser.FetchingErrorCount++; - if (dbUser.FetchingErrorCount > FetchingErrorCountThreshold) + if (dbUser.FetchingErrorCount > _instanceSettings.FailingTwitterUserCleanUpThreshold) { await _removeTwitterAccountAction.ProcessAsync(user); } diff --git a/src/BirdsiteLive/appsettings.json b/src/BirdsiteLive/appsettings.json index 45f2b08..d510809 100644 --- a/src/BirdsiteLive/appsettings.json +++ b/src/BirdsiteLive/appsettings.json @@ -22,7 +22,8 @@ "PublishReplies": false, "MaxUsersCapacity": 1000, "UnlistedTwitterAccounts": null, - "SensitiveTwitterAccounts": null + "SensitiveTwitterAccounts": null, + "FailingTwitterUserCleanUpThreshold": 700 }, "Db": { "Type": "postgres",