Example #1
0
 private IEnumerator showNextCaptcha(DateTime retryDate, CaptchaData captchaData)
 {
     while (retryDate > DateTime.Now)
     {
         yield return(null);
     }
     Service.Get <EventDispatcher>().DispatchEvent(new CaptchaServiceEvents.CaptchaLoaded(captchaData));
 }
Example #2
0
        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()));
        }
Example #3
0
        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)));
        }
Example #4
0
        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;
            }));
        }
Example #5
0
 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);
     }
 }
Example #6
0
        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);
        }
Example #7
0
    private void onGetCaptcha(GetCaptchaOperation operation, HttpResponse httpResponse)
    {
        CaptchaData responseBody = operation.ResponseBody;

        Service.Get <EventDispatcher>().DispatchEvent(new CaptchaServiceEvents.CaptchaLoaded(responseBody));
    }
Example #8
0
 public CaptchaLoaded(CaptchaData captchaData)
 {
     CaptchaData = captchaData;
 }
Example #9
0
 public CaptchaSolutionDeclined(CaptchaData newCaptchaData)
 {
     NewCaptchaData = newCaptchaData;
 }