//------------------------------------------------------------- // 概要:指定URLの解析結果と、想定データとの比較 //------------------------------------------------------------- private static void CheckBbsInfo(string url, BbsInfo bbsInfo) { BbsInfo result = BbsUrlAnalyzer.Analyze(url); Assert.AreEqual(bbsInfo.Url, result.Url); Assert.AreEqual(bbsInfo.BoardGenre, result.BoardGenre); Assert.AreEqual(bbsInfo.BoardNo, result.BoardNo); Assert.AreEqual(bbsInfo.ThreadNo, result.ThreadNo); Assert.AreEqual(bbsInfo.BbsServer, result.BbsServer); }
public ThreadViewerControl() { Logger.Instance.Debug("ThreadViewerControl()"); InitializeComponent(); webBrowser.DocumentCompleted += (sender, e) => { Logger.Instance.Debug("webBrowser.DocumentCompleted()"); if (IsScrollBottomLast) { // スレッドの最下位へ移動 ScrollToBottom(); } else { // スクロール位置を復元 webBrowser.Document.Window.ScrollTo(ScrollPos.X, ScrollPos.Y); } webBrowser.Document.Window.Scroll += (sender_, e_) => { // スクロール位置を保存 ScrollPos.X = ScrollRectangle.X; ScrollPos.Y = ScrollRectangle.Y; }; }; webBrowser.Navigating += (sender, e) => { if (e.Url.ToString() == "about:blank") { return; } // リンクをブラウザで開くか if (Settings.ViewerSettings.OpenLinkBrowser) { // 掲示板URLの場合はビューアで開く if (BbsUrlAnalyzer.Analyze(e.Url.ToString()).BbsServer != BbsServer.UnSupport) { return; } Process.Start(e.Url.ToString()); e.Cancel = true; } }; webBrowser.NewWindow3 += (sender, e) => { Process.Start(e.bstrUrl); e.Cancel = true; }; }
//------------------------------------------------------------- // 概要:URLに対応したストラテジの生成 //------------------------------------------------------------- public static BbsStrategy Create(string url) { Logger.Instance.DebugFormat("BbsStrategy(url:{0})", url); // 掲示板解析 BbsInfo bbsInfo = BbsUrlAnalyzer.Analyze(url); Logger.Instance.DebugFormat("掲示板解析:正常 [url:[0], 掲示板サーバ:{1}]", url, bbsInfo.BbsServer); switch (bbsInfo.BbsServer) { // したらば掲示板 case BbsServer.Shitaraba: return(new ShitarabaBbsStrategy(bbsInfo)); // わいわいKakiko case BbsServer.YYKakiko: return(new YYKakikoBbsStrategy(bbsInfo)); // 未対応 default: return(new NullBbsStrategy(bbsInfo)); } }