diff --git a/src/Jackett/ApiKey.cs b/src/Jackett/ApiKey.cs new file mode 100644 index 000000000..9cd8419d9 --- /dev/null +++ b/src/Jackett/ApiKey.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography; +using System.Text; +using System.Threading.Tasks; + +namespace Jackett +{ + public class ApiKey + { + const string chars = "abcdefghijklmnopqrstuvwxyz0123456789"; + + public static string Generate() + { + var randBytes = new byte[32]; + var rngCsp = new RNGCryptoServiceProvider(); + rngCsp.GetBytes(randBytes); + var key = ""; + foreach (var b in randBytes) + { + key += chars[b % chars.Length]; + } + return key; + + } + } +} diff --git a/src/Jackett/Indexers/BitMeTV.cs b/src/Jackett/Indexers/BitMeTV.cs index 243307c4f..611eab408 100644 --- a/src/Jackett/Indexers/BitMeTV.cs +++ b/src/Jackett/Indexers/BitMeTV.cs @@ -58,7 +58,7 @@ namespace Jackett client = new HttpClient(handler); } - public string DisplayName { get { return "BitMeTV.org"; } } + public string DisplayName { get { return "BitMeTV"; } } public string DisplayDescription { get { return "TV Episode specialty tracker"; } } public Uri SiteLink { get { return new Uri("https://bitmetv.org"); } } @@ -102,6 +102,7 @@ namespace Jackett var errorMessage = messageEl.Text(); var captchaImage = await client.GetByteArrayAsync(CaptchaUrl); config.CaptchaImage.Value = captchaImage; + config.CaptchaText.Value = ""; throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config); } else @@ -114,6 +115,8 @@ namespace Jackett if (OnSaveConfigurationRequested != null) OnSaveConfigurationRequested(configSaveData); + + IsConfigured = true; } }); } @@ -123,6 +126,8 @@ namespace Jackett return Task.Run(async () => { var result = await client.GetStringAsync(new Uri(SearchUrl)); + if (result.Contains("