Ejemplo n.º 1
0
        private BaseSearchResult[] ConvertDataResults(SauceNaoDataResult[] results)
        {
            var rg = new List <BaseSearchResult>();

            foreach (var sn in results)
            {
                if (sn.Urls != null)
                {
                    string?url = sn.Urls.FirstOrDefault(u => u != null) !;

                    string?siteName = sn.Index != 0 ? sn.Index.ToString() : null;

                    // var x = new BasicSearchResult(url, sn.Similarity,
                    //  sn.WebsiteTitle, sn.Creator, sn.Material, sn.Character, siteName);
                    var x = new BaseSearchResult()
                    {
                        Url         = url,
                        Similarity  = sn.Similarity,
                        Description = sn.WebsiteTitle,
                        Artist      = sn.Creator,
                        Source      = sn.Material,
                        Characters  = sn.Character,
                        Site        = siteName
                    };
                    x.Filter = x.Similarity < FilterThreshold;


                    rg.Add(x);
                }
            }

            return(rg.ToArray());
        }
Ejemplo n.º 2
0
        public static IEnumerable <BaseSearchResult> ParseSearchResults(string input, string query)
        {
            List <BaseSearchResult> results = new List <BaseSearchResult>();

            if (string.IsNullOrEmpty(input))
            {
                return(results);
            }

            // Copyright Shubham Sharma
            Regex           regex           = new Regex(@"(?x)\<li[^\>]+?\>.*?\<\/li\>", RegexOptions.Singleline);
            MatchCollection matchCollection = regex.Matches(input);

            foreach (Match match in matchCollection)
            {
                // Copyright Shubham Sharma
                Match header = Regex.Match(match.Value, @"\<h1\s+itemprop=""headline"".*?\>.*?\<a[^\>]+\>(?<headline>.*?)\<\/a\>");

                BaseSearchResult result = new BaseSearchResult();
                result.Title   = header.Groups["headline"].Value;
                result.Source  = "BBC";
                result.Domains = DomainParser.Parse(match.Value, "BBC", query);
                results.Add(result);
            }

            return(results);
        }
Ejemplo n.º 3
0
        public BaseSearchResult <T> FinAllPaging(SearchModel search, Expression <Func <T, bool> > expression,
                                                 Expression <Func <T, object> > orderBy)
        {
            var result = new BaseSearchResult <T>();
            var list   = new List <T>();

            if (!search.SortDesc.HasValue)
            {
                list = _examDBContext.Set <T>().Where(expression).ToList();
            }
            else
            {
                if (search.SortDesc.Value)
                {
                    list = _examDBContext.Set <T>().Where(expression).OrderByDescending(orderBy).ToList();
                }
                else
                {
                    list = _examDBContext.Set <T>().Where(expression).OrderBy(orderBy).ToList();
                }
            }

            result.Records     = list.Skip(search.PageSize * (search.PageIndex - 1)).Take(search.PageSize).ToList();
            result.TotalRecord = list.Count();
            result.PageIndex   = search.PageIndex;
            result.PageSize    = search.PageSize;
            result.PageCount   = result.TotalRecord / result.PageSize + (result.TotalRecord % result.PageSize > 0 ? 1 : 0);
            return(result);
        }
Ejemplo n.º 4
0
        public BaseSearchResult <TestThu> SearchTest(SearchModel <TestThu> search)
        {
            var start = new BaseSearchResult <TestThu>();

            var result = _testRepository.FindAllPaging(search, c => c.Id > 2, x => x.Id);

            return(result);
        }
        public BaseSearchResult <T> FindAllPaging(SearchModel <T> searchModel, Expression <Func <T, bool> > expression)
        {
            var result = new BaseSearchResult <T>();
            var list   = _appDbContext.Set <T>().Where(expression).ToList();

            result.Records     = list.Skip(searchModel.PageSize * (searchModel.PageIndex - 1)).Take(searchModel.PageSize).ToList();
            result.TotalRecord = list.Count();
            result.PageIndex   = searchModel.PageIndex;
            result.PageSize    = searchModel.PageSize;
            result.PageCount   = result.TotalRecord / result.PageSize + (result.TotalRecord % result.PageSize > 0 ? 1 : 0);

            return(result);
        }
Ejemplo n.º 6
0
        private Activity createReply(IBotContext context, BaseSearchResult result)
        {
            var reply = context.Request.CreateReply();

            if (result.GetType() == typeof(SpotsResult))
            {
                reply.Attachments = result.Attachments;
            }
            else if (result.GetType() == typeof(PlansResult))
            {
                // TODO:
            }
            return(reply);
        }
Ejemplo n.º 7
0
        private static List <BaseSearchResult> GetImages(HtmlDocument doc)
        {
            const string TAGS_ITEM_XP = "//a[contains(@class, 'Tags-Item')]";

            const string CBIR_ITEM = "CbirItem";


            var tagsItem = doc.DocumentNode.SelectNodes(TAGS_ITEM_XP);
            var images   = new List <BaseSearchResult>();

            if (tagsItem.Count == 0)
            {
                return(images);
            }

            var sizeTags = tagsItem.Where(sx =>
                                          !sx.ParentNode.ParentNode.Attributes["class"].Value.Contains(CBIR_ITEM));


            foreach (var siz in sizeTags)
            {
                string?link = siz.Attributes["href"].Value;

                string?resText = siz.FirstChild.InnerText;


                var(w, h) = ParseResolution(resText);

                if (!w.HasValue || !h.HasValue)
                {
                    continue;
                }

                var yi = new BaseSearchResult()
                {
                    Url    = link,
                    Width  = w,
                    Height = h,
                };

                images.Add(yi);
            }

            return(images);
        }
