twitter auth optisations
This commit is contained in:
parent
55b8244d13
commit
702bb3b042
1 changed files with 11 additions and 11 deletions
|
@ -1,6 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Timers;
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using BirdsiteLive.Common.Settings;
|
using BirdsiteLive.Common.Settings;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
@ -12,8 +12,6 @@ namespace BirdsiteLive.Twitter.Tools
|
||||||
{
|
{
|
||||||
public interface ITwitterAuthenticationInitializer
|
public interface ITwitterAuthenticationInitializer
|
||||||
{
|
{
|
||||||
String BearerToken { get; }
|
|
||||||
String GuestToken { get; }
|
|
||||||
Task EnsureAuthenticationIsInitialized();
|
Task EnsureAuthenticationIsInitialized();
|
||||||
Task<HttpClient> MakeHttpClient();
|
Task<HttpClient> MakeHttpClient();
|
||||||
}
|
}
|
||||||
|
@ -24,14 +22,12 @@ namespace BirdsiteLive.Twitter.Tools
|
||||||
private static bool _initialized;
|
private static bool _initialized;
|
||||||
private static System.Timers.Timer aTimer;
|
private static System.Timers.Timer aTimer;
|
||||||
private readonly HttpClient _httpClient = new HttpClient();
|
private readonly HttpClient _httpClient = new HttpClient();
|
||||||
private HttpClient _twitterClient;
|
private List<HttpClient> _twitterClients = new List<HttpClient>();
|
||||||
private String _token;
|
private List<String> _tokens = new List<string>();
|
||||||
|
static Random rnd = new Random();
|
||||||
public String BearerToken {
|
public String BearerToken {
|
||||||
get { return "AAAAAAAAAAAAAAAAAAAAAPYXBAAAAAAACLXUNDekMxqa8h%2F40K4moUkGsoc%3DTYfbDKbT3jJPCEVnMYqilB28NHfOPqkca3qaAxGfsyKCs0wRbw"; }
|
get { return "AAAAAAAAAAAAAAAAAAAAAPYXBAAAAAAACLXUNDekMxqa8h%2F40K4moUkGsoc%3DTYfbDKbT3jJPCEVnMYqilB28NHfOPqkca3qaAxGfsyKCs0wRbw"; }
|
||||||
}
|
}
|
||||||
public String GuestToken {
|
|
||||||
get { return _token; }
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Ctor
|
#region Ctor
|
||||||
public TwitterAuthenticationInitializer(ILogger<TwitterAuthenticationInitializer> logger)
|
public TwitterAuthenticationInitializer(ILogger<TwitterAuthenticationInitializer> logger)
|
||||||
|
@ -63,7 +59,10 @@ namespace BirdsiteLive.Twitter.Tools
|
||||||
client.DefaultRequestHeaders.TryAddWithoutValidation("Referer", "https://twitter.com/");
|
client.DefaultRequestHeaders.TryAddWithoutValidation("Referer", "https://twitter.com/");
|
||||||
client.DefaultRequestHeaders.TryAddWithoutValidation("x-twitter-active-user", "yes");
|
client.DefaultRequestHeaders.TryAddWithoutValidation("x-twitter-active-user", "yes");
|
||||||
|
|
||||||
_twitterClient = client;
|
_twitterClients.Add(client);
|
||||||
|
|
||||||
|
if (_twitterClients.Count > 10)
|
||||||
|
_twitterClients.RemoveAt(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<(string, string)> GetCred()
|
private async Task<(string, string)> GetCred()
|
||||||
|
@ -104,9 +103,10 @@ namespace BirdsiteLive.Twitter.Tools
|
||||||
|
|
||||||
public async Task<HttpClient> MakeHttpClient()
|
public async Task<HttpClient> MakeHttpClient()
|
||||||
{
|
{
|
||||||
if (_twitterClient == null)
|
if (_twitterClients.Count < 3)
|
||||||
await RefreshCred();
|
await RefreshCred();
|
||||||
return _twitterClient;
|
int r = rnd.Next(_twitterClients.Count);
|
||||||
|
return _twitterClients[r];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue