BBSKey: string;
Board: TBoard;
ThreadItem: TThreadItem;
- i, bound : Integer;
+ i, j, bi, bj : Integer;
+ boardURL : string;
+ tmpThread : TThreadItem;
begin
//===== \83v\83\89\83O\83C\83\93
try
- bound := High( BoardPlugIns );
- for i := Low( BoardPlugIns ) to bound do begin
+ bi := High( BoardPlugIns );
+ for i := Low( BoardPlugIns ) to bi do begin
if Assigned( Pointer( BoardPlugIns[ i ].Module ) ) then begin
if BoardPlugIns[ i ].AcceptURL( URL ) then begin
- ThreadItem := TThreadItem.Create( BoardPlugIns[ i ], URL );
- Board := TBoard.Create;
- Board.Insert( 0, ThreadItem );
- InsertBrowserTab( ThreadItem );
- if not ThreadItem.IsLogFile then
- DownloadContent( ThreadItem );
+ tmpThread := TThreadItem.Create( BoardPlugIns[ i ], URL );
+ boardURL := tmpThread.BoardPlugIn.GetBoardURL( DWORD( tmpThread ) );
+ Board := BBS2ch.FindBoardFromURL( boardURL );
+ if Board = nil then begin
+ Board := TBoard.Create( tmpThread.BoardPlugIn, boardURL );
+ // \88È\89º\82â\82è\95û\82ª\95ª\82©\82ç\82È\82¢\82©\82ç\95Û\97¯
+ //Category.Add( Board );
+ //BBS2ch.Add( Category );
+ 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;
+ InsertBrowserTab(ThreadItem);
+ DownloadContent(ThreadItem);
+ end;
+ end else begin
+ tmpThread.Free;
+ InsertBrowserTab( ThreadItem );
+ if not ThreadItem.IsLogFile then
+ DownloadContent( ThreadItem );
+ end;
+
Exit;
end;