Ejemplo n.º 8
0
        public BaseSearchResult <PatientModel> SearchPatient(SearchModel search)
        {
            var result = new BaseSearchResult <PatientModel>();
            var list   = _patientRepository.FinAllPaging(search, c => !string.IsNullOrEmpty(c.PatientId), a => a.PatientId);

            var test = new PatientModel();

            test.Status            = PatientStatus.InTherapy;
            test.StatusDescription = test.Status.ToDescription();

            result.Records = list.Records.CloneToListModels <Patient, PatientModel>();
            result.Records.ForEach(c => c.StatusDescription = c.Status.HasValue ? c.Status.ToDescription() : string.Empty);
            result.PageCount   = list.PageCount;
            result.PageIndex   = list.PageIndex;
            result.PageSize    = list.PageSize;
            result.TotalRecord = list.TotalRecord;
            return(result);
        }
Ejemplo n.º 9
0
        private BaseSearchResult[] ConvertResults(TraceMoeRootObject obj)
        {
            var docs    = obj.docs;
            var results = new BaseSearchResult[docs.Count];

            for (int i = 0; i < results.Length; i++)
            {
                var doc = docs[i];
                var sim = (float?)doc.similarity * 100;

                var malUrl = MAL_URL + doc.mal_id;

                results[i] = new FullSearchResult(this, malUrl, sim)
                {
                    Source      = doc.title_english,
                    Description = $"Episode #{doc.episode} @ {TimeSpan.FromSeconds(doc.at)}"
                };
            }

            return(results);
        }
Ejemplo n.º 10
0
        public override FullSearchResult GetResult(string url)
        {
            //http://tidder.xyz/?imagelink=

            //

            var sr = base.GetResult(url);


            try {
                if (!Network.TryGetString(sr.RawUrl !, out var html))
                {
                    sr.RawUrl = null;
                    sr.Url    = null;
                    sr.AddErrorMessage("Unavailable");
                    return(sr);
                }

                var doc = new HtmlDocument();
                doc.LoadHtml(html);

                var documentNode = doc.DocumentNode;

                var findings = documentNode.SelectNodes("//*[contains(@class, 'findings-row')]");

                if (findings == null || !findings.Any())
                {
                    sr.Filter = true;
                    return(sr);
                }

                //Debug.WriteLine(findings.Count);

                var list = new List <BaseSearchResult>();

                foreach (var t in findings)
                {
                    var sub = t.SelectNodes("td");

                    var imgNode       = sub[0];
                    var distNode      = sub[1];
                    var scoreNode     = sub[2];
                    var postedNode    = sub[3];
                    var titleNode     = sub[4];
                    var authorNode    = sub[5];
                    var subredditNode = sub[6];


                    string?dist      = distNode.InnerText;
                    string?score     = scoreNode.InnerText;
                    string?posted    = postedNode.InnerText;
                    string?title     = titleNode.InnerText;
                    string?author    = authorNode.InnerText;
                    string?subreddit = subredditNode.InnerText;

                    string link = titleNode.FirstChild.Attributes["href"].DeEntitizeValue;

                    var bsr = new BaseSearchResult
                    {
                        Artist      = author,
                        Description = title,
                        Source      = subreddit,
                        Url         = link,
                        Date        = DateTime.Parse(posted)
                    };


                    list.Add(bsr);
                }

                var best = list[0];

                sr.UpdateFrom(best);

                sr.AddExtendedResults(list);
            }
            catch (Exception e) {
                // ...
                sr.AddErrorMessage(e.Message);
            }

            return(sr);
        }
Ejemplo n.º 11
0
        private BaseSearchResult ParseResult(HtmlNodeCollection tr)
        {
            var caption = tr[0];
            var img     = tr[1];
            var src     = tr[2];

            string url = null !;

            var urlNode = img.FirstChild.FirstChild;

            if (urlNode.Name != "img")
            {
                var origUrl = urlNode.Attributes["href"].Value;

                // Links must begin with http:// in order to work with "start"
                if (origUrl.StartsWith("//"))
                {
                    origUrl = "http:" + origUrl;
                }


                url = origUrl;
            }


            int w = 0, h = 0;

            if (tr.Count >= 4)
            {
                var res = tr[3];

                var wh = res.InnerText.Split(Formatting.MUL_SIGN);

                var wStr = wh[0].SelectOnlyDigits();
                w = Int32.Parse(wStr);

                // May have NSFW caption, so remove it

                var hStr = wh[1].SelectOnlyDigits();
                h = Int32.Parse(hStr);
            }

            float?sim;

            if (tr.Count >= 5)
            {
                var simNode = tr[4];
                var simStr  = simNode.InnerText.Split('%')[0];
                sim = Single.Parse(simStr);
            }
            else
            {
                sim = null;
            }


            //var i = new BasicSearchResult(url, sim, w, h, src.InnerText, null, caption.InnerText);
            var i = new BaseSearchResult()
            {
                Url         = url,
                Similarity  = sim,
                Width       = w,
                Height      = h,
                Source      = src.InnerText,
                Description = caption.InnerText,
            };

            i.Filter = i.Similarity < FilterThreshold;
            return(i);
        }