private void bSearchStart_Click(object sender, EventArgs e) { asc.Add(tSearchTerm.Text); flThumbnail.Controls.Clear(); string url = string.Format("http://gelbooru.com/index.php?page=dapi&s=post&q=index&limit=25&tags={0}", tSearchTerm.Text); XDocument xml = XDocument.Load(url); IEnumerable<XElement> result = from item in xml.Descendants("post") select item; foreach (var sResult in result) { // 야한건 안된다고 생각해요! >_< if (Properties.Settings.Default.MatureSensing && sResult.Attribute("rating").Value != "s") { } else { Thumbnail item = new Thumbnail(this.flThumbnail); item.ThumbURL = sResult.Attribute("preview_url").Value; item.Tags = sResult.Attribute("tags").Value; item.Id = sResult.Attribute("id").Value; item.ThumbClick += ShowImage; flThumbnail.Controls.Add(item); } } }
public void FindImages(string keyword, int target_page) { tSearchTerm.Text = keyword; _asc.Add(tSearchTerm.Text); flThumbnail.Controls.Clear(); string url = string.Format( "http://gelbooru.com/index.php?page=dapi&s=post&q=index&limit={0}&tags={1}&pid={2}", Properties.Settings.Default.PreviewCount, keyword, target_page - 1); XDocument xml = XDocument.Load(url); IEnumerable<XElement> page_count = from item in xml.Descendants("posts") select item; foreach (var sResult in page_count) _last_page = Int32.Parse(sResult.Attribute("count").Value) / Decimal.ToInt32(Properties.Settings.Default.PreviewCount); IEnumerable<XElement> result = from item in xml.Descendants("post") select item; foreach (var sResult in result) { bool isSkip = false; #region Tag Filtering // 태그 필터링을 위한 n^2... 으아니! if (Properties.Settings.Default.TagFiltering) { string[] tagset = sResult.Attribute("tags").Value.Split(' '); foreach (string s in tagset) foreach (string tag in Properties.Settings.Default.FilterSource) if (s == tag) isSkip = true; } #endregion #region Rating Check // 야한건 안된다고 생각해요! >_< if ((Properties.Settings.Default.MatureSensing && sResult.Attribute("rating").Value != "s") && !Properties.Settings.Default.OnlyMature) isSkip = true; // Hidden Function :P else if (Properties.Settings.Default.OnlyMature && sResult.Attribute("rating").Value == "s") isSkip = true; // 최저 해상도 제한 옵션이 걸려 있다면 걸고 넘어지기 else if (Properties.Settings.Default.MinimumImageSize && (Int32.Parse(sResult.Attribute("width").Value) < Properties.Settings.Default.MinWidth || Int32.Parse(sResult.Attribute("height").Value) < Properties.Settings.Default.MinHeight)) isSkip = true; #endregion // 위의 조건들에서 걸리면 스킵 ㄳ if(isSkip) continue; Thumbnail item = new Thumbnail(this.flThumbnail); item.ThumbURL = sResult.Attribute("preview_url").Value; item.Tags = sResult.Attribute("tags").Value; item.Id = sResult.Attribute("id").Value; item.ThumbClick += ShowImage; flThumbnail.Controls.Add(item); } Page = target_page; lPage.Text = string.Format("{0} / {1}", _page, _last_page); GC.Collect(); }