/// <summary> /// スレッドを表すHtmlを作成します /// </summary> /// <param name="dat">スレッドデータ</param> /// <param name="title">スレッドタイトル</param> /// <param name="imageHeaders">スレッド画像リスト</param> /// <param name="imagesPath">画像の保存フォルダー</param> /// <returns>作成したhtmlソース</returns> public static string Create(string dat, IThreadHeader threadHeader, IEnumerable<IImageHeader> imageHeaders) { StringBuilder html = new StringBuilder(); html.AppendFormat(HtmlHeaderFormat, threadHeader.Title, threadHeader.Url); html.Append(CreateBody(dat, imageHeaders, threadHeader.ImageSaveFolder)); return html.ToString(); }
public Thread(IThreadHeader header) : this() { this.header = header; }
//public virtual IThreadHeader[] Patrol() //{ // if (!initialized) // { // throw new InvalidOperationException("Not Initialized"); // } // List<IThreadHeader> result = new List<IThreadHeader>(); // IThreadHeader[] allHeaders = ThreadParser.Parse(this, TargetBoardInfo, TargetBoardInfo.Read()); // foreach (IThreadHeader header in allHeaders) // { // if (IsMatch(header)) // { // result.Add(header); // } // } // return result.ToArray(); //} public bool IsMatch(IThreadHeader input) { bool matchTitle = wordPattern.IsMatch(input.Title) && Common.GlobalNGPatternRegex.IsMatch(input.Title);//GlobalNGでなければIsMatchはtureを返す if (Common.Options.StartupOptions.RemoveExpirationThread) { bool spentLifeTime = (DateTime.Now - input.Since) > TimeSpan.FromDays(Common.Options.StartupOptions.ThreadLifeDate); return matchTitle && !spentLifeTime; } else { return matchTitle; } }