Ejemplo n.º 1
0
        //-------------------------------------------------------------
        // 概要:指定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);
        }
Ejemplo n.º 2
0
        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;
            };
        }
Ejemplo n.º 3
0
        //-------------------------------------------------------------
        // 概要: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));
            }
        }