2021-02-27 22:12:50 -05:00
|
|
|
|
using System.Linq;
|
|
|
|
|
using BirdsiteLive.Common.Settings;
|
|
|
|
|
using BirdsiteLive.Domain.Tools;
|
|
|
|
|
|
|
|
|
|
namespace BirdsiteLive.Domain.Repository
|
|
|
|
|
{
|
|
|
|
|
public interface IPublicationRepository
|
|
|
|
|
{
|
|
|
|
|
bool IsUnlisted(string twitterAcct);
|
2021-07-16 11:47:52 -06:00
|
|
|
|
bool IsSensitive(string twitterAcct);
|
2021-02-27 22:12:50 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class PublicationRepository : IPublicationRepository
|
|
|
|
|
{
|
|
|
|
|
private readonly string[] _unlistedAccounts;
|
2021-07-16 11:47:52 -06:00
|
|
|
|
private readonly string[] _sensitiveAccounts;
|
2021-02-27 22:12:50 -05:00
|
|
|
|
|
|
|
|
|
#region Ctor
|
|
|
|
|
public PublicationRepository(InstanceSettings settings)
|
|
|
|
|
{
|
|
|
|
|
_unlistedAccounts = PatternsParser.Parse(settings.UnlistedTwitterAccounts);
|
2021-07-16 11:47:52 -06:00
|
|
|
|
_sensitiveAccounts = PatternsParser.Parse(settings.SensitiveTwitterAccounts);
|
2021-02-27 22:12:50 -05:00
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
public bool IsUnlisted(string twitterAcct)
|
|
|
|
|
{
|
|
|
|
|
if (_unlistedAccounts == null || !_unlistedAccounts.Any()) return false;
|
|
|
|
|
|
|
|
|
|
return _unlistedAccounts.Contains(twitterAcct.ToLowerInvariant());
|
|
|
|
|
}
|
2021-07-16 11:47:52 -06:00
|
|
|
|
|
|
|
|
|
public bool IsSensitive(string twitterAcct)
|
|
|
|
|
{
|
|
|
|
|
if (_sensitiveAccounts == null || !_sensitiveAccounts.Any()) return false;
|
|
|
|
|
|
|
|
|
|
return _sensitiveAccounts.Contains(twitterAcct.ToLowerInvariant());
|
|
|
|
|
}
|
2021-02-27 22:12:50 -05:00
|
|
|
|
}
|
2021-07-16 11:47:52 -06:00
|
|
|
|
}
|