private IEnumerator showNextCaptcha(DateTime retryDate, CaptchaData captchaData) { while (retryDate > DateTime.Now) { yield return(null); } Service.Get <EventDispatcher>().DispatchEvent(new CaptchaServiceEvents.CaptchaLoaded(captchaData)); }
public Task DeleteAsync(CaptchaData data) { if (data == null || data.Id == Guid.Empty) { return(TaskEx.CompletedTask); } var db = _redis.RedisConn.GetDatabase(); return(db.HashDeleteAsync(_redisKeyCaptchaById, data.Id.ToString())); }
public Task SetAsync(CaptchaData data) { if (data == null || data.Id == Guid.Empty) { return(TaskEx.CompletedTask); } var db = _redis.RedisConn.GetDatabase(); return(db.HashSetAsync(_redisKeyCaptchaById, data.Id.ToString(), VirtualRoot.JsonSerializer.Serialize(data))); }
public Task <List <CaptchaData> > GetAllAsync() { var db = _redis.RedisConn.GetDatabase(); return(db.HashGetAllAsync(_redisKeyCaptchaById).ContinueWith(t => { List <CaptchaData> list = new List <CaptchaData>(); foreach (var item in t.Result) { if (item.Value.HasValue) { CaptchaData data = VirtualRoot.JsonSerializer.Deserialize <CaptchaData>(item.Value); if (data != null) { list.Add(data); } } } return list; })); }
public bool SetCaptcha(CaptchaData data) { if (!IsReadied) { return(false); } if (data == null || data.Id == Guid.Empty) { return(false); } lock (_locker) { if (_dicById.ContainsKey(data.Id)) { return(false); } _dicById[data.Id] = data; _redis.SetAsync(data); return(true); } }
public async Task <bool> UserResponse(HighscoreEntryWithCaptcha he) { CaptchaData cd = new CaptchaData(); cd.response = he.UserToken; cd.secret = "6LfDoOMUAAAAAIAZ4rPoMgC1a_6u1DpdR3-NcLuY"; var content = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("secret", cd.secret), new KeyValuePair <string, string>("response", cd.response) }); var responseString = await client.PostAsync("https://www.google.com/recaptcha/api/siteverify", content); var responseBody = await responseString.Content.ReadAsStringAsync(); var resp = JsonSerializer.Deserialize <GoogleAPIResponse>(responseBody); return(resp.Success); }
private void onGetCaptcha(GetCaptchaOperation operation, HttpResponse httpResponse) { CaptchaData responseBody = operation.ResponseBody; Service.Get <EventDispatcher>().DispatchEvent(new CaptchaServiceEvents.CaptchaLoaded(responseBody)); }
public CaptchaLoaded(CaptchaData captchaData) { CaptchaData = captchaData; }
public CaptchaSolutionDeclined(CaptchaData newCaptchaData) { NewCaptchaData = newCaptchaData; }