Example #1
0
        public void Search(SearchModel model)
        {
            try
            {
                if (model == null)
                {
                    return;
                }
                //if (Searchers != null && LastSearchModel == model) //!+todo need run search if all paused
                //{
                //    lastSearchModel = model;
                //    return;
                //}
                //var saveModel
                if (Searchers == null || !model.IsEqualByAli(LastSearchModel))
                {
                    IEnumerable <string> arr;
                    var customUrl = !model.Url.IsEmpty();
                    if (!customUrl)
                    {
                        arr = model.AliSearchText.SplitExt(';');
                    }
                    else
                    {
                        arr = model.Url.SplitExt(';');
                    }

                    var list = new List <AliEngine>();
                    foreach (var item in arr)
                    {
                        var aliEngine = new AliEngine
                        {
                            Currency    = model.Currency,
                            MinPrice    = model.AliMinPrice,
                            MaxPrice    = model.AliMaxPrice,
                            ShipCountry = model.ShipCountry,
                            Cookies     = Cookies
                        };

                        var tmp = item.Trim();
                        if (customUrl)
                        {
                            aliEngine.CustomUrl = tmp;
                        }
                        else
                        {
                            aliEngine.SearchText = tmp;
                        }

                        list.Add(aliEngine);
                    }

                    StartSearch(list);
                }

                LastSearchModel = model;
            }
            catch (Exception ex) { Catch.Set(ex); }
        }
Example #2
0
        public Searcher FromCache(AliEngine engine)
        {
            try
            {
                if (Config.CacheTime < 1 || !Directory.Exists(Config.Pathes.Cache))
                {
                    return(null);
                }

                var path = Config.Pathes.CacheFile(engine.SearchText);
                if (!File.Exists(path))
                {
                    return(null);
                }

                var str  = File.ReadAllText(path);
                var item = JsonConvert.DeserializeObject(str, typeof(Searcher)) as Searcher;

                if (item.AliEngine != engine)
                {
                    return(null);
                }

                if (item.DateResponse == null)
                {
                    return(null);
                }

                if ((DateTime.UtcNow - (DateTime)item.DateResponse).TotalDays > Config.CacheTime)
                {
                    return(null);
                }

                return(item);
            }
            catch (Exception ex) { Catch.Set(ex); }
            return(null);
        }
Example #3
0
 public Searcher(AliEngine aliEngine)
 {
     AliEngine = aliEngine;
 }