bi := High( BoardPlugIns );
for i := Low( BoardPlugIns ) to bi do begin
if Assigned( Pointer( BoardPlugIns[ i ].Module ) ) then begin
- if BoardPlugIns[ i ].AcceptURL( URL ) = atThread then begin
- tmpThread := TThreadItem.Create( BoardPlugIns[ i ], URL );
- boardURL := tmpThread.BoardPlugIn.GetBoardURL( DWORD( tmpThread ) );
- Board := BBSsFindBoardFromURL( boardURL );
- if Board = nil then begin
- Board := TBoard.Create( tmpThread.BoardPlugIn, boardURL );
- category := TCategory.Create;
- category.Title := '(\96¼\8fÌ\95s\96¾)';
- category.Add( Board );
- // \81¦\8c\83\82µ\82\95Û\97¯\92\86
- //BBS2ch.Add( category );
-
- if FTreeType = gtt2ch then begin
- // \94Â\83\8a\83X\83g\82É\93o\98^\82³\82ê\82Ä\82¢\82È\82¢\82Ì\82Å\83c\83\8a\81[\82É\92Ç\89Á
- // SetBoardTreeNode; 1 \8ds\82Å\8dÏ\82Ü\82¹\82Ä\82à\82æ\82µ
- categoryNode := TreeView.Items.AddChild(
- TreeView.Items.GetFirstNode, category.Title );
- categoryNode.Data := category;
- categoryNode.ImageIndex := ITEM_ICON_CATEGORY1;
- categoryNode.SelectedIndex := ITEM_ICON_CATEGORY2;
-
- Board.BeginUpdate;
- boardNode :=
- TreeView.Items.AddChild( categoryNode, Board.Title );
- boardNode.Data := Board;
- boardNode.ImageIndex := ITEM_ICON_BOARD1;
- boardNode.SelectedIndex := ITEM_ICON_BOARD2;
- Board.LoadSettings;
- Board.EndUpdate;
- end;
- end else begin
- if not Board.IsThreadDatRead then
- GikoSys.ReadSubjectFile( Board );
- end;
-
- ThreadItem := Board.Find( tmpThread.FileName );
- if ThreadItem = nil then begin
- ThreadItem := tmpThread;
- Board.Insert( 0, ThreadItem );
- if ActiveList is TBoard then begin
- if TBoard(ActiveList) = Board then
- ListView.Items.Count := ListView.Items.Count + 1;
- end;
- InsertBrowserTab( ThreadItem );
- DownloadContent( ThreadItem );
- end else begin
- tmpThread.Free;
- InsertBrowserTab( ThreadItem );
- if not ThreadItem.IsLogFile then
- DownloadContent( ThreadItem );
- end;
-
- Exit;
- end;
+ case BoardPlugIns[ i ].AcceptURL( URL ) of
+ atThread:
+ begin
+ tmpThread := TThreadItem.Create( BoardPlugIns[ i ], URL );
+ boardURL := tmpThread.BoardPlugIn.GetBoardURL( DWORD( tmpThread ) );
+ Board := BBSsFindBoardFromURL( boardURL );
+ if Board = nil then begin
+ Board := TBoard.Create( tmpThread.BoardPlugIn, boardURL );
+ category := TCategory.Create;
+ category.Title := '(\96¼\8fÌ\95s\96¾)';
+ category.Add( Board );
+ // \81¦\8c\83\82µ\82\95Û\97¯\92\86
+ //BBS2ch.Add( category );
+
+ if FTreeType = gtt2ch then begin
+ // \94Â\83\8a\83X\83g\82É\93o\98^\82³\82ê\82Ä\82¢\82È\82¢\82Ì\82Å\83c\83\8a\81[\82É\92Ç\89Á
+ // SetBoardTreeNode; 1 \8ds\82Å\8dÏ\82Ü\82¹\82Ä\82à\82æ\82µ
+ categoryNode := TreeView.Items.AddChild(
+ TreeView.Items.GetFirstNode, category.Title );
+ categoryNode.Data := category;
+ categoryNode.ImageIndex := ITEM_ICON_CATEGORY1;
+ categoryNode.SelectedIndex := ITEM_ICON_CATEGORY2;
+
+ Board.BeginUpdate;
+ boardNode :=
+ TreeView.Items.AddChild( categoryNode, Board.Title );
+ boardNode.Data := Board;
+ boardNode.ImageIndex := ITEM_ICON_BOARD1;
+ boardNode.SelectedIndex := ITEM_ICON_BOARD2;
+ Board.LoadSettings;
+ Board.EndUpdate;
+ end;
+ end else begin
+ if not Board.IsThreadDatRead then
+ GikoSys.ReadSubjectFile( Board );
+ end;
+
+ ThreadItem := Board.Find( tmpThread.FileName );
+ if ThreadItem = nil then begin
+ ThreadItem := tmpThread;
+ Board.Insert( 0, ThreadItem );
+ if ActiveList is TBoard then begin
+ if TBoard(ActiveList) = Board then
+ ListView.Items.Count := ListView.Items.Count + 1;
+ end;
+ InsertBrowserTab( ThreadItem );
+ DownloadContent( ThreadItem );
+ end else begin
+ tmpThread.Free;
+ InsertBrowserTab( ThreadItem );
+ if not ThreadItem.IsLogFile then
+ DownloadContent( ThreadItem );
+ end;
+
+ Exit;
+ end;
+
+ atBoard:
+ begin
+ Board := BBSsFindBoardFromURL( URL );
+ if Board <> nil then begin
+ SelectTreeNode( Board, True );
+ Exit;
+ end;
+ end;
+ end;
end;
end;
except