little rate limiting for twitter auth
This commit is contained in:
parent
fe1dce6300
commit
f554269cba
2 changed files with 30 additions and 16 deletions
|
@ -7,6 +7,7 @@
|
|||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="5.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Http" Version="5.0.0" />
|
||||
<PackageReference Include="System.Threading.RateLimiting" Version="7.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
@ -8,6 +8,7 @@ using Microsoft.Extensions.Logging;
|
|||
using System.Net.Http;
|
||||
using System.Net;
|
||||
using System.Text.Json;
|
||||
using System.Threading.RateLimiting;
|
||||
|
||||
namespace BirdsiteLive.Twitter.Tools
|
||||
{
|
||||
|
@ -27,6 +28,8 @@ namespace BirdsiteLive.Twitter.Tools
|
|||
private List<HttpClient> _twitterClients = new List<HttpClient>();
|
||||
private List<String> _tokens = new List<string>();
|
||||
static Random rnd = new Random();
|
||||
private RateLimiter _rateLimiter;
|
||||
static SemaphoreSlim semaphoreSlim = new SemaphoreSlim(1, 1);
|
||||
private const int _targetClients = 3;
|
||||
public String BearerToken {
|
||||
get { return "AAAAAAAAAAAAAAAAAAAAAPYXBAAAAAAACLXUNDekMxqa8h%2F40K4moUkGsoc%3DTYfbDKbT3jJPCEVnMYqilB28NHfOPqkca3qaAxGfsyKCs0wRbw"; }
|
||||
|
@ -68,6 +71,10 @@ namespace BirdsiteLive.Twitter.Tools
|
|||
}
|
||||
|
||||
private async Task RefreshCred()
|
||||
{
|
||||
|
||||
await semaphoreSlim.WaitAsync();
|
||||
try
|
||||
{
|
||||
(string bearer, string guest) = await GetCred();
|
||||
|
||||
|
@ -86,6 +93,12 @@ namespace BirdsiteLive.Twitter.Tools
|
|||
_twitterClients.RemoveAt(0);
|
||||
_tokens.RemoveAt(0);
|
||||
}
|
||||
|
||||
}
|
||||
finally
|
||||
{
|
||||
semaphoreSlim.Release();
|
||||
}
|
||||
}
|
||||
|
||||
private async Task<(string, string)> GetCred()
|
||||
|
|
Loading…
Add table
Reference in a new issue