Пример #1
0
        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            if (DCGalleryAnalyzer.Instance.Model == null)
            {
                return;
            }

            var search = SearchText.Text;

            if (search == "검색")
            {
                search = "";
            }

            DCGalleryDataQuery query         = new DCGalleryDataQuery();
            List <string>      positive_data = new List <string>();

            search.Trim().Split(' ').ToList().ForEach((a) => { if (!a.Contains(":") && !a.StartsWith("/") && !a.StartsWith("?"))
                                                               {
                                                                   positive_data.Add(a.Trim());
                                                               }
                                                      });
            query.Title = positive_data;
            foreach (var elem in from elem in search.Trim().Split(' ') where elem.Contains(":") where !elem.StartsWith("/") where !elem.StartsWith("?") select elem)
            {
                if (elem.StartsWith("nick:"))
                {
                    if (query.Nickname == null)
                    {
                        query.Nickname = new List <string>()
                        {
                            elem.Substring("nick:".Length)
                        }
                    }
                }
                ;
Пример #2
0
        private List <DCInsidePageArticle> search_internal(DCGalleryDataQuery query, int starts, int ends)
        {
            var result = new List <DCInsidePageArticle>();

            for (int i = starts; i < ends; i++)
            {
                var article = DCGalleryAnalyzer.Instance.Articles[i];

                if (query.Type != null)
                {
                    if (article.classify == null)
                    {
                        continue;
                    }
                    else if (article.classify != query.Type[0])
                    {
                        continue;
                    }
                }

                if (query.Nickname != null)
                {
                    if (article.nick == null)
                    {
                        continue;
                    }
                    else if (article.nick != query.Nickname[0])
                    {
                        continue;
                    }
                }

                if (query.Id != null)
                {
                    if (article.uid == null)
                    {
                        continue;
                    }
                    else if (article.uid != query.Id[0])
                    {
                        continue;
                    }
                }

                if (query.Ip != null)
                {
                    if (article.ip == null)
                    {
                        continue;
                    }
                    else if (article.ip != query.Ip[0])
                    {
                        continue;
                    }
                }

                if (query.Title != null)
                {
                    bool[] check = new bool[query.Title.Count];
                    IntersectCountSplit(article.title.Split(' '), query.Title, ref check);
                    if (!check.All((x => x)))
                    {
                        continue;
                    }
                }

                result.Add(article);
            }
            return(result);
        }