ギコナビ
修订版 | e0a5e1dfa8090014058a4197e92709c81849d128 (tree) |
---|---|
时间 | 2008-09-14 10:47:52 |
作者 | cvs2git <cvs2git> |
Commiter | cvs2git |
This commit was manufactured by cvs2svn to create tag 'v1_58_0_757'.
@@ -334,12 +334,6 @@ type | ||
334 | 334 | property BoardPlugIn : TBoardPlugIn read FBoardPlugIn write FBoardPlugIn; |
335 | 335 | end; |
336 | 336 | |
337 | - // ÁêprpTBoard | |
338 | - TSpecialBoard = class(TBoard) | |
339 | - public | |
340 | - function Add(item: TThreadItem): integer; overload; | |
341 | - procedure Clear; overload; | |
342 | - end; | |
343 | 337 | |
344 | 338 | function BBSsFindBoardFromBBSID( inBBSID : string ) : TBoard; |
345 | 339 | function BBSsFindBoardFromURL( inURL : string ) : TBoard; |
@@ -347,13 +341,9 @@ type | ||
347 | 341 | function BBSsFindThreadFromURL(const inURL : string ) : TThreadItem; |
348 | 342 | function ConvertDateTimeString( inDateTimeString : string) : TDateTime; |
349 | 343 | |
350 | - procedure DestorySpecialBBS( inBBS : TBBS ); | |
351 | - | |
352 | 344 | var |
353 | 345 | BBSs : array of TBBS; |
354 | 346 | BoardGroups : array of TBoardGroup; |
355 | - SpecialBBS : TBBS; | |
356 | - SpecialBoard: TSpecialBoard; | |
357 | 347 | |
358 | 348 | implementation |
359 | 349 |
@@ -539,28 +529,6 @@ begin | ||
539 | 529 | end; |
540 | 530 | |
541 | 531 | end; |
542 | -{! | |
543 | -\brief ÁêprBBSí | |
544 | -\param bbs í·éÁêprBBS | |
545 | -} | |
546 | -procedure DestorySpecialBBS( inBBS : TBBS ); | |
547 | -var | |
548 | - sCategory : TCategory; | |
549 | - sBoard : TSpecialBoard; | |
550 | -begin | |
551 | - if inBBS <> nil then begin | |
552 | - sCategory := inBBS.Items[0]; | |
553 | - if sCategory <> nil then begin | |
554 | - sBoard := TSpecialBoard(sCategory.Items[0]); | |
555 | - if sBoard <> nil then begin | |
556 | - sBoard.Modified := False; | |
557 | - sBoard.Clear; | |
558 | - FreeAndNil(sBoard); | |
559 | - end; | |
560 | - end; | |
561 | - FreeAndNil(inBBS); | |
562 | - end; | |
563 | -end; | |
564 | 532 | |
565 | 533 | (************************************************************************* |
566 | 534 | *@\¼FTBBSRXgN^ |
@@ -1862,19 +1830,6 @@ begin | ||
1862 | 1830 | |
1863 | 1831 | end; |
1864 | 1832 | |
1865 | -function TSpecialBoard.Add(item: TThreadItem): integer; | |
1866 | -begin | |
1867 | - Result := inherited AddObject(Item.URL, Item); | |
1868 | -end; | |
1869 | - | |
1870 | -procedure TSpecialBoard.Clear; | |
1871 | -var | |
1872 | - i: integer; | |
1873 | -begin | |
1874 | - for i := Count - 1 downto 0 do | |
1875 | - DeleteList(i); | |
1876 | - Capacity := 0; | |
1877 | -end; | |
1878 | 1833 | |
1879 | 1834 | end. |
1880 | 1835 |
@@ -8397,9 +8397,6 @@ object GikoForm: TGikoForm | ||
8397 | 8397 | object ID1: TMenuItem |
8398 | 8398 | Action = GikoDM.SameIDResAnchorAction |
8399 | 8399 | end |
8400 | - object N83: TMenuItem | |
8401 | - Action = GikoDM.DereferenceResAction | |
8402 | - end | |
8403 | 8400 | end |
8404 | 8401 | object BrowserTabPopupMenu: TPopupMenu |
8405 | 8402 | Images = HotToobarImageList |
@@ -419,7 +419,6 @@ type | ||
419 | 419 | ResPopupClearTimer: TTimer; |
420 | 420 | TaskTrayPopupMenu: TPopupMenu; |
421 | 421 | Exit1: TMenuItem; |
422 | - N83: TMenuItem; | |
423 | 422 | procedure FormCreate(Sender: TObject); |
424 | 423 | procedure FormDestroy(Sender: TObject); |
425 | 424 | procedure BrowserStatusTextChange(Sender: TObject; |
@@ -692,9 +691,6 @@ type | ||
692 | 691 | function isValidFile(FileName: String) : boolean; |
693 | 692 | //! ListViewÌD&Dó¯æè |
694 | 693 | procedure AcceptDropFiles(var Msg: TMsg); |
695 | - //! XbhêXV | |
696 | - procedure UpdateListView(); | |
697 | - | |
698 | 694 | protected |
699 | 695 | procedure CreateParams(var Params: TCreateParams); override; |
700 | 696 | procedure WndProc(var Message: TMessage); override; |
@@ -1743,7 +1739,6 @@ begin | ||
1743 | 1739 | BBSs[ i ].Free; |
1744 | 1740 | BBSs[ i ] := nil; |
1745 | 1741 | end; |
1746 | - DestorySpecialBBS(BoardGroup.SpecialBBS); | |
1747 | 1742 | except |
1748 | 1743 | end; |
1749 | 1744 |
@@ -2584,7 +2579,20 @@ begin | ||
2584 | 2579 | end; |
2585 | 2580 | TreeView.Refresh; |
2586 | 2581 | //ListViewűÌXªÜÜêéÂð\¦µÄ¢éÆ«ÌXV |
2587 | - UpdateListView(); | |
2582 | + if (ActiveList <> nil) and (ActiveList is TBoard) then begin | |
2583 | + TBoard(ActiveList).LogThreadCount := TBoard(ActiveList).GetLogThreadCount; | |
2584 | + TBoard(ActiveList).NewThreadCount := TBoard(ActiveList).GetNewThreadCount; | |
2585 | + TBoard(ActiveList).UserThreadCount:= TBoard(ActiveList).GetUserThreadCount; | |
2586 | + //ListViewÌACeÌÂàXV | |
2587 | + case GikoForm.ViewType of | |
2588 | + gvtAll: ListView.Items.Count := TBoard(ActiveList).Count; | |
2589 | + gvtLog: ListView.Items.Count := TBoard(ActiveList).LogThreadCount; | |
2590 | + gvtNew: ListView.Items.Count := TBoard(ActiveList).NewThreadCount; | |
2591 | + gvtArch: ListView.Items.Count := TBoard(ActiveList).ArchiveThreadCount; | |
2592 | + gvtLive: ListView.Items.Count := TBoard(ActiveList).LiveThreadCount; | |
2593 | + gvtUser: ListView.Items.Count := TBoard(ActiveList).UserThreadCount; | |
2594 | + end; | |
2595 | + end; | |
2588 | 2596 | RefreshListView(Item.ThreadItem); |
2589 | 2597 | end; |
2590 | 2598 |
@@ -3076,9 +3084,6 @@ begin | ||
3076 | 3084 | BBSs[i].SelectText := SelectText; |
3077 | 3085 | BBSs[i].KubetsuChk := KubetsuChk; |
3078 | 3086 | end; |
3079 | - BoardGroup.SpecialBBS.SelectText := SelectText; | |
3080 | - BoardGroup.SpecialBBS.KubetsuChk := KubetsuChk; | |
3081 | - | |
3082 | 3087 | ViewType := AViewType; |
3083 | 3088 | if ActiveList is TBoard then begin |
3084 | 3089 | Board := TBoard(ActiveList); |
@@ -6784,6 +6789,8 @@ var | ||
6784 | 6789 | FOleInPlaceActiveObject: IOleInPlaceActiveObject; |
6785 | 6790 | p : TPoint; |
6786 | 6791 | AID: string; |
6792 | + stlist : TStringList; | |
6793 | + i : Integer; | |
6787 | 6794 | begin |
6788 | 6795 | result := true; |
6789 | 6796 | if not Assigned(FActiveContent) then |
@@ -6808,7 +6815,29 @@ begin | ||
6808 | 6815 | Exit; |
6809 | 6816 | |
6810 | 6817 | if (e.className = 'date') or (e.id = 'date') then begin |
6811 | - AID := GikoSys.ExtructResID(e.innerText); | |
6818 | + AID := e.innerText; | |
6819 | + if AnsiPos('id', AnsiLowerCase(AID)) > 0 then begin | |
6820 | + AID := Copy(AID, AnsiPos('id', AnsiLowerCase(AID)) - 1, 11); | |
6821 | + if AnsiPos(' be:', AnsiLowerCase(AID)) > 0 then begin | |
6822 | + AID := Copy(AID, 1, AnsiPos(' BE:', AnsiLowerCase(AID)) - 1) | |
6823 | + end; | |
6824 | + end else begin | |
6825 | + stlist := TStringList.Create; | |
6826 | + try | |
6827 | + stList.DelimitedText := AID; | |
6828 | + AID := ''; | |
6829 | + for i := 0 to stList.Count - 1 do begin | |
6830 | + if Length(WideString(stList[i])) = 8 then begin | |
6831 | + if GikoSys.NotDateorTimeString(stList[i]) then begin | |
6832 | + AID := stList[i]; | |
6833 | + break; | |
6834 | + end; | |
6835 | + end; | |
6836 | + end; | |
6837 | + finally | |
6838 | + stList.Free; | |
6839 | + end; | |
6840 | + end; | |
6812 | 6841 | ShowSameIDAncher(AID); |
6813 | 6842 | end; |
6814 | 6843 | except |
@@ -6837,7 +6866,7 @@ begin | ||
6837 | 6866 | end |
6838 | 6867 | end; |
6839 | 6868 | FActiveContent.IDAnchorPopup( |
6840 | - GikoSys.CreateResAnchor(numbers, FActiveContent.Thread, limited)); | |
6869 | + GikoSys.CreateSameIDResAnchor(numbers, FActiveContent.Thread, limited)); | |
6841 | 6870 | finally |
6842 | 6871 | numbers.Free; |
6843 | 6872 | end; |
@@ -7841,6 +7870,7 @@ var | ||
7841 | 7870 | Board: TBoard; |
7842 | 7871 | LogFolder: String; |
7843 | 7872 | datList: TStringList; |
7873 | + p: TPoint; | |
7844 | 7874 | begin |
7845 | 7875 | // \¦µÄ¢éÌÂÌÆ«ÈOÍÛ |
7846 | 7876 | if GetActiveList is TBoard then begin |
@@ -7877,12 +7907,10 @@ begin | ||
7877 | 7907 | if (datList.Count > 0) then begin |
7878 | 7908 | GikoSys.AddOutofIndexDat(Board, datList, False); |
7879 | 7909 | ShowMessage(IntToStr(datList.Count) + 'ÂÌdatt@CªRs[³êܵ½B' ); |
7880 | - if GikoForm.TreeView.Visible then begin | |
7910 | + if GikoForm.TreeView.Visible then | |
7881 | 7911 | GikoForm.TreeView.Refresh; |
7882 | - end; | |
7883 | - if GikoForm.ListView.Visible then begin | |
7884 | - UpdateListView(); | |
7885 | - end; | |
7912 | + if GikoForm.ListView.Visible then | |
7913 | + GikoForm.ListView.Refresh; | |
7886 | 7914 | end else begin |
7887 | 7915 | ShowMessage('êÂàRs[³êܹñŵ½B' ); |
7888 | 7916 | end; |
@@ -7895,25 +7923,7 @@ begin | ||
7895 | 7923 | ShowMessage('Âð\¦µÄ¾³¢B'); |
7896 | 7924 | end; |
7897 | 7925 | end; |
7898 | -procedure TGikoForm.UpdateListView(); | |
7899 | -begin | |
7900 | - //ListViewűÌXªÜÜêéÂð\¦µÄ¢éÆ«ÌXV | |
7901 | - if (ActiveList <> nil) and (ActiveList is TBoard) then begin | |
7902 | - TBoard(ActiveList).LogThreadCount := TBoard(ActiveList).GetLogThreadCount; | |
7903 | - TBoard(ActiveList).NewThreadCount := TBoard(ActiveList).GetNewThreadCount; | |
7904 | - TBoard(ActiveList).UserThreadCount:= TBoard(ActiveList).GetUserThreadCount; | |
7905 | - //ListViewÌACeÌÂàXV | |
7906 | - case GikoForm.ViewType of | |
7907 | - gvtAll: ListView.Items.Count := TBoard(ActiveList).Count; | |
7908 | - gvtLog: ListView.Items.Count := TBoard(ActiveList).LogThreadCount; | |
7909 | - gvtNew: ListView.Items.Count := TBoard(ActiveList).NewThreadCount; | |
7910 | - gvtArch: ListView.Items.Count := TBoard(ActiveList).ArchiveThreadCount; | |
7911 | - gvtLive: ListView.Items.Count := TBoard(ActiveList).LiveThreadCount; | |
7912 | - gvtUser: ListView.Items.Count := TBoard(ActiveList).UserThreadCount; | |
7913 | - end; | |
7914 | - end; | |
7915 | - ListView.Refresh; | |
7916 | -end; | |
7926 | + | |
7917 | 7927 | //! t@C`FbN |
7918 | 7928 | function TGikoForm.isValidFile(FileName: String) : boolean; |
7919 | 7929 | var |
@@ -7930,7 +7940,7 @@ begin | ||
7930 | 7940 | end else begin |
7931 | 7941 | // Ot@CÌg£qð͸µ½à̪Xì¬ú |
7932 | 7942 | try |
7933 | - dt := GikoSys.GetCreateDateFromName(ExtractFileName(FileName)); | |
7943 | + dt := GikoSys.GetCreateDateFromName(FileName); | |
7934 | 7944 | if ((UnixToDateTime(ZERO_DATE) + OffsetFromUTC) = dt) then begin |
7935 | 7945 | Result := False; |
7936 | 7946 | GikoUtil.MsgBox(Handle, ExtractFileName(FileName) + 'Ìt@C¼ªs³Å·B', 'G[', MB_ICONSTOP or MB_OK); |
@@ -1,8 +1,8 @@ | ||
1 | 1 | object GikoDM: TGikoDM |
2 | 2 | OldCreateOrder = False |
3 | 3 | OnCreate = DataModuleCreate |
4 | - Left = 518 | |
5 | - Top = 174 | |
4 | + Left = 516 | |
5 | + Top = 172 | |
6 | 6 | Height = 336 |
7 | 7 | Width = 286 |
8 | 8 | object GikoFormActionList: TActionList |
@@ -315,7 +315,7 @@ object GikoDM: TGikoDM | ||
315 | 315 | ImageIndex = 9 |
316 | 316 | ShortCut = 16433 |
317 | 317 | OnExecute = AllItemActionExecute |
318 | - OnUpdate = DependActiveListTBoardWithSpeciapActionUpdate | |
318 | + OnUpdate = DependActiveListTBoardActionUpdate | |
319 | 319 | end |
320 | 320 | object LogItemAction: TAction |
321 | 321 | Category = #26495 |
@@ -326,7 +326,7 @@ object GikoDM: TGikoDM | ||
326 | 326 | ImageIndex = 10 |
327 | 327 | ShortCut = 16434 |
328 | 328 | OnExecute = LogItemActionExecute |
329 | - OnUpdate = DependActiveListTBoardWithSpeciapActionUpdate | |
329 | + OnUpdate = DependActiveListTBoardActionUpdate | |
330 | 330 | end |
331 | 331 | object NewItemAction: TAction |
332 | 332 | Category = #26495 |
@@ -337,7 +337,7 @@ object GikoDM: TGikoDM | ||
337 | 337 | ImageIndex = 11 |
338 | 338 | ShortCut = 16435 |
339 | 339 | OnExecute = NewItemActionExecute |
340 | - OnUpdate = DependActiveListTBoardWithSpeciapActionUpdate | |
340 | + OnUpdate = DependActiveListTBoardActionUpdate | |
341 | 341 | end |
342 | 342 | object ArchiveItemAction: TAction |
343 | 343 | Category = #26495 |
@@ -347,7 +347,7 @@ object GikoDM: TGikoDM | ||
347 | 347 | Hint = 'DAT'#33853#12385#12473#12524#12483#12489#12398#12415#34920#31034#12377#12427 |
348 | 348 | ImageIndex = 55 |
349 | 349 | OnExecute = ArchiveItemActionExecute |
350 | - OnUpdate = DependActiveListTBoardWithSpeciapActionUpdate | |
350 | + OnUpdate = DependActiveListTBoardActionUpdate | |
351 | 351 | end |
352 | 352 | object LiveItemAction: TAction |
353 | 353 | Category = #26495 |
@@ -357,7 +357,7 @@ object GikoDM: TGikoDM | ||
357 | 357 | Hint = #29983#23384#12375#12390#12356#12427#12473#12524#12483#12489#12398#12415#12434#34920#31034#12377#12427 |
358 | 358 | ImageIndex = 54 |
359 | 359 | OnExecute = LiveItemActionExecute |
360 | - OnUpdate = DependActiveListTBoardWithSpeciapActionUpdate | |
360 | + OnUpdate = DependActiveListTBoardActionUpdate | |
361 | 361 | end |
362 | 362 | object ThreadRangeAction: TAction |
363 | 363 | Category = #26495 |
@@ -367,7 +367,7 @@ object GikoDM: TGikoDM | ||
367 | 367 | Hint = #12473#12524#12483#12489#12398#34920#31034#31684#22258#12434#35373#23450 |
368 | 368 | ImageIndex = 10 |
369 | 369 | OnExecute = ThreadRangeActionExecute |
370 | - OnUpdate = DependActiveListTBoardWithSpeciapActionUpdate | |
370 | + OnUpdate = DependActiveCntentActionUpdate | |
371 | 371 | end |
372 | 372 | object SelectItemAction: TAction |
373 | 373 | Category = #26495 |
@@ -378,7 +378,7 @@ object GikoDM: TGikoDM | ||
378 | 378 | ImageIndex = 12 |
379 | 379 | ShortCut = 16436 |
380 | 380 | OnExecute = SelectItemActionExecute |
381 | - OnUpdate = DependActiveListTBoardWithSpeciapActionUpdate | |
381 | + OnUpdate = DependActiveListTBoardActionUpdate | |
382 | 382 | end |
383 | 383 | object StopAction: TAction |
384 | 384 | Category = #34920#31034 |
@@ -1363,20 +1363,6 @@ object GikoDM: TGikoDM | ||
1363 | 1363 | OnExecute = ExtractSameIDActionExecute |
1364 | 1364 | OnUpdate = DependActiveCntentLogActionUpdate |
1365 | 1365 | end |
1366 | - object ShowTabListAction: TAction | |
1367 | - Category = #34920#31034 | |
1368 | - Caption = #12479#12502#19968#35239#34920#31034 | |
1369 | - Hint = #12479#12502#19968#35239#34920#31034 | |
1370 | - OnExecute = ShowTabListActionExecute | |
1371 | - end | |
1372 | - object DereferenceResAction: TAction | |
1373 | - Tag = 1 | |
1374 | - Category = #12473#12524#12483#12489 | |
1375 | - Caption = #12371#12398#12524#12473#12434#21442#29031#12375#12390#12356#12427#12524#12473#12450#12531#12459#12540#34920#31034 | |
1376 | - Hint = #12371#12398#12524#12473#12434#21442#29031#12375#12390#12356#12427#12524#12473#12450#12531#12459#12540#34920#31034 | |
1377 | - OnExecute = DereferenceResActionExecute | |
1378 | - OnUpdate = DependActiveCntentLogActionUpdate | |
1379 | - end | |
1380 | 1366 | end |
1381 | 1367 | object ToobarImageList: TImageList |
1382 | 1368 | Left = 44 |
@@ -240,8 +240,6 @@ type | ||
240 | 240 | AddIDtoNGWord0Action: TAction; |
241 | 241 | AddIDtoNGWord1Action: TAction; |
242 | 242 | ExtractSameIDAction: TAction; |
243 | - ShowTabListAction: TAction; | |
244 | - DereferenceResAction: TAction; | |
245 | 243 | procedure EditNGActionExecute(Sender: TObject); |
246 | 244 | procedure ReloadActionExecute(Sender: TObject); |
247 | 245 | procedure GoFowardActionExecute(Sender: TObject); |
@@ -452,8 +450,6 @@ type | ||
452 | 450 | procedure AddIDtoNGWord0ActionExecute(Sender: TObject); |
453 | 451 | procedure AddIDtoNGWord1ActionExecute(Sender: TObject); |
454 | 452 | procedure ExtractSameIDActionExecute(Sender: TObject); |
455 | - procedure ShowTabListActionExecute(Sender: TObject); | |
456 | - procedure DereferenceResActionExecute(Sender: TObject); | |
457 | 453 | private |
458 | 454 | { Private é¾ } |
459 | 455 | procedure ClearResFilter; |
@@ -486,10 +482,8 @@ type | ||
486 | 482 | procedure DependActiveCntentActionUpdate(Sender: TObject); |
487 | 483 | //! TActionÅGetActiveContentªnilÈO©ÂOðÁÄ¢éÆLøÉÈé |
488 | 484 | procedure DependActiveCntentLogActionUpdate(Sender: TObject); |
489 | - //! TActionÅActiveListªTBoard(ñÁêÂ)ÅLøÉÈé | |
490 | - procedure DependActiveListTBoardActionUpdate(Sender: TObject); | |
491 | 485 | //! TActionÅActiveListªTBoardÅLøÉÈé |
492 | - procedure DependActiveListTBoardWithSpeciapActionUpdate(Sender: TObject); | |
486 | + procedure DependActiveListTBoardActionUpdate(Sender: TObject); | |
493 | 487 | end; |
494 | 488 | |
495 | 489 | var |
@@ -530,17 +524,9 @@ begin | ||
530 | 524 | and (GikoForm.GetActiveContent.IsLogFile); |
531 | 525 | end; |
532 | 526 | // ************************************************************************* |
533 | -//! TActionÅActiveListªTBoard(ñÁêÂ)ÅLøÉÈé | |
534 | -// ************************************************************************* | |
535 | -procedure TGikoDM.DependActiveListTBoardActionUpdate(Sender: TObject); | |
536 | -begin | |
537 | - TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard) and | |
538 | - (GikoForm.GetActiveList <> BoardGroup.SpecialBoard); | |
539 | -end; | |
540 | -// ************************************************************************* | |
541 | 527 | //! TActionÅActiveListªTBoardÅLøÉÈé |
542 | 528 | // ************************************************************************* |
543 | -procedure TGikoDM.DependActiveListTBoardWithSpeciapActionUpdate(Sender: TObject); | |
529 | +procedure TGikoDM.DependActiveListTBoardActionUpdate(Sender: TObject); | |
544 | 530 | begin |
545 | 531 | TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard); |
546 | 532 | end; |
@@ -2651,8 +2637,7 @@ end; | ||
2651 | 2637 | // ************************************************************************* |
2652 | 2638 | procedure TGikoDM.UpFolderActionUpdate(Sender: TObject); |
2653 | 2639 | begin |
2654 | - UpFolderAction.Enabled := not (GikoForm.GetActiveList is TBBS) and | |
2655 | - (GikoForm.GetActiveList <> BoardGroup.SpecialBoard); | |
2640 | + UpFolderAction.Enabled := not (GikoForm.GetActiveList is TBBS); | |
2656 | 2641 | end; |
2657 | 2642 | // ************************************************************************* |
2658 | 2643 | //! \¦@\¦XgÌ[hÏX |
@@ -3015,10 +3000,9 @@ procedure TGikoDM.SelectListReloadActionUpdate(Sender: TObject); | ||
3015 | 3000 | begin |
3016 | 3001 | if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then |
3017 | 3002 | TAction(Sender).Enabled := True |
3018 | - else if GikoForm.GetActiveList is TBoard then begin | |
3019 | - TAction(Sender).Enabled := | |
3020 | - (GikoForm.GetActiveList <> BoardGroup.SpecialBoard); | |
3021 | - end else | |
3003 | + else if GikoForm.GetActiveList is TBoard then | |
3004 | + TAction(Sender).Enabled := True | |
3005 | + else | |
3022 | 3006 | TAction(Sender).Enabled := False; |
3023 | 3007 | end; |
3024 | 3008 | // ************************************************************************* |
@@ -3216,10 +3200,8 @@ end; | ||
3216 | 3200 | // ************************************************************************* |
3217 | 3201 | procedure TGikoDM.LogFolderOpenActionUpdate(Sender: TObject); |
3218 | 3202 | begin |
3219 | - if (((GikoForm.GetActiveList is TBoard) and | |
3220 | - (GikoForm.GetActiveList <> BoardGroup.SpecialBoard)) | |
3221 | - or (GikoForm.GetActiveList is TCategory)) | |
3222 | - and (GikoForm.ListView.SelCount > 0) then | |
3203 | + if ((GikoForm.GetActiveList is TBoard) or (GikoForm.GetActiveList is TCategory)) | |
3204 | + and (GikoForm.ListView.SelCount > 0) then | |
3223 | 3205 | TAction(Sender).Enabled := True |
3224 | 3206 | else |
3225 | 3207 | TAction(Sender).Enabled := False; |
@@ -4401,7 +4383,7 @@ begin | ||
4401 | 4383 | // XÌÔðXV |
4402 | 4384 | if (Pos('menu:', url) > 0) then begin |
4403 | 4385 | index := StrToInt64Def( |
4404 | - Copy(url, 6, Length(url)), index + 1 | |
4386 | + Copy(url, 5, Length(url)), index + 1 | |
4405 | 4387 | ); |
4406 | 4388 | end else begin |
4407 | 4389 | // JnXÔÈ~©`FbN |
@@ -4481,87 +4463,6 @@ begin | ||
4481 | 4463 | end; |
4482 | 4464 | end; |
4483 | 4465 | end; |
4484 | -//! ^uÌXbhêð\¦·é | |
4485 | -procedure TGikoDM.ShowTabListActionExecute(Sender: TObject); | |
4486 | -var | |
4487 | - i : Integer; | |
4488 | -begin | |
4489 | - GikoForm.ListView.Items.BeginUpdate; | |
4490 | - GikoForm.ListView.Items.Clear; | |
4491 | - BoardGroup.SpecialBoard.Clear; | |
4492 | - for i := GikoForm.BrowserTab.Tabs.Count - 1 downto 0 do begin | |
4493 | - BoardGroup.SpecialBoard.Add( | |
4494 | - TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Thread); | |
4495 | - end; | |
4496 | - GikoForm.ListView.Items.EndUpdate; | |
4497 | - GikoForm.SetActiveList(BoardGroup.SpecialBoard); | |
4498 | -end; | |
4499 | -//! tQƵĢéXðÇÁ·é | |
4500 | -procedure TGikoDM.DereferenceResActionExecute(Sender: TObject); | |
4501 | -var | |
4502 | - i, currentNo, No : Integer; | |
4503 | - links : IHTMLElementCollection; | |
4504 | - threadItem : TThreadItem; | |
4505 | - item : IHTMLElement; | |
4506 | - url, url2 : string; | |
4507 | - resNo : TStringList; | |
4508 | - alreadyExist : Boolean; | |
4509 | - PathRec: TPathRec; | |
4510 | -begin | |
4511 | - No := GikoForm.KokoPopupMenu.Tag; | |
4512 | - if No = 0 then Exit; | |
4513 | - | |
4514 | - ThreadItem := GikoForm.GetActiveContent; | |
4515 | - // ANeBu^u©çSÄÌNðæ¾·é | |
4516 | - links := GetActiveThreadLinks; | |
4517 | - if (ThreadItem <> nil) and (links <> nil) then begin | |
4518 | - resNo := TStringList.Create; | |
4519 | - try | |
4520 | - currentNo := 0; | |
4521 | - alreadyExist := False; | |
4522 | - // NðSĸ·é | |
4523 | - for i := 0 to links.length - 1 do begin | |
4524 | - item := links.item(i, 0) as IHTMLElement; | |
4525 | - if (item <> nil) then begin | |
4526 | - url := item.getAttribute('href', 0); | |
4527 | - // XÌÔðXV | |
4528 | - if (Pos('menu:', url) > 0) then begin | |
4529 | - currentNo := StrToInt64Def( | |
4530 | - Copy(url, 6, Length(url)), currentNo + 1 | |
4531 | - ); | |
4532 | - alreadyExist := False; | |
4533 | - end else if (currentNo <> -1) and (not alreadyExist) then begin | |
4534 | - // IE7Î | |
4535 | - if Pos('about:..', url) = 1 then begin | |
4536 | - url := 'about:blank..' + Copy( url, Length('about:..')+1, Length(url) ) | |
4537 | - end; | |
4538 | - // ©ªÖÌN©çX|bvpÌÔæ¾ | |
4539 | - if Pos('about:blank..', url) = 1 then begin | |
4540 | - // No ÔÖÌNª êÎQÆ è | |
4541 | - url2 := THTMLCreate.GetRespopupURL(url, ThreadItem.URL); | |
4542 | - PathRec := Gikosys.Parse2chURL2(url2); | |
4543 | - if (not PathRec.FNoParam) then begin | |
4544 | - Gikosys.GetPopupResNumber(url2,PathRec.FSt,PathRec.FTo); | |
4545 | - end; | |
4546 | - // ÎÛXàµÍ»êðÜÞÈçQÆ èÆ·é | |
4547 | - if (PathRec.FSt = No) or | |
4548 | - ((PathRec.FSt <= No) and (PathRec.FTo >= No)) then begin | |
4549 | - alreadyExist := True; | |
4550 | - resNo.Add(IntToStr(currentNo)); | |
4551 | - end; | |
4552 | - end; | |
4553 | - end; | |
4554 | - end; | |
4555 | - end; | |
4556 | - // ³§ÀÈÌÅ-1Åè | |
4557 | - GikoForm.ActiveContent.IDAnchorPopup( | |
4558 | - GikoSys.CreateResAnchor(resNo, ThreadItem, -1)); | |
4559 | - finally | |
4560 | - resNo.Clear; | |
4561 | - resNo.Free; | |
4562 | - end; | |
4563 | - end; | |
4564 | -end; | |
4565 | 4466 | |
4566 | 4467 | end. |
4567 | 4468 |
@@ -213,11 +213,10 @@ type | ||
213 | 213 | procedure GetPopupResNumber(URL : string; var stRes, endRes : Int64); |
214 | 214 | |
215 | 215 | property Bayesian : TGikoBayesian read FBayesian write FBayesian; |
216 | - function CreateResAnchor(var Numbers: TStringList; ThreadItem: TThreadItem; limited: Integer):string; | |
216 | + function CreateSameIDResAnchor(var Numbers: TStringList; ThreadItem: TThreadItem; limited: Integer):string; | |
217 | 217 | procedure GetSameIDRes(const AID : string; ThreadItem: TThreadItem;var body: TStringList); overload; |
218 | 218 | procedure GetSameIDRes(AIDNum : Integer; ThreadItem: TThreadItem;var body: TStringList); overload; |
219 | 219 | function GetResID(AIDNum: Integer; ThreadItem: TThreadItem): String; |
220 | - function ExtructResID(ADateStr: String): String; | |
221 | 220 | //! PêðÍ |
222 | 221 | procedure SpamCountWord( const text : string; wordCount : TWordCount ); |
223 | 222 | //! wKNA |
@@ -226,6 +225,8 @@ type | ||
226 | 225 | procedure SpamLearn( wordCount : TWordCount; isSpam : Boolean ); |
227 | 226 | //! Xpx |
228 | 227 | function SpamParse( const text : string; wordCount : TWordCount ) : Extended; |
228 | + //øªAútÅàÅàÈ¢±Æð²×é | |
229 | + function NotDateorTimeString(const AStr : string): boolean; | |
229 | 230 | |
230 | 231 | //! øÉçêÄ«½út/IDÉBE̶ñª Á½çAvt@CÖÌNðÇÁ |
231 | 232 | function AddBeProfileLink(AID : string; ANum: Integer): string; |
@@ -2508,7 +2509,6 @@ procedure TGikoSys.ListBoardFile; | ||
2508 | 2509 | var |
2509 | 2510 | boardFileList : TStringList; |
2510 | 2511 | i, l : Integer; |
2511 | - sCategory : TCategory; | |
2512 | 2512 | begin |
2513 | 2513 | // BBS ÌJú |
2514 | 2514 | try |
@@ -2551,20 +2551,6 @@ begin | ||
2551 | 2551 | BoardFileList.Free; |
2552 | 2552 | end; |
2553 | 2553 | end; |
2554 | - | |
2555 | - // ÁêprBBS¶¬ | |
2556 | - // ùɶݷéêÍí·é | |
2557 | - DestorySpecialBBS(BoardGroup.SpecialBBS); | |
2558 | - SpecialBBS := TBBS.Create(''); | |
2559 | - SpecialBBS.Title := 'Áêpr(ñ\¦)'; | |
2560 | - sCategory := TCategory.Create; | |
2561 | - sCategory.No := 1; | |
2562 | - sCategory.Title := 'Áêpr(ñ\¦)'; | |
2563 | - SpecialBBS.Add(sCategory); | |
2564 | - BoardGroup.SpecialBoard := TSpecialBoard.Create(nil, 'http://localhost/gikonavi/special/index.html'); | |
2565 | - BoardGroup.SpecialBoard.Title := '^uê'; | |
2566 | - BoardGroup.SpecialBoard.IsThreadDatRead := True; | |
2567 | - sCategory.Add(BoardGroup.SpecialBoard); | |
2568 | 2554 | end; |
2569 | 2555 | |
2570 | 2556 | {! |
@@ -2769,7 +2755,7 @@ end; | ||
2769 | 2755 | \param limited ñ·éð§À·éÈç1Èã |
2770 | 2756 | \return ñ³ê½XAJ[ |
2771 | 2757 | } |
2772 | -function TGikoSys.CreateResAnchor( | |
2758 | +function TGikoSys.CreateSameIDResAnchor( | |
2773 | 2759 | var Numbers: TStringList; ThreadItem: TThreadItem; |
2774 | 2760 | limited: Integer):string; |
2775 | 2761 | var |
@@ -2881,6 +2867,8 @@ function TGikoSys.GetResID(AIDNum: Integer; ThreadItem: TThreadItem): String; | ||
2881 | 2867 | var |
2882 | 2868 | Res: TResRec; |
2883 | 2869 | boardPlugIn : TBoardPlugIn; |
2870 | + stList: TStringList; | |
2871 | + i : Integer; | |
2884 | 2872 | begin |
2885 | 2873 | Result := ''; |
2886 | 2874 | if (ThreadItem <> nil) and (ThreadItem.IsLogFile) |
@@ -2894,40 +2882,51 @@ begin | ||
2894 | 2882 | end else begin |
2895 | 2883 | THTMLCreate.DivideStrLine( ReadThreadFile(ThreadItem.GetThreadFileName, AIDNum), @Res); |
2896 | 2884 | end; |
2897 | - Result := ExtructResID(Res.FDateTime); | |
2885 | + Result := Res.FDateTime; | |
2886 | + if AnsiPos('id', AnsiLowerCase(Result)) > 0 then begin | |
2887 | + Result := Copy(Result, AnsiPos('id', AnsiLowerCase(Result)) - 1, 11); | |
2888 | + if AnsiPos(' be:', AnsiLowerCase(Result)) > 0 then begin | |
2889 | + Result := Copy(Result, 1, AnsiPos(' BE:', AnsiLowerCase(Result)) - 1) | |
2890 | + end; | |
2891 | + end else begin | |
2892 | + stlist := TStringList.Create; | |
2893 | + try | |
2894 | + stList.DelimitedText := Result; | |
2895 | + Result := ''; | |
2896 | + for i := 0 to stList.Count - 1 do | |
2897 | + if Length(WideString(stList[i])) = 8 then begin | |
2898 | + if NotDateorTimeString(stList[i]) then begin | |
2899 | + Result := stList[i]; | |
2900 | + break; | |
2901 | + end; | |
2902 | + end; | |
2903 | + finally | |
2904 | + stList.Free; | |
2905 | + end; | |
2906 | + end; | |
2898 | 2907 | end; |
2899 | 2908 | end; |
2909 | + | |
2900 | 2910 | {! |
2901 | -\brief XÌ©çIDðo·é | |
2902 | -\param ADateStr ̶ñ | |
2903 | -\return ID(IDÆÝȹ骪ȢƫÍó¶ñ) | |
2911 | +\brief 𦷶ñÅͳ¢©Ç¤© | |
2912 | +\param AStr ²×é¶ñ | |
2913 | +\return Åͳ¢Èç True | |
2914 | +\todo Ûè`(Not)æèmèn(Is) | |
2904 | 2915 | } |
2905 | -function TGikoSys.ExtructResID(ADateStr: String): String; | |
2906 | -var | |
2907 | - stlist : TStringList; | |
2916 | +function TGikoSys.NotDateorTimeString(const AStr : string): boolean; | |
2908 | 2917 | begin |
2909 | - Result := ''; | |
2910 | - if AnsiPos('id', AnsiLowerCase(ADateStr)) > 0 then begin | |
2911 | - Result := Copy(ADateStr, AnsiPos('id', AnsiLowerCase(ADateStr)), Length(ADateStr)); | |
2912 | - if AnsiPos(' ', Result) > 0 then begin | |
2913 | - Result := Copy(Result, 1, AnsiPos(' ', Result) - 1); | |
2914 | - end; | |
2915 | - Result := ' ' + Result; | |
2916 | - end else begin | |
2917 | - stlist := TStringList.Create; | |
2918 | - try | |
2919 | - stList.Delimiter := ' '; | |
2920 | - stList.DelimitedText := ADateStr; | |
2921 | - // út ID ¼@ÆÅèÅl¦é | |
2922 | - if (stList.Count >= 3) then begin | |
2923 | - if Length(stList[3 - 1]) >= 7 then begin | |
2924 | - Result := stList[3 - 1]; | |
2925 | - end; | |
2926 | - end; | |
2927 | - finally | |
2928 | - stList.Free; | |
2929 | - end; | |
2930 | - end; | |
2918 | + Result := false; | |
2919 | + try | |
2920 | + StrToDate(AStr); | |
2921 | + except | |
2922 | + try | |
2923 | + StrToTime(AStr); | |
2924 | + Result := false; | |
2925 | + except | |
2926 | + Result := true; | |
2927 | + end; | |
2928 | + end; | |
2929 | + | |
2931 | 2930 | end; |
2932 | 2931 | |
2933 | 2932 | {! |
@@ -1325,19 +1325,13 @@ begin | ||
1325 | 1325 | end; |
1326 | 1326 | |
1327 | 1327 | procedure TOptionDialog.SoundPlayButtonClick(Sender: TObject); |
1328 | -var | |
1329 | - s : String; | |
1330 | 1328 | begin |
1331 | - s := SoundFileEdit.Text; | |
1332 | - if (AnsiPos('.\', s) = 1) then begin | |
1333 | - s := GikoSys.Setting.GetAppDir + Copy(s, 2, Length(s)); | |
1334 | - end; | |
1335 | - if not FileExists(s) then begin | |
1329 | + if not FileExists(SoundFileEdit.Text) then begin | |
1336 | 1330 | MsgBox(Handle, '¶ÝµÈ¢t@CÅ·', 'G[', MB_ICONSTOP or MB_OK); |
1337 | 1331 | SoundFileEdit.Text := ''; |
1338 | 1332 | Exit; |
1339 | 1333 | end; |
1340 | - if not sndPlaySound(PChar(s), SND_ASYNC or SND_NOSTOP) then begin | |
1334 | + if not sndPlaySound(PChar(SoundFileEdit.Text), SND_ASYNC or SND_NOSTOP) then begin | |
1341 | 1335 | sndPlaySound(nil, SND_ASYNC); |
1342 | 1336 | end; |
1343 | 1337 | end; |
@@ -66,8 +66,6 @@ begin | ||
66 | 66 | RawDocument := ''; |
67 | 67 | FEvent := nil; |
68 | 68 | ShowWindow(Self.Handle, SW_HIDE); |
69 | - GikoSys.ShowRefCount('ResPop Create', Self.ControlInterface); | |
70 | - GikoSys.ShowRefCount('ResPop.Document Create', Self.ControlInterface.Document); | |
71 | 69 | end; |
72 | 70 | |
73 | 71 | destructor TResPopupBrowser.Destroy; |
@@ -86,10 +84,6 @@ begin | ||
86 | 84 | FEvent := nil; |
87 | 85 | end; |
88 | 86 | FThread := nil; |
89 | - | |
90 | - GikoSys.ShowRefCount('ResPop Desctroy', Self.ControlInterface); | |
91 | - GikoSys.ShowRefCount('ResPop.Document Create', Self.ControlInterface.Document); | |
92 | - | |
93 | 87 | inherited Destroy; |
94 | 88 | end; |
95 | 89 |
@@ -142,7 +136,7 @@ begin | ||
142 | 136 | end; |
143 | 137 | procedure TResPopupBrowser.NavigateBlank(Forced: Boolean); |
144 | 138 | begin |
145 | - if (not Assigned(Self.ControlInterface.Document)) or (Forced) then begin | |
139 | + if (not Assigned(Self.Document)) or (Forced) then begin | |
146 | 140 | Self.Navigate('about:blank'); |
147 | 141 | end; |
148 | 142 | while (Self.ReadyState <> READYSTATE_COMPLETE) and |
@@ -198,7 +192,7 @@ begin | ||
198 | 192 | ARect := CalcRect(Screen.MonitorFromPoint(p).WorkareaRect, |
199 | 193 | not OnlyTitle); |
200 | 194 | |
201 | - FEvent := THTMLDocumentEventSink.Create(Self, Self.OleObject.Document, HTMLDocumentEvents2); | |
195 | + FEvent := THTMLDocumentEventSink.Create(Self, Self.Document, HTMLDocumentEvents2); | |
202 | 196 | FEvent.OnClick := ResPopupBrowserClick; |
203 | 197 | FEvent.OnDoubleClick := ResPopupBrowserDbClick; |
204 | 198 | Self.Visible := True; |
@@ -278,7 +272,7 @@ var | ||
278 | 272 | DIV_X, DIV_Y: Integer; |
279 | 273 | begin |
280 | 274 | GetCursorpos(p); |
281 | - ele := ((Self.ControlInterface.Document as IHTMLDocument2).body as IHTMLElement2); | |
275 | + ele := ((Self.Document as IHTMLDocument2).body as IHTMLElement2); | |
282 | 276 | if Scroll then begin |
283 | 277 | h := GetWindowHeight + 10; |
284 | 278 | w := ele.scrollWidth + 25 |
@@ -1218,16 +1218,8 @@ begin | ||
1218 | 1218 | if Exists then begin |
1219 | 1219 | for i := 0 to GetSoundCount - 1 do begin |
1220 | 1220 | SoundFileName[i] := ini.ReadString('Sound', SoundName[i], ''); |
1221 | - // ÎQÆÎô | |
1222 | - s := SoundFileName[i]; | |
1223 | - if (AnsiPos('.\', SoundFileName[i]) = 1) then begin | |
1224 | - s := GetAppDir | |
1225 | - + Copy(SoundFileName[i], 2, Length(SoundFileName[i])); | |
1226 | - end; | |
1227 | - // t@C̶Ý`FbN | |
1228 | - if not FileExists(SoundFileName[i]) then begin | |
1229 | - SoundFileName[i] := ''; | |
1230 | - end; | |
1221 | + if not FileExists(SoundFileName[i]) then | |
1222 | + SoundFileName[i] := ''; | |
1231 | 1223 | end; |
1232 | 1224 | end else begin |
1233 | 1225 | s := GetAppDir + '\sound\'; |
@@ -1880,11 +1872,6 @@ begin | ||
1880 | 1872 | for i := 0 to GetSoundCount - 1 do begin |
1881 | 1873 | if SoundName[i] = Name then begin |
1882 | 1874 | Result := SoundFileName[i]; |
1883 | - // ÎpXÎô | |
1884 | - if (AnsiPos('.\', Result) = 1) then begin | |
1885 | - Result := GetAppDir | |
1886 | - + Copy(Result, 2, Length(Result)); | |
1887 | - end; | |
1888 | 1875 | Exit; |
1889 | 1876 | end; |
1890 | 1877 | end; |
@@ -79,7 +79,7 @@ http://www.microsoft.com/windows95/downloads/contents/WUAdminTools/S_WUNetworkin | ||
79 | 79 | ------------------------------ |
80 | 80 | J°ÙFDelphi6 Professional (UP2 + RTL UP2 + RTL UP3) |
81 | 81 | Delphi6 Personal(UP2 + RTL UP2 + RTL UP3) |
82 | -OS FWindowsXP Professional Edition(SP3) + IE7 | |
82 | +OS FWindowsXP Professional Edition(SP2) + IE7 | |
83 | 83 | WindowsXP Professional Edition(SP1) + IE6(SP1) |
84 | 84 | Windows2000 Professional (SP4) + IE6(SP1) |
85 | 85 |
@@ -108,16 +108,10 @@ LICENSE | ||
108 | 108 | ------------------------------ |
109 | 109 | ð |
110 | 110 | ------------------------------ |
111 | -2008/09/20 | |
111 | +2008/0X/XX | |
112 | 112 | Version ÊÞÀ58 |
113 | 113 | vr [ÌURL©ço^µÄ éOAvðN®·é@\ðÇÁ |
114 | 114 | XMGfB^ÅAA±µÄeÅ«éæ¤É·é@\ðÇÁ |
115 | - J¢Ä¢é^uÌXbhÌêðXbhêÉ\¦·é@\ðÇÁ | |
116 | - Ü¿BBSÌPATH_INFO`®ÌURLÉÎ | |
117 | - TEhCxgÌt@CwèðÎpXÅwèÅ«éæ¤ÉC³ | |
118 | - \¦Ì^uÌêðXbhêÉ\¦·éANVðÇÁ | |
119 | - µ½çÎJBBSÌÂXV@\C³ | |
120 | - datt@CðXbhêÉD&Dµ½Æ«ÉAt@C¼ªs³Å·G[ÉíÉÈésïÌC³ | |
121 | 115 | |
122 | 116 | 2008/03/22 |
123 | 117 | Version ÊÞÀ57 [X2 |
@@ -83,7 +83,7 @@ const | ||
83 | 83 | MAJOR_VERSION = 1; |
84 | 84 | MINOR_VERSION = 0; |
85 | 85 | RELEASE_VERSION = 'beta'; |
86 | - REVISION_VERSION = 19; | |
86 | + REVISION_VERSION = 18; | |
87 | 87 | |
88 | 88 | // ========================================================================= |
89 | 89 | // GpÖ |
@@ -269,7 +269,6 @@ var | ||
269 | 269 | const |
270 | 270 | BBS_HOST = 'machi.to'; |
271 | 271 | THREAD_MARK = '/bbs/read.pl'; |
272 | - THREAD_MARK2= '/bbs/read.cgi'; | |
273 | 272 | begin |
274 | 273 | |
275 | 274 | try |
@@ -281,10 +280,6 @@ begin | ||
281 | 280 | foundPos := AnsiPos( BBS_HOST, uri.Host ); |
282 | 281 | if (foundPos > 0) and (Length( uri.Host ) - foundPos + 1 = Length( BBS_HOST )) then begin |
283 | 282 | foundPos := Pos( THREAD_MARK, inURL ); |
284 | - if (foundPos = 0) then begin | |
285 | - // VURLÎ | |
286 | - foundPos := Pos( THREAD_MARK2, inURL ); | |
287 | - end; | |
288 | 283 | if foundPos > 0 then |
289 | 284 | Result := atThread |
290 | 285 | else if (uriList.Count > 1) and (uri.Path <> '/') then // Å㪠'/' ÅÂßçêÄéÈç 3 |
@@ -314,10 +309,9 @@ procedure OnExtractBoardURL( | ||
314 | 309 | var |
315 | 310 | uri : TIdURI; |
316 | 311 | uriList : TStringList; |
317 | - URL : String; | |
312 | + URL : String; | |
318 | 313 | const |
319 | 314 | THREAD_MARK = '/bbs/read.pl'; |
320 | - THREAD_MARK2= '/bbs/read.cgi'; | |
321 | 315 | begin |
322 | 316 | URL := string(inURL); |
323 | 317 | if AnsiPos(THREAD_MARK, URL) > 0 then begin |
@@ -339,27 +333,6 @@ begin | ||
339 | 333 | uri.Free; |
340 | 334 | uriList.Free; |
341 | 335 | end; |
342 | - end else if AnsiPos(THREAD_MARK2, URL) > 0 then begin | |
343 | - if Copy( inURL, Length( inURL ), 1 ) = '/' then | |
344 | - uri := TIdURI.Create( URL ) | |
345 | - else | |
346 | - uri := TIdURI.Create( URL + '/' ); | |
347 | - | |
348 | - uriList := TStringList.Create; | |
349 | - try | |
350 | - // http://kanto.machi.to/bbs/read.cgi/kana/1215253035/l50 | |
351 | - // http://kanto.machi.to/kana/ | |
352 | - uriList.Delimiter := '/'; | |
353 | - uriList.DelimitedText := uri.Path; | |
354 | - URL := uri.Protocol + '://' + uri.Host + '/'; | |
355 | - if (uriList.Count >= 4) then begin | |
356 | - URL := URL + uriList[3] + '/'; | |
357 | - end; | |
358 | - outURL := CreateResultString(URL); | |
359 | - finally | |
360 | - uri.Free; | |
361 | - uriList.Free; | |
362 | - end; | |
363 | 336 | end else begin |
364 | 337 | outURL := CreateResultString(URL); |
365 | 338 | end; |
@@ -900,8 +873,6 @@ var | ||
900 | 873 | uri : TIdURI; |
901 | 874 | uriList : TStringList; |
902 | 875 | foundPos : Integer; |
903 | -const | |
904 | - THREAD_MARK2= '/bbs/read.cgi'; | |
905 | 876 | begin |
906 | 877 | |
907 | 878 | foundPos := AnsiPos( '?', URL ); |
@@ -917,26 +888,7 @@ begin | ||
917 | 888 | uri.Free; |
918 | 889 | uriList.Free; |
919 | 890 | end; |
920 | - end else begin | |
921 | - // V`® ? | |
922 | - foundPos := AnsiPos(THREAD_MARK2, URL); | |
923 | - if (foundPos > 0) then begin | |
924 | - uri := TIdURI.Create( URL ); | |
925 | - uriList := TStringList.Create; | |
926 | - try | |
927 | - uriList.Delimiter := '/'; | |
928 | - uriList.DelimitedText := uri.Path; | |
929 | - if (uriList.Count >= 5) then begin | |
930 | - Result := | |
931 | - uri.Protocol + '://' + uri.Host + '/bbs/read.pl?' + | |
932 | - 'BBS=' + uriList[3] + '&KEY=' + uriList[4]; | |
933 | - end; | |
934 | - finally | |
935 | - uri.Free; | |
936 | - uriList.Free; | |
937 | - end; | |
938 | - end; | |
939 | - end; | |
891 | + end; | |
940 | 892 | |
941 | 893 | end; |
942 | 894 |
@@ -201,9 +201,6 @@ var | ||
201 | 201 | key : string; |
202 | 202 | htmlList : TStringList; |
203 | 203 | i : Integer; |
204 | - | |
205 | - resultArea : Boolean; | |
206 | - pos : Integer; | |
207 | 204 | const |
208 | 205 | //http://rentalbbs.livedoor.com/jbbs/search/?word=%C2%E7%B3%D8&category=auto |
209 | 206 | BBS_HOST = 'http://rentalbbs.livedoor.com/'; |
@@ -215,7 +212,7 @@ const | ||
215 | 212 | label |
216 | 213 | NextBoard; |
217 | 214 | begin |
218 | - responseCode := 0; | |
215 | + | |
219 | 216 | category := CATEGORIES[ CategoryComboBox.ItemIndex ]; |
220 | 217 | boardname := BoardNameEdit.Text; |
221 | 218 |
@@ -240,30 +237,31 @@ begin | ||
240 | 237 | htmlList := TStringList.Create(); |
241 | 238 | try |
242 | 239 | htmlList.Text := CustomStringReplace(downResult, '<br>', #13#10); |
243 | - resultArea := False; | |
244 | - for i := 0 to htmlList.Count - 1 do begin | |
240 | + for i := htmlList.Count - 1 downto 0 do begin | |
245 | 241 | downResult := htmlList[i]; |
246 | 242 | try |
247 | - //<div class="searchResults"> | |
248 | - //<h2><span class="ranking">[1]</span><a href="http://jbbs.livedoor.jp/auto/5497/">MIT-MCC BBS</a><span class="point"><span class="all">4750pt</span><span class="yesterday">(Yesterday40 pt)</span></span></h2> | |
249 | - //<p> HÆåw@[^TCNÌBBSÅ·Be©`FbN·éæ¤ÉµÜµå¤ô(&gt;_&lt;)b</p> | |
250 | - //</div> | |
251 | - if (not resultArea) and (AnsiPos('class="searchResults"', downResult) > 0) then begin | |
252 | - resultArea := True; | |
253 | - end else if (resultArea) then begin | |
254 | - pos := AnsiPos('<a href="', downResult); | |
255 | - if (pos > 0) then begin | |
256 | - resultArea := False; | |
257 | - downResult := Copy(downResult, pos + 9, Length(downResult)); | |
258 | - key := Copy(downResult, 1, AnsiPos('"', downResult)-1); | |
259 | - downResult := Copy(downResult, AnsiPos('>', downResult) + 1, Length(downResult)); | |
260 | - | |
261 | - board := Copy(downResult, 1, AnsiPos('</a>', downResult) -1); | |
262 | - | |
263 | - board := CustomStringReplace(board, '=', '') + '=' + key; | |
264 | - LogEdit.SelText := board + #13#10; | |
265 | - FBoardList.Add( board ); | |
266 | - end; | |
243 | + //<a href="/auto/2348/">g^©®Ôf¦Â</a> | |
244 | + //<small><strng><a href="http://jbbs.livedoor.jp/auto/4112/">¾¡åw@ñEZå</a></strong></small></td> | |
245 | + if (AnsiPos('<small><strng><a href="', downResult) > 0) | |
246 | + and (AnsiPos(category, downResult) > 0) then begin | |
247 | + downResult := CustomStringReplace(downResult, '<small><strng>', ''); | |
248 | + board := Copy(downResult, AnsiPos('<a href="', downResult) + 9, | |
249 | + Length(downResult)); | |
250 | + key := Copy(board, AnsiPos('">', board) + 2, | |
251 | + Length(board)); | |
252 | + key := Copy(key, 1, AnsiPos('</a>', key) -1); | |
253 | + | |
254 | + board := Copy(board, 1, AnsiPos('">', board) - 1); | |
255 | + if (board = '../') then begin | |
256 | + board := CustomStringReplace(board, '../', BOARD_HOST); | |
257 | + end else if (AnsiPos('/', board) = 1) then begin | |
258 | + board := BOARD_HOST + Copy(board, 2, Length(board)); | |
259 | + end; | |
260 | + | |
261 | + board := key + '=' + board; | |
262 | + | |
263 | + LogEdit.SelText := board + #13#10; | |
264 | + FBoardList.Add( board ); | |
267 | 265 | end; |
268 | 266 | except |
269 | 267 | end; |
@@ -2,7 +2,7 @@ library ShitarabaJBBSPlugIn; | ||
2 | 2 | |
3 | 3 | { |
4 | 4 | ShitarabaJBBSPlugIn |
5 | - $Id: ShitarabaJBBSPlugIn.dpr,v 1.45 2008/08/03 02:45:48 h677 Exp $ | |
5 | + $Id: ShitarabaJBBSPlugIn.dpr,v 1.44 2006/07/02 09:48:04 h677 Exp $ | |
6 | 6 | } |
7 | 7 | |
8 | 8 | uses |
@@ -83,7 +83,7 @@ const | ||
83 | 83 | MAJOR_VERSION = 1; |
84 | 84 | MINOR_VERSION = 1; |
85 | 85 | RELEASE_VERSION = 'alpha'; |
86 | - REVISION_VERSION = 17; | |
86 | + REVISION_VERSION = 15; | |
87 | 87 | |
88 | 88 | SYNCRONIZE_MENU_CAPTION = 'µ½çÎJBBSÂXV'; |
89 | 89 |
@@ -1,31 +1,40 @@ | ||
1 | 1 | [Setting] |
2 | -@endless=20 | |
3 | 2 | @liveplus=10 |
4 | -@news=156 | |
3 | +@news=30 | |
5 | 4 | @newsplus=128 |
6 | -@operate=24 | |
7 | -@sec2chd=20 | |
8 | -academy6=45 | |
9 | -babiru=30 | |
10 | -bubble6=45 | |
11 | -changi=45 | |
12 | -ex24=45 | |
13 | -food8=45 | |
14 | -gimpo=45 | |
15 | -ipv6=45 | |
16 | -life9=45 | |
17 | -live23=15 | |
18 | -live24=15 | |
19 | -love6=45 | |
20 | -mamono=45 | |
21 | -namidame=45 | |
22 | -pc11=45 | |
23 | -qb5=45 | |
24 | -qiufen=30 | |
25 | -schiphol=45 | |
26 | -science6=45 | |
27 | -set=30 | |
28 | -society6=45 | |
29 | -venus=30 | |
30 | -yomi=30 | |
31 | -yutori=10 | |
5 | +@news4vip=10 | |
6 | +@news4viptasu=10 | |
7 | +academy6=20 | |
8 | +anime3=20 | |
9 | +bubble6=20 | |
10 | +etc7=20 | |
11 | +ex21=20 | |
12 | +food8=20 | |
13 | +game13=20 | |
14 | +game14=20 | |
15 | +hobby10=20 | |
16 | +human7=20 | |
17 | +life9=20 | |
18 | +live23=10 | |
19 | +live24=10 | |
20 | +live27=10 | |
21 | +love6=20 | |
22 | +mamono=10 | |
23 | +money6=20 | |
24 | +music8=20 | |
25 | +namidame=10 | |
26 | +news24=20 | |
27 | +pc11=20 | |
28 | +qb5=20 | |
29 | +qiufen=20 | |
30 | +babiru=20 | |
31 | +yomi=20 | |
32 | +venus=20 | |
33 | +set=20 | |
34 | +school7=20 | |
35 | +science6=20 | |
36 | +society6=20 | |
37 | +sports11=20 | |
38 | +tmp7=20 | |
39 | +tv11=20 | |
40 | +yutori=20 | |
\ No newline at end of file |