ギコナビ
Revision | 4bc7e22e85fa05a318d57b6b1a38c9335b9e698e (tree) |
---|---|
Time | 2004-10-03 03:37:52 |
Author | cvs2git <cvs2git> |
Commiter | cvs2git |
This commit was manufactured by cvs2svn to create tag 'v1_49_0_544'.
@@ -229,8 +229,7 @@ var | ||
229 | 229 | // httpSocket : TIdHTTP; |
230 | 230 | resStream : TMemoryStream; |
231 | 231 | content : string; |
232 | -const | |
233 | - LIVEDOOR_URL = 'http://jbbs.livedoor.jp/'; | |
232 | + | |
234 | 233 | begin |
235 | 234 | |
236 | 235 | {$IFDEF DEBUG} |
@@ -271,8 +270,7 @@ begin | ||
271 | 270 | Result := socket.ResponseCode; |
272 | 271 | if (Length( content ) = 0) and (Result = 206) then |
273 | 272 | Result := 304; |
274 | - //µ½çÎJBBSÍwb_ÉG[îñªÚéçµ¢ÌÅA±±Å`FbN | |
275 | - if ( AnsiPos(LIVEDOOR_URL, inURL) > 0 ) and (Result = 200) then begin | |
273 | + if ( AnsiPos('http://jbbs.livedoor.com/', inURL) > 0 ) and (Result = 200) then begin | |
276 | 274 | if( AnsiPos('STORAGE IN', socket.Response.RawHeaders.Text) > 0 ) then begin |
277 | 275 | Result := 302; |
278 | 276 | end; |
@@ -117,50 +117,13 @@ function TFavoriteBoardItem.GetItem : TBoard; | ||
117 | 117 | var |
118 | 118 | protocol, host, path, document, port, bookmark : string; |
119 | 119 | BBSID{, BBSKey} : string; |
120 | - tmpURL, boardURL : string; | |
120 | + tmpURL : string; | |
121 | 121 | // category : TCategory; |
122 | - i, bi: Integer; | |
123 | - tmpThread: TThreadItem; | |
124 | - tmpBoard: TBoard; | |
125 | 122 | begin |
126 | 123 | |
127 | 124 | if FItem = nil then begin |
128 | 125 | FItem := BBSsFindBoardFromURL( URL ); |
129 | 126 | if FItem = nil then begin |
130 | - //===== vOC | |
131 | - try | |
132 | - //ìÆ// | |
133 | - bi := High( BoardPlugIns ); | |
134 | - for i := Low( BoardPlugIns ) to bi do begin | |
135 | - if Assigned( Pointer( BoardPlugIns[ i ].Module ) ) then begin | |
136 | - case BoardPlugIns[ i ].AcceptURL( URL ) of | |
137 | - atThread: | |
138 | - begin | |
139 | - tmpThread := TThreadItem.Create( BoardPlugIns[ i ], URL ); | |
140 | - boardURL := tmpThread.BoardPlugIn.GetBoardURL( DWORD( tmpThread ) ); | |
141 | - FItem := BBSsFindBoardFromURL( boardURL ); | |
142 | - URL := FItem.URL; | |
143 | - tmpThread.Free; | |
144 | - break; | |
145 | - end; | |
146 | - atBoard: | |
147 | - begin | |
148 | - tmpBoard := TBoard.Create(BoardPlugIns[ i ], URL); | |
149 | - FItem := BBSsFindBoardFromURL( tmpBoard.URL ); | |
150 | - tmpBoard.Free; | |
151 | - if FItem <> nil then begin | |
152 | - URL := FItem.URL; | |
153 | - end; | |
154 | - break; | |
155 | - end; | |
156 | - end; | |
157 | - end; | |
158 | - end; | |
159 | - except | |
160 | - // exception ª¶µ½êÍàÉC¹½¢Ìű±ÅͽàµÈ¢ | |
161 | - end; | |
162 | - end; | |
163 | - if FItem = nil then begin | |
164 | 127 | tmpURL := URL; |
165 | 128 | GikoSys.ParseURI( tmpURL, protocol, host, path, document, port, bookmark ); |
166 | 129 | if GikoSys.Is2chHost( host ) then begin |
@@ -1,11 +1,11 @@ | ||
1 | 1 | object GikoForm: TGikoForm |
2 | - Left = 246 | |
3 | - Top = 188 | |
2 | + Left = 207 | |
3 | + Top = 235 | |
4 | 4 | HorzScrollBar.Visible = False |
5 | 5 | VertScrollBar.Visible = False |
6 | 6 | AutoScroll = False |
7 | 7 | Caption = '-' |
8 | - ClientHeight = 404 | |
8 | + ClientHeight = 545 | |
9 | 9 | ClientWidth = 854 |
10 | 10 | Color = clBtnFace |
11 | 11 | Font.Charset = SHIFTJIS_CHARSET |
@@ -27,7 +27,7 @@ object GikoForm: TGikoForm | ||
27 | 27 | TextHeight = 12 |
28 | 28 | object StatusBar: TStatusBar |
29 | 29 | Left = 0 |
30 | - Top = 384 | |
30 | + Top = 525 | |
31 | 31 | Width = 854 |
32 | 32 | Height = 20 |
33 | 33 | Panels = < |
@@ -47,13 +47,13 @@ object GikoForm: TGikoForm | ||
47 | 47 | Left = 0 |
48 | 48 | Top = 77 |
49 | 49 | Width = 854 |
50 | - Height = 307 | |
50 | + Height = 448 | |
51 | 51 | Align = alClient |
52 | 52 | BevelOuter = bvNone |
53 | 53 | TabOrder = 1 |
54 | 54 | object MessageSplitter: TSplitter |
55 | 55 | Left = 0 |
56 | - Top = 268 | |
56 | + Top = 409 | |
57 | 57 | Width = 854 |
58 | 58 | Height = 5 |
59 | 59 | Cursor = crVSplit |
@@ -66,7 +66,7 @@ object GikoForm: TGikoForm | ||
66 | 66 | Left = 0 |
67 | 67 | Top = 0 |
68 | 68 | Width = 854 |
69 | - Height = 268 | |
69 | + Height = 409 | |
70 | 70 | Align = alClient |
71 | 71 | BevelOuter = bvNone |
72 | 72 | TabOrder = 0 |
@@ -74,7 +74,7 @@ object GikoForm: TGikoForm | ||
74 | 74 | Left = 145 |
75 | 75 | Top = 0 |
76 | 76 | Width = 5 |
77 | - Height = 268 | |
77 | + Height = 409 | |
78 | 78 | Cursor = crHSplit |
79 | 79 | AutoSnap = False |
80 | 80 | ResizeStyle = rsUpdate |
@@ -83,7 +83,7 @@ object GikoForm: TGikoForm | ||
83 | 83 | Left = 0 |
84 | 84 | Top = 0 |
85 | 85 | Width = 145 |
86 | - Height = 268 | |
86 | + Height = 409 | |
87 | 87 | Align = alLeft |
88 | 88 | BevelOuter = bvNone |
89 | 89 | TabOrder = 0 |
@@ -270,7 +270,7 @@ object GikoForm: TGikoForm | ||
270 | 270 | Left = 150 |
271 | 271 | Top = 0 |
272 | 272 | Width = 704 |
273 | - Height = 268 | |
273 | + Height = 409 | |
274 | 274 | Align = alClient |
275 | 275 | BevelOuter = bvNone |
276 | 276 | TabOrder = 1 |
@@ -548,7 +548,7 @@ object GikoForm: TGikoForm | ||
548 | 548 | Left = 0 |
549 | 549 | Top = 194 |
550 | 550 | Width = 704 |
551 | - Height = 74 | |
551 | + Height = 215 | |
552 | 552 | Align = alClient |
553 | 553 | BevelOuter = bvNone |
554 | 554 | TabOrder = 1 |
@@ -556,7 +556,7 @@ object GikoForm: TGikoForm | ||
556 | 556 | Left = 0 |
557 | 557 | Top = 46 |
558 | 558 | Width = 704 |
559 | - Height = 8 | |
559 | + Height = 149 | |
560 | 560 | Align = alClient |
561 | 561 | BevelOuter = bvNone |
562 | 562 | UseDockManager = False |
@@ -566,7 +566,7 @@ object GikoForm: TGikoForm | ||
566 | 566 | Left = 0 |
567 | 567 | Top = 0 |
568 | 568 | Width = 704 |
569 | - Height = 8 | |
569 | + Height = 149 | |
570 | 570 | Align = alClient |
571 | 571 | TabOrder = 0 |
572 | 572 | OnEnter = BrowserEnter |
@@ -575,7 +575,7 @@ object GikoForm: TGikoForm | ||
575 | 575 | OnNewWindow2 = BrowserNewWindow2 |
576 | 576 | OnDocumentComplete = BrowserDocumentComplete |
577 | 577 | ControlData = { |
578 | - 4C000000C3480000D40000000000000000000000000000000000000000000000 | |
578 | + 4C000000C3480000660F00000000000000000000000000000000000000000000 | |
579 | 579 | 000000004C000000000000000000000001000000E0D057007335CF11AE690800 |
580 | 580 | 2B2E12620A000000000000004C0000000114020000000000C000000000000046 |
581 | 581 | 8000000000000000000000000000000000000000000000000000000000000000 |
@@ -584,7 +584,7 @@ object GikoForm: TGikoForm | ||
584 | 584 | end |
585 | 585 | object BrowserBottomPanel: TGikoPanel |
586 | 586 | Left = 0 |
587 | - Top = 54 | |
587 | + Top = 195 | |
588 | 588 | Width = 704 |
589 | 589 | Height = 20 |
590 | 590 | Align = alBottom |
@@ -862,7 +862,7 @@ object GikoForm: TGikoForm | ||
862 | 862 | end |
863 | 863 | object MessagePanel: TPanel |
864 | 864 | Left = 0 |
865 | - Top = 273 | |
865 | + Top = 414 | |
866 | 866 | Width = 854 |
867 | 867 | Height = 34 |
868 | 868 | Align = alBottom |
@@ -1105,11 +1105,8 @@ type | ||
1105 | 1105 | { Public é¾ } |
1106 | 1106 | // FDownload: TDownload; |
1107 | 1107 | FControlThread: TThreadControl; |
1108 | - procedure MoveToURL(const inURL: string); | |
1109 | - function InsertBrowserTab( | |
1110 | - ThreadItem : TThreadItem; | |
1111 | - ActiveTab : Boolean = True | |
1112 | - ) : TBrowserRecord; | |
1108 | + procedure MoveToURL(URL: string); | |
1109 | + procedure InsertBrowserTab(ThreadItem: TThreadItem; ActiveTab: Boolean = True); | |
1113 | 1110 | procedure ReloadBBS; |
1114 | 1111 | function GetHttpState: Boolean; |
1115 | 1112 | procedure SetEnabledCloseButton(Enabled: Boolean); |
@@ -1194,18 +1191,18 @@ type | ||
1194 | 1191 | TBrowserRecord = class( TObject ) |
1195 | 1192 | private |
1196 | 1193 | FBrowser : TWebBrowser; |
1197 | - FEvent: THTMLDocumentEventSink; //!< uEUhL gCxg | |
1194 | + FEvent: THTMLDocumentEventSink;//uEUhL gCxg | |
1198 | 1195 | FThread : TThreadItem; |
1199 | 1196 | FLastSize : Integer; |
1200 | 1197 | FRepaint : Boolean; |
1201 | - FMovement : string; //!< XN[æAJ[ | |
1198 | + // FOnlyHundred: Boolean; | |
1202 | 1199 | public |
1203 | 1200 | destructor Destroy; override; |
1204 | 1201 | property Browser : TWebBrowser read FBrowser write FBrowser; |
1205 | 1202 | property Thread : TThreadItem read FThread write FThread; |
1206 | 1203 | property LastSize : Integer read FLastSize write FLastSize; |
1207 | 1204 | property Repaint : Boolean read FRepaint write FRepaint; |
1208 | - property Movement : string read FMovement write FMovement; | |
1205 | +// property OnlyHundred : Boolean read FOnlyHundred write FOnlyHundred; | |
1209 | 1206 | end; |
1210 | 1207 | |
1211 | 1208 | var |
@@ -1721,7 +1718,7 @@ begin | ||
1721 | 1718 | //Samba24Ìt@C`FbN |
1722 | 1719 | GikoSys.SambaFileExists(); |
1723 | 1720 | |
1724 | - //É¿áñêt@CÇÝoµ | |
1721 | + //^u©®ÇÝÝ (AV¶Ì½ßêó) | |
1725 | 1722 | end; |
1726 | 1723 | |
1727 | 1724 | // CoolBar ÌÝèðÏÉÛ¶ |
@@ -1885,12 +1882,6 @@ begin | ||
1885 | 1882 | if GikoSys.Setting.TabAutoLoadSave then begin |
1886 | 1883 | TabAutoLoadAction.Execute; |
1887 | 1884 | end; |
1888 | - //É¿áñêÄàT|[g@\ | |
1889 | - if GikoSys.Setting.GengoSupport then begin | |
1890 | - //\èn | |
1891 | - //Testü¯ | |
1892 | - end; | |
1893 | - | |
1894 | 1885 | FStartUp := true; |
1895 | 1886 | end; |
1896 | 1887 | end; |
@@ -2698,14 +2689,6 @@ begin | ||
2698 | 2689 | Item.SubItems[ idx ] := ''; |
2699 | 2690 | end else |
2700 | 2691 | Item.SubItems[ idx ] := FormatDateTime('yyyy/mm/dd hh:mm:ss', ThreadItem.CreateDate); |
2701 | - | |
2702 | - gbcLastModified: | |
2703 | - if (ThreadItem.LastModified = ZERO_DATE) then begin | |
2704 | - Item.SubItems[ idx ] := ''; | |
2705 | - end else | |
2706 | - Item.SubItems[ idx ] := FormatDateTime('yyyy/mm/dd hh:mm:ss', ThreadItem.LastModified); | |
2707 | - | |
2708 | - | |
2709 | 2692 | end; |
2710 | 2693 | Inc( idx ); |
2711 | 2694 | end; |
@@ -2734,10 +2717,6 @@ begin | ||
2734 | 2717 | Item.SubItems[ idx ] := ''; |
2735 | 2718 | end else |
2736 | 2719 | Item.SubItems[ idx ] := FormatDateTime('yyyy/mm/dd hh:mm:ss', ThreadItem.CreateDate); |
2737 | - | |
2738 | - gbcLastModified: | |
2739 | - Item.SubItems[ idx ] := ''; | |
2740 | - | |
2741 | 2720 | else |
2742 | 2721 | Item.SubItems[ idx ] := ''; |
2743 | 2722 | end; |
@@ -2877,32 +2856,44 @@ begin | ||
2877 | 2856 | end else begin |
2878 | 2857 | threadItem := GetActiveContent; |
2879 | 2858 | if Pos('about:blank..', Text) = 1 then begin |
2880 | - wkInt := LastDelimiter( '/', threadItem.URL ); | |
2881 | - if Pos( '?', Copy( threadItem.URL, wkInt, MaxInt ) ) = 0 then begin | |
2882 | - // Thread.URL Í PATH_INFO nµ | |
2883 | - URL := Copy( threadItem.URL, 1, LastDelimiter( '/', threadItem.URL ) ); | |
2884 | - wkInt := LastDelimiter( '/', Text ); | |
2885 | - if Pos( '?', Copy( Text, wkInt, MaxInt ) ) = 0 then | |
2886 | - // Text à PATH_INFO nµ | |
2887 | - URL := URL + Copy( Text, LastDelimiter( '/', Text ) + 1, MaxInt ) | |
2888 | - else | |
2889 | - // Text Í QUERY_STRING nµ | |
2890 | - URL := URL + Copy( Text, LastDelimiter( '?', Text ) + 1, MaxInt ); | |
2859 | + if (AnsiPos('http://jbbs.livedoor.com/', threadItem.URL) <> 0) or | |
2860 | + (AnsiPos('http://jbbs.shitaraba.com/', threadItem.URL) <> 0) then begin | |
2861 | + URL := Copy(threadItem.URL, 1, LastDelimiter('/',threadItem.URL)); | |
2862 | + Gikosys.GetPopupResNumber(Text,PathRec.FSt,PathRec.FTo); | |
2863 | + if ( PathRec.FSt <> 0 ) and ( PathRec.FTo <> 0 ) then | |
2864 | + buf := IntToStr(PathRec.FSt) + '-' + IntToStr(PathRec.FTo) | |
2865 | + else if( PathRec.FSt <> 0 ) then | |
2866 | + buf := IntToStr(PathRec.FSt); | |
2867 | + end else if AnsiPos('machi.to/bbs/', threadItem.URL) <> 0 then begin | |
2868 | + URL := threaditem.URL; | |
2869 | + buf := Copy(Text,AnsiPos('&st=',Text),Length(Text)-AnsiPos('&st=',Text) + 1); | |
2891 | 2870 | end else begin |
2892 | - // Thread.URL Í QUERY_STRING nµ | |
2893 | - URL := Copy( threadItem.URL, 1, LastDelimiter( '?', threadItem.URL ) ); | |
2894 | - wkInt := LastDelimiter( '/', Text ); | |
2895 | - if Pos( '?', Copy( Text, wkInt, MaxInt ) ) = 0 then begin | |
2896 | - // Text Í PATH_INFO nµ | |
2897 | - // URL ÉÂÆL[ª«çÈ¢ÌÅ Text ©ç¸Õ·é | |
2898 | - wkInt := LastDelimiter( '/', Copy( Text, 1, wkInt - 1 ) ); | |
2899 | - wkInt := LastDelimiter( '/', Copy( Text, 1, wkInt - 1 ) ); | |
2900 | - URL := Copy( URL, 1, Length( URL ) - 1 ) + Copy( Text, wkInt, MaxInt ); | |
2871 | + if (AnsiPos('&', threadItem.URL) <> 0) and (AnsiPos('&', Text) = 0)then begin | |
2872 | + URL := threadItem.URL; | |
2873 | + buf := Copy(Text,LastDelimiter('/',Text)+1,Length(Text)-LastDelimiter('/',Text)); | |
2874 | + if AnsiPos('-', buf) <> 0 then begin | |
2875 | + buf2 := Copy(buf, AnsiPos('-', buf) + 1, Length(buf)); | |
2876 | + Delete(buf, AnsiPos('-', buf), Length(buf)); | |
2877 | + if (IsNumeric(buf)) and (IsNumeric(buf2)) then | |
2878 | + buf := Format('&st=%s&to=%s', [buf, buf2]) | |
2879 | + else if (IsNumeric(buf)) then | |
2880 | + buf := Format('&st=%s&to=%s', [buf, buf]) | |
2881 | + else if (IsNumeric(buf)) then | |
2882 | + buf := Format('&st=%s&to=%s', [buf2, buf2]) | |
2883 | + else | |
2884 | + buf := ''; | |
2885 | + end else begin | |
2886 | + if IsNumeric(buf) then | |
2887 | + buf := Format('&st=%s&to=%s', [buf, buf]) | |
2888 | + else | |
2889 | + buf := ''; | |
2890 | + end; | |
2901 | 2891 | end else begin |
2902 | - // Text à QUERY_STRING nµ | |
2903 | - URL := URL + Copy( Text, LastDelimiter( '?', Text ) + 1, MaxInt ) | |
2892 | + URL := Copy(threadItem.URL, 1, LastDelimiter('/',threadItem.URL)); | |
2893 | + buf := Copy(Text,LastDelimiter('/',Text)+1,Length(Text)-LastDelimiter('/',Text)); | |
2904 | 2894 | end; |
2905 | 2895 | end; |
2896 | + URL := URL + buf; | |
2906 | 2897 | end else begin |
2907 | 2898 | URL := Text; |
2908 | 2899 | end; |
@@ -2911,9 +2902,8 @@ begin | ||
2911 | 2902 | if (PathRec.FNoParam) then begin |
2912 | 2903 | PathRec.FSt := 1; |
2913 | 2904 | PathRec.FTo := 1; |
2914 | - end else begin | |
2905 | + end else | |
2915 | 2906 | Gikosys.GetPopupResNumber(URL,PathRec.FSt,PathRec.FTo); |
2916 | - end; | |
2917 | 2907 | GikoSys.ParseURI( URL, Protocol, Host, Path, Document, Port, Bookmark ); |
2918 | 2908 | |
2919 | 2909 | if PathRec.FDone or (not GikoSys.Is2chHost( Host )) then begin |
@@ -2940,10 +2930,10 @@ begin | ||
2940 | 2930 | // wkIntTo := 1; |
2941 | 2931 | //if PathRec.FFirst then |
2942 | 2932 | // wkIntSt := 1; |
2943 | - //if PathRec.FStBegin then //http://````/-50Æ¢¤Æ« | |
2944 | - // wkIntSt := 1; // | |
2945 | - //if PathRec.FToEnd then //http://````/50-Æ¢¤Æ« | |
2946 | - // wkIntTo := 9999; // Ç¿çÌêàAGetPopupResNumberŤÜÔð²®·éÌÅÓæ¤B | |
2933 | + if PathRec.FStBegin then | |
2934 | + wkIntSt := 1; | |
2935 | + if PathRec.FToEnd then | |
2936 | + wkIntTo := 9999; | |
2947 | 2937 | |
2948 | 2938 | //ATitle := ActiveFileName <> PathRec.FKey; |
2949 | 2939 | if (FActiveContent <> nil) and (FActiveContent.Thread.URL = URL) then |
@@ -3459,7 +3449,6 @@ var | ||
3459 | 3449 | s: string; |
3460 | 3450 | boardPlugIn : TBoardPlugIn; |
3461 | 3451 | i: Integer; |
3462 | - browserRec : TBrowserRecord; | |
3463 | 3452 | begin |
3464 | 3453 | try |
3465 | 3454 | if Item.DownType = gdtBoard then |
@@ -3501,20 +3490,16 @@ begin | ||
3501 | 3490 | end; |
3502 | 3491 | if GikoSys.Setting.BrowserTabVisible then begin |
3503 | 3492 | if GetActiveContent = Item.ThreadItem then |
3504 | - browserRec := InsertBrowserTab(Item.ThreadItem) | |
3493 | + InsertBrowserTab(Item.ThreadItem) | |
3505 | 3494 | else if (ListView.Selected <> nil ) and ( TObject(ListView.Selected.Data) is TThreadItem ) and ( Item.ThreadItem = TThreadItem(ListView.Selected.Data)) then |
3506 | - browserRec := InsertBrowserTab(Item.ThreadItem, True) | |
3495 | + InsertBrowserTab(Item.ThreadItem, True) | |
3507 | 3496 | else |
3508 | - browserRec := InsertBrowserTab(Item.ThreadItem, False); | |
3509 | - if browserRec.Thread = BrowserNullTab.Thread then begin | |
3510 | - browserRec.Movement := BrowserNullTab.Movement; | |
3511 | - BrowserNullTab.Movement := ''; | |
3512 | - end; | |
3497 | + InsertBrowserTab(Item.ThreadItem, False); | |
3513 | 3498 | end else begin |
3514 | 3499 | if (GetActiveContent = Item.ThreadItem) or (FActiveContent = nil) or(FActiveContent.Browser = BrowserNullTab.Browser) then |
3515 | 3500 | InsertBrowserTab(Item.ThreadItem); |
3516 | 3501 | end; |
3517 | - Application.ProcessMessages; | |
3502 | + | |
3518 | 3503 | if Item.State = gdsComplete then begin |
3519 | 3504 | PlaySound('New'); |
3520 | 3505 | AddMessageList(ATitle + ' [Xæ¾®¹]', nil, gmiOK); |
@@ -3642,17 +3627,14 @@ begin | ||
3642 | 3627 | end; |
3643 | 3628 | end;} |
3644 | 3629 | |
3645 | -function TGikoForm.InsertBrowserTab( | |
3646 | - ThreadItem : TThreadItem; | |
3647 | - ActiveTab : Boolean = True | |
3648 | -) : TBrowserRecord; | |
3630 | +procedure TGikoForm.InsertBrowserTab(ThreadItem: TThreadItem; ActiveTab: Boolean = True); | |
3631 | + | |
3649 | 3632 | var |
3650 | - i, j, idx : Integer; | |
3651 | - favItem : TFavoriteThreadItem; | |
3633 | + i, j, idx: Integer; | |
3634 | + favItem : TFavoriteThreadItem; | |
3652 | 3635 | newBrowser : TBrowserRecord; |
3653 | 3636 | begin |
3654 | 3637 | |
3655 | - Result := nil; | |
3656 | 3638 | if Threaditem = nil then Exit; |
3657 | 3639 | |
3658 | 3640 | if ThreadItem.IsLogFile then begin |
@@ -3671,7 +3653,6 @@ begin | ||
3671 | 3653 | for i := 0 to BrowserTab.Tabs.Count - 1 do begin |
3672 | 3654 | if TObject(BrowserTab.Tabs.Objects[i]) is TBrowserRecord then begin |
3673 | 3655 | if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread = ThreadItem then begin |
3674 | - Result := TBrowserRecord( BrowserTab.Tabs.Objects[i] ); | |
3675 | 3656 | if TBrowserRecord(BrowserTab.Tabs.Objects[i]).FBrowser = nil then begin |
3676 | 3657 | for j := BrowserTab.Tabs.Count - 1 downto 0 do begin |
3677 | 3658 | if TBrowserRecord(BrowserTab.Tabs.Objects[j]).FBrowser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1]) then begin |
@@ -3758,7 +3739,6 @@ begin | ||
3758 | 3739 | BrowserTab.TabIndex := i; |
3759 | 3740 | end; |
3760 | 3741 | end; |
3761 | - Result := newBrowser; | |
3762 | 3742 | if(ActiveTab) or (idx = -1) then begin |
3763 | 3743 | BrowserTab.OnChange(nil); |
3764 | 3744 | end; |
@@ -3768,7 +3748,6 @@ begin | ||
3768 | 3748 | BrowserNullTab.Browser := Browser; |
3769 | 3749 | end; |
3770 | 3750 | BrowserNullTab.thread := ThreadItem; |
3771 | - Result := BrowserNullTab; | |
3772 | 3751 | BrowserTab.TabIndex := -1; |
3773 | 3752 | SetContent(BrowserNullTab); |
3774 | 3753 | end; |
@@ -3859,13 +3838,11 @@ begin | ||
3859 | 3838 | |
3860 | 3839 | |
3861 | 3840 | try |
3862 | - { | |
3863 | 3841 | if ThreadItem.UnRead then begin |
3864 | 3842 | ThreadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1; |
3865 | 3843 | if ThreadItem.ParentBoard.UnRead < 0 then ThreadItem.ParentBoard.UnRead := 0; |
3866 | 3844 | TreeView.Refresh; |
3867 | 3845 | end; |
3868 | - } | |
3869 | 3846 | if(FActiveContent <> nil) and (FActiveContent <> Thread) then begin |
3870 | 3847 | if (FActiveContent.Browser <> BrowserNullTab.Browser) then |
3871 | 3848 | ShowWindow(FActiveContent.Browser.Handle, SW_HIDE); |
@@ -4008,16 +3985,12 @@ end; | ||
4008 | 3985 | procedure TGikoForm.SetListViewType(AViewType: TGikoViewType; SelectText: string; KubetsuChk: Boolean); |
4009 | 3986 | var |
4010 | 3987 | Board: TBoard; |
4011 | - i: Integer; | |
4012 | 3988 | begin |
4013 | 3989 | if ActiveList is TBoard then begin |
4014 | - for i := Length( BBSs ) - 1 downto 0 do begin | |
4015 | - BBSs[i].SelectText := SelectText; | |
4016 | - BBSs[i].KubetsuChk := KubetsuChk; | |
4017 | - end; | |
4018 | 3990 | Board := TBoard(ActiveList); |
4019 | -// Board.ParentCategory.ParenTBBS.SelectText := SelectText; | |
4020 | -// Board.ParentCategory.ParenTBBS.KubetsuChk := KubetsuChk; | |
3991 | + | |
3992 | + Board.ParentCategory.ParenTBBS.SelectText := SelectText; | |
3993 | + Board.ParentCategory.ParenTBBS.KubetsuChk := KubetsuChk; | |
4021 | 3994 | // Board.SelectText := SelectText; |
4022 | 3995 | // Board.KubetsuChk := KubetsuChk; |
4023 | 3996 | ViewType := AViewType; |
@@ -6694,21 +6667,8 @@ begin | ||
6694 | 6667 | Assigned( BrowserRecord.Thread ) then begin |
6695 | 6668 | threadItem := BrowserRecord.Thread; |
6696 | 6669 | |
6697 | - if (BrowserRecord <> nil) and (Length( BrowserRecord.Movement ) > 0) then begin | |
6698 | - if threadItem.UnRead then begin | |
6699 | - threadItem.UnRead := False; | |
6700 | - threadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1; | |
6701 | - if threadItem.ParentBoard.UnRead < 0 then threadItem.ParentBoard.UnRead := 0; | |
6702 | - TreeView.Refresh; | |
6703 | - ListView.Refresh; | |
6704 | - end; | |
6705 | - BrowserMovement( BrowserRecord.Movement, BrowserRecord ); | |
6706 | - BrowserRecord.Movement := ''; | |
6707 | - end else if threadItem.UnRead then begin | |
6670 | + if threadItem.UnRead then begin | |
6708 | 6671 | threadItem.UnRead := False; |
6709 | - threadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1; | |
6710 | - if threadItem.ParentBoard.UnRead < 0 then threadItem.ParentBoard.UnRead := 0; | |
6711 | - TreeView.Refresh; | |
6712 | 6672 | BrowserMovement( 'new', BrowserRecord ); |
6713 | 6673 | ListView.Refresh; |
6714 | 6674 | end else if threadItem.ScrollTop <> 0 then begin |
@@ -7494,10 +7454,11 @@ begin | ||
7494 | 7454 | end; |
7495 | 7455 | end; |
7496 | 7456 | |
7497 | -procedure TGikoForm.MoveToURL(const inURL: string); | |
7457 | +procedure TGikoForm.MoveToURL(URL: string); | |
7458 | + | |
7498 | 7459 | var |
7499 | 7460 | protocol, host, path, document, port, bookmark : string; |
7500 | - URL, protocol2, host2, path2, document2, port2, bookmark2 : string; | |
7461 | + URL2, protocol2, host2, path2, document2, port2, bookmark2 : string; | |
7501 | 7462 | tmp1, tmp2: string; |
7502 | 7463 | BBSID, BBSKey: string; |
7503 | 7464 | tmpBoard, Board: TBoard; |
@@ -7510,22 +7471,20 @@ var | ||
7510 | 7471 | // boardNode : TTreeNode; |
7511 | 7472 | shiftDown : Boolean; |
7512 | 7473 | ctrlDown : Boolean; |
7513 | - stRes, edRes : Int64; | |
7514 | - browserRec : TBrowserRecord; | |
7515 | 7474 | begin |
7516 | 7475 | |
7517 | - GikoSys.ParseURI( inURL, protocol, host, path, document, port, bookmark ); | |
7518 | - GikoSys.Parse2chURL( inURL, path, document, BBSID, BBSKey ); | |
7476 | + GikoSys.ParseURI( URL, protocol, host, path, document, port, bookmark ); | |
7477 | + GikoSys.Parse2chURL( URL, path, document, BBSID, BBSKey ); | |
7519 | 7478 | |
7520 | 7479 | |
7521 | 7480 | shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001); |
7522 | - ctrlDown := GetAsyncKeyState(VK_CONTROL) = Smallint($8001); | |
7523 | - if shiftDown then begin | |
7524 | - GikoSys.OpenBrowser(inURL, gbtUserApp); | |
7525 | - Exit; | |
7526 | - end else if ctrlDown then begin | |
7527 | - GikoSys.OpenBrowser(inURL, gbtIE); | |
7528 | - Exit; | |
7481 | + ctrlDown := GetAsyncKeyState(VK_CONTROL) = Smallint($8001); | |
7482 | + if shiftDown then begin | |
7483 | + GikoSys.OpenBrowser(URL, gbtUserApp); | |
7484 | + Exit; | |
7485 | + end else if ctrlDown then begin | |
7486 | + GikoSys.OpenBrowser(URL, gbtIE); | |
7487 | + Exit; | |
7529 | 7488 | end; |
7530 | 7489 | |
7531 | 7490 | //===== vOC |
@@ -7534,16 +7493,15 @@ begin | ||
7534 | 7493 | bi := High( BoardPlugIns ); |
7535 | 7494 | for i := Low( BoardPlugIns ) to bi do begin |
7536 | 7495 | if Assigned( Pointer( BoardPlugIns[ i ].Module ) ) then begin |
7537 | - case BoardPlugIns[ i ].AcceptURL( inURL ) of | |
7496 | + case BoardPlugIns[ i ].AcceptURL( URL ) of | |
7538 | 7497 | atThread: |
7539 | 7498 | begin |
7540 | - tmpThread := TThreadItem.Create( BoardPlugIns[ i ], inURL ); | |
7499 | + tmpThread := TThreadItem.Create( BoardPlugIns[ i ], URL ); | |
7541 | 7500 | boardURL := tmpThread.BoardPlugIn.GetBoardURL( DWORD( tmpThread ) ); |
7542 | 7501 | Board := BBSsFindBoardFromURL( boardURL ); |
7543 | 7502 | if Board = nil then begin |
7544 | - //break; | |
7545 | 7503 | // ¦ìÁÄàÇÁ·éƱ몳¢Ìŵۯ |
7546 | - //GikoSys.OpenBrowser(inURL, gbtUserApp); | |
7504 | + //GikoSys.OpenBrowser(URL, gbtUserApp); | |
7547 | 7505 | //Exit; |
7548 | 7506 | { |
7549 | 7507 | Board := GikoSys.GetUnknownBoard( tmpThread.BoardPlugIn, boardURL ); |
@@ -7555,40 +7513,34 @@ begin | ||
7555 | 7513 | GikoSys.ReadSubjectFile( Board ); |
7556 | 7514 | Exit; |
7557 | 7515 | end; |
7558 | - ThreadItem := Board.FindThreadFromFileName( tmpThread.FileName ); | |
7559 | - if ThreadItem = nil then begin | |
7560 | - ThreadItem := tmpThread; | |
7561 | - Board.Insert( 0, ThreadItem ); | |
7562 | - if ActiveList is TBoard then begin | |
7563 | - if TBoard(ActiveList) = Board then | |
7564 | - ListView.Items.Count := ListView.Items.Count + 1; | |
7565 | - end; | |
7566 | - GikoSys.GetPopupResNumber( inURL, stRes, edRes ); | |
7567 | - browserRec := InsertBrowserTab( ThreadItem ); | |
7568 | - if (browserRec <> nil) and (stRes > 0) then | |
7569 | - browserRec.Movement := IntToStr( stRes ); | |
7516 | + end; | |
7517 | + | |
7518 | + ThreadItem := Board.FindThreadFromFileName( tmpThread.FileName ); | |
7519 | + if ThreadItem = nil then begin | |
7520 | + ThreadItem := tmpThread; | |
7521 | + Board.Insert( 0, ThreadItem ); | |
7522 | + if ActiveList is TBoard then begin | |
7523 | + if TBoard(ActiveList) = Board then | |
7524 | + ListView.Items.Count := ListView.Items.Count + 1; | |
7525 | + end; | |
7526 | + InsertBrowserTab( ThreadItem ); | |
7527 | + DownloadContent( ThreadItem ); | |
7528 | + Exit; | |
7529 | + end else begin | |
7530 | + tmpThread.Free; | |
7531 | + InsertBrowserTab( ThreadItem ); | |
7532 | + if not ThreadItem.IsLogFile then begin | |
7570 | 7533 | DownloadContent( ThreadItem ); |
7571 | - Exit; | |
7572 | - end else begin | |
7573 | - tmpThread.Free; | |
7574 | - GikoSys.GetPopupResNumber( inURL, stRes, edRes ); | |
7575 | - browserRec := InsertBrowserTab( ThreadItem ); | |
7576 | - if ThreadItem.IsLogFile then begin | |
7577 | - if (browserRec <> nil) and (stRes > 0) then | |
7578 | - BrowserMovement( IntToStr( stRes ), browserRec ); | |
7579 | - end else begin | |
7580 | - if (browserRec <> nil) and (stRes > 0) then | |
7581 | - browserRec.Movement := IntToStr( stRes ); | |
7582 | - DownloadContent( ThreadItem ); | |
7583 | - end; | |
7584 | - Exit; | |
7585 | 7534 | end; |
7535 | + Exit; | |
7586 | 7536 | end; |
7537 | + | |
7538 | + //Exit; | |
7587 | 7539 | end; |
7588 | 7540 | |
7589 | 7541 | atBoard: |
7590 | 7542 | begin |
7591 | - tmpBoard := TBoard.Create(BoardPlugIns[ i ], inURL); | |
7543 | + tmpBoard := TBoard.Create(BoardPlugIns[ i ], URL); | |
7592 | 7544 | Board := BBSsFindBoardFromURL( tmpBoard.URL ); |
7593 | 7545 | tmpBoard.Free; |
7594 | 7546 | if Board <> nil then begin |
@@ -7607,7 +7559,7 @@ begin | ||
7607 | 7559 | |
7608 | 7560 | |
7609 | 7561 | if (Length( Trim(BBSKey) ) > 0) and (Length( Trim(BBSID) ) > 0) then begin |
7610 | - boardURL := GikoSys.Get2chThreadURL2BoardURL( inURL ); | |
7562 | + boardURL := GikoSys.Get2chThreadURL2BoardURL( URL ); | |
7611 | 7563 | Board := BBSsFindBoardFromURL( boardURL ); |
7612 | 7564 | if Board = nil then |
7613 | 7565 | Board := BBSsFindBoardFromBBSID( BBSID ); |
@@ -7619,23 +7571,23 @@ begin | ||
7619 | 7571 | end; |
7620 | 7572 | if Board = nil then begin |
7621 | 7573 | // üé׫ª©Â©çÈ©Á½ÌÅAÊÌuEUÅJ |
7622 | - GikoSys.OpenBrowser(inURL, gbtUserApp); | |
7574 | + GikoSys.OpenBrowser(URL, gbtUserApp); | |
7623 | 7575 | Exit; |
7624 | 7576 | end else begin |
7625 | 7577 | // OÌÂÈÌÉ2chÌURLɳêĵÜÁ½zð±±ÅmF·é |
7626 | - URL := Board.URL; | |
7627 | - GikoSys.ParseURI(URL , protocol2, host2, path2, document2, port2, bookmark2 ); | |
7578 | + URL2 := Board.URL; | |
7579 | + GikoSys.ParseURI(URL2 , protocol2, host2, path2, document2, port2, bookmark2 ); | |
7628 | 7580 | tmp1 := Copy(host, AnsiPos('.', host) + 1, Length(host)); |
7629 | 7581 | tmp2 := Copy(host2, AnsiPos('.', host2) + 1, Length(host2)); |
7630 | 7582 | if ( not GikoSys.Is2chHost(tmp1)) and (tmp1 <> tmp2) then begin |
7631 | - GikoSys.OpenBrowser(inURL, gbtUserApp); | |
7583 | + GikoSys.OpenBrowser(URL, gbtUserApp); | |
7632 | 7584 | Exit; |
7633 | 7585 | end; |
7634 | 7586 | end; |
7635 | 7587 | |
7636 | 7588 | if not Board.IsThreadDatRead then |
7637 | 7589 | GikoSys.ReadSubjectFile(Board); |
7638 | - URL := GikoSys.Get2chBrowsableThreadURL( inURL ); | |
7590 | + URL := GikoSys.Get2chBrowsableThreadURL( URL ); | |
7639 | 7591 | ThreadItem := Board.FindThreadFromURL( URL ); |
7640 | 7592 | //@ßOqÉ©çA_E\µ½Xª©Å«È¢Ìű±ÅT·æ¤É·é (2004/01/22) |
7641 | 7593 | if ThreadItem = nil then begin |
@@ -7648,9 +7600,9 @@ begin | ||
7648 | 7600 | {shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001); |
7649 | 7601 | ctrlDown := GetAsyncKeyState(VK_CONTROL) = Smallint($8001); |
7650 | 7602 | if shiftDown then |
7651 | - GikoSys.OpenBrowser(URL1, gbtUserApp) | |
7603 | + GikoSys.OpenBrowser(URL, gbtUserApp) | |
7652 | 7604 | else if ctrlDown then |
7653 | - GikoSys.OpenBrowser(URL1, gbtIE) | |
7605 | + GikoSys.OpenBrowser(URL, gbtIE) | |
7654 | 7606 | else begin |
7655 | 7607 | } |
7656 | 7608 | ThreadItem := TThreadItem.Create( nil, URL ); |
@@ -7664,34 +7616,25 @@ begin | ||
7664 | 7616 | if TBoard(ActiveList) = Board then |
7665 | 7617 | ListView.Items.Count := ListView.Items.Count + 1; |
7666 | 7618 | end; |
7667 | - GikoSys.GetPopupResNumber( inURL, stRes, edRes ); | |
7668 | - browserRec := InsertBrowserTab(ThreadItem); | |
7669 | - if (browserRec <> nil) and (stRes > 0) then | |
7670 | - browserRec.Movement := IntToStr( stRes ); | |
7619 | + InsertBrowserTab(ThreadItem); | |
7671 | 7620 | DownloadContent(ThreadItem); |
7672 | 7621 | {end;} |
7673 | 7622 | end else begin |
7674 | - if ThreadItem.IsLogFile then begin | |
7675 | - GikoSys.GetPopupResNumber( inURL, stRes, edRes ); | |
7676 | - browserRec := InsertBrowserTab(ThreadItem); | |
7677 | - if (browserRec <> nil) and (stRes > 0) then | |
7678 | - browserRec.Movement := IntToStr( stRes ); | |
7679 | - end else begin | |
7623 | + if ThreadItem.IsLogFile then | |
7624 | + InsertBrowserTab(ThreadItem) | |
7625 | + else begin | |
7680 | 7626 | if AnsiPos(Host, Board.URL) = 0 then |
7681 | 7627 | ThreadItem.DownloadHost := Host |
7682 | 7628 | else |
7683 | 7629 | ThreadItem.DownloadHost := ''; |
7684 | - GikoSys.GetPopupResNumber( inURL, stRes, edRes ); | |
7685 | - browserRec := InsertBrowserTab(ThreadItem); | |
7686 | - if (browserRec <> nil) and (stRes > 0) then | |
7687 | - browserRec.Movement := IntToStr( stRes ); | |
7630 | + InsertBrowserTab(ThreadItem); | |
7688 | 7631 | DownloadContent(ThreadItem); |
7689 | 7632 | end; |
7690 | 7633 | end; |
7691 | 7634 | end else begin |
7692 | - Board := BBSsFindBoardFromURL( inURL ); | |
7635 | + Board := BBSsFindBoardFromURL( URL ); | |
7693 | 7636 | if Board = nil then begin |
7694 | - GikoSys.OpenBrowser(inURL, gbtAuto); | |
7637 | + GikoSys.OpenBrowser(URL, gbtAuto); | |
7695 | 7638 | end else begin |
7696 | 7639 | if FActiveBBS <> Board.ParentCategory.ParenTBBS then |
7697 | 7640 | ShowBBSTree( Board.ParentCategory.ParenTBBS ); |
@@ -9010,10 +8953,9 @@ begin | ||
9010 | 8953 | ModifySelectList; |
9011 | 8954 | end else if Length( SelectComboBox.Text ) = 0 then |
9012 | 8955 | begin |
9013 | - {* SelectComboBox.TextªóÅàAüÍrÅEscµ½Æ© | |
9014 | - * óÌÆ«ÉDelL[ðµ½Æ©ÈÌÅAXÌiÝðÛ·éB | |
9015 | - * i±±ÅͽàµÈ¢j | |
9016 | - *} | |
8956 | + AllItemAction.Checked := True; | |
8957 | + LogItemAction.Checked := False; | |
8958 | + NewItemAction.Checked := False; | |
9017 | 8959 | end else begin |
9018 | 8960 | // `Âƾ©çAêµÄ éÆ«¾¯·é |
9019 | 8961 | if AllItemAction.Checked then |
@@ -10062,7 +10004,7 @@ begin | ||
10062 | 10004 | ThreadItem := FavThread.Item; |
10063 | 10005 | |
10064 | 10006 | try |
10065 | - s := ThreadItem.Title + #13#10 + ThreadItem.URL + #13#10; | |
10007 | + s := ThreadItem.URL + #13#10 + ThreadItem.Title + #13#10; | |
10066 | 10008 | if s <> '' then |
10067 | 10009 | Clipboard.AsText := s; |
10068 | 10010 | finally |
@@ -10077,7 +10019,7 @@ begin | ||
10077 | 10019 | GikoSys.ReadSubjectFile(Board); |
10078 | 10020 | |
10079 | 10021 | try |
10080 | - s := Board.Title + #13#10 + Board.URL + #13#10; | |
10022 | + s := Board.URL + #13#10 + Board.Title + #13#10; | |
10081 | 10023 | if s <> '' then |
10082 | 10024 | Clipboard.AsText := s; |
10083 | 10025 | finally |
@@ -10134,12 +10076,7 @@ procedure TGikoForm.BrowserTabMouseUp(Sender: TObject; | ||
10134 | 10076 | begin |
10135 | 10077 | if FDragWFirst <> true then begin |
10136 | 10078 | FDragWFirst := false; |
10137 | -{ | |
10138 | - end else if (abs( X - FMouseDownPos.X ) < Mouse.DragThreshold) | |
10139 | - and (abs( Y - FMouseDownPos.Y ) < Mouse.DragThreshold) then begin | |
10140 | -(*} | |
10141 | - end else begin | |
10142 | -//*) | |
10079 | + end else if (X = FMouseDownPos.X) and (Y = FMouseDownPos.Y) then begin | |
10143 | 10080 | if GikoSys.Setting.ListOrientation = gloHorizontal then begin |
10144 | 10081 | if GikoSys.Setting.ListWidthState = glsMin then begin |
10145 | 10082 | BrowserMaxAndFocusAction.Execute; |
@@ -11165,16 +11102,12 @@ begin | ||
11165 | 11102 | SelectListItem(List); |
11166 | 11103 | for i := 0 to List.Count - 1 do begin |
11167 | 11104 | if TObject(List[i]) is TThreadItem then begin |
11168 | - if (TThreadItem(List[i]).UnRead) then begin | |
11169 | - TThreadItem(List[i]).UnRead := false; | |
11170 | - TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead - 1; | |
11171 | - end; | |
11105 | + TThreadItem(List[i]).UnRead := false; | |
11106 | + TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead - 1; | |
11172 | 11107 | end; |
11173 | 11108 | end; |
11174 | 11109 | if TreeView.Visible then |
11175 | 11110 | TreeView.Refresh; |
11176 | - if ListView.Visible then | |
11177 | - ListView.Refresh; | |
11178 | 11111 | finally |
11179 | 11112 | List.Free; |
11180 | 11113 | end; |
@@ -11190,16 +11123,12 @@ begin | ||
11190 | 11123 | SelectListItem(List); |
11191 | 11124 | for i := 0 to List.Count - 1 do begin |
11192 | 11125 | if TObject(List[i]) is TThreadItem then begin |
11193 | - if (TThreadItem(List[i]).IsLogFile) and (not TThreadItem(List[i]).UnRead) then begin | |
11194 | - TThreadItem(List[i]).UnRead := true; | |
11195 | - TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead + 1; | |
11196 | - end; | |
11126 | + TThreadItem(List[i]).UnRead := true; | |
11127 | + TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead + 1; | |
11197 | 11128 | end; |
11198 | 11129 | end; |
11199 | 11130 | if TreeView.Visible then |
11200 | 11131 | TreeView.Refresh; |
11201 | - if ListView.Visible then | |
11202 | - ListView.Refresh; | |
11203 | 11132 | finally |
11204 | 11133 | List.Free; |
11205 | 11134 | end; |
@@ -187,7 +187,7 @@ type | ||
187 | 187 | function Is2chHost(Host: string): Boolean; |
188 | 188 | function Parse2chURL(const url: string; const path: string; const document: string; var BBSID: string; var BBSKey: string): Boolean; |
189 | 189 | function Parse2chURL2(URL: string): TPathRec; |
190 | - procedure ParseURI(const URL : string; var Protocol, Host, Path, Document, Port, Bookmark: string); | |
190 | + procedure ParseURI(var URL, Protocol, Host, Path, Document, Port, Bookmark: string); | |
191 | 191 | function GetVersionBuild: Integer; |
192 | 192 | function GetBrowsableThreadURL( inURL : string ) : string; |
193 | 193 | function GetThreadURL2BoardURL( inURL : string ) : string; |
@@ -3424,7 +3424,7 @@ begin | ||
3424 | 3424 | end; |
3425 | 3425 | end; |
3426 | 3426 | |
3427 | -procedure TGikoSys.ParseURI(const URL : string; var Protocol, Host, Path, Document, Port, Bookmark: string); | |
3427 | +procedure TGikoSys.ParseURI(var URL, Protocol, Host, Path, Document, Port, Bookmark: string); | |
3428 | 3428 | var |
3429 | 3429 | URI: TIdURI; |
3430 | 3430 | begin |
@@ -1259,10 +1259,8 @@ begin | ||
1259 | 1259 | OldCnt := Body.IndexOf(oldBody.Strings[ LastIdx ]) + 1; |
1260 | 1260 | until ( OldCnt <> 0 ) or (LastIdx = 0); |
1261 | 1261 | |
1262 | - if OldCnt >= Body.Count then OldCnt := Body.Count - 1; | |
1263 | 1262 | NewRes := Body.Count - OldCnt; |
1264 | 1263 | |
1265 | - | |
1266 | 1264 | finally |
1267 | 1265 | oldBody.Free; |
1268 | 1266 | end; |
@@ -1299,10 +1297,8 @@ begin | ||
1299 | 1297 | ThreadItem.AllResCount := ThreadItem.Count; |
1300 | 1298 | ThreadItem.IsLogFile := True; |
1301 | 1299 | ThreadItem.RoundDate := Now; |
1302 | - if not ThreadItem.UnRead then begin | |
1303 | - ThreadItem.UnRead := True; | |
1304 | - ThreadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead + 1; | |
1305 | - end; | |
1300 | + ThreadItem.UnRead := True; | |
1301 | + ThreadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead + 1; | |
1306 | 1302 | // if ThreadItem.RoundNo = 6 then |
1307 | 1303 | // ThreadItem.RoundNo := 0; |
1308 | 1304 |
@@ -1,6 +1,6 @@ | ||
1 | 1 | object KuroutOption: TKuroutOption |
2 | - Left = 43 | |
3 | - Top = 114 | |
2 | + Left = 311 | |
3 | + Top = 171 | |
4 | 4 | Width = 525 |
5 | 5 | Height = 457 |
6 | 6 | Caption = #35443#32048#35373#23450 |
@@ -140,30 +140,6 @@ object KuroutOption: TKuroutOption | ||
140 | 140 | TabOrder = 3 |
141 | 141 | end |
142 | 142 | end |
143 | - object GroupBox1: TGroupBox | |
144 | - Left = 14 | |
145 | - Top = 232 | |
146 | - Width = 475 | |
147 | - Height = 57 | |
148 | - Caption = #12395#12385#12419#12435#35486#26696#20869#27231#33021 | |
149 | - TabOrder = 2 | |
150 | - Visible = False | |
151 | - object Label5: TLabel | |
152 | - Left = 8 | |
153 | - Top = 16 | |
154 | - Width = 234 | |
155 | - Height = 12 | |
156 | - Caption = #12395#12385#12419#12435#35486#12434#20351#12387#12390#12462#12467#12490#12499#12434#12469#12509#12540#12488#12375#12414#12377#12290 | |
157 | - end | |
158 | - object GengoSupport: TCheckBox | |
159 | - Left = 8 | |
160 | - Top = 32 | |
161 | - Width = 201 | |
162 | - Height = 17 | |
163 | - Caption = #12395#12385#12419#12435#35486#26696#20869#27231#33021#12434#26377#21177#12395#12377#12427 | |
164 | - TabOrder = 0 | |
165 | - end | |
166 | - end | |
167 | 143 | end |
168 | 144 | object ColumnTabSheet: TTabSheet |
169 | 145 | Caption = #35443#32048#35373#23450'2' |
@@ -47,9 +47,6 @@ type | ||
47 | 47 | CDownButton: TButton; |
48 | 48 | BUpButton: TButton; |
49 | 49 | BDownButton: TButton; |
50 | - GroupBox1: TGroupBox; | |
51 | - GengoSupport: TCheckBox; | |
52 | - Label5: TLabel; | |
53 | 50 | procedure OkBottonClick(Sender: TObject); |
54 | 51 | procedure FormCreate(Sender: TObject); |
55 | 52 | procedure CDeleteButtonClick(Sender: TObject); |
@@ -121,8 +118,6 @@ begin | ||
121 | 118 | GikoSys.Setting.TimeAdjustSec := 0; |
122 | 119 | GikoSys.Setting.TimeAdjust := PutPostTimeRadioButton.Checked; |
123 | 120 | |
124 | - GikoSys.Setting.GengoSupport := GengoSupport.Checked; | |
125 | - | |
126 | 121 | GikoSys.Setting.KuroutSettingTabIndex := PageControl1.ActivePageIndex; |
127 | 122 | end; |
128 | 123 |
@@ -1,6 +1,6 @@ | ||
1 | 1 | object OptionDialog: TOptionDialog |
2 | - Left = 188 | |
3 | - Top = 128 | |
2 | + Left = 410 | |
3 | + Top = 236 | |
4 | 4 | BorderStyle = bsDialog |
5 | 5 | Caption = #12458#12503#12471#12519#12531 |
6 | 6 | ClientHeight = 428 |
@@ -60,9 +60,9 @@ object OptionDialog: TOptionDialog | ||
60 | 60 | Top = 4 |
61 | 61 | Width = 509 |
62 | 62 | Height = 389 |
63 | - ActivePage = TabSheet3 | |
63 | + ActivePage = ThreadSheet | |
64 | 64 | MultiLine = True |
65 | - TabIndex = 3 | |
65 | + TabIndex = 4 | |
66 | 66 | TabOrder = 3 |
67 | 67 | OnChange = OptionTabChange |
68 | 68 | object ConnectSheet: TTabSheet |
@@ -252,7 +252,7 @@ object OptionDialog: TOptionDialog | ||
252 | 252 | Top = 43 |
253 | 253 | Width = 417 |
254 | 254 | Height = 20 |
255 | - ItemHeight = 12 | |
255 | + ItemHeight = 0 | |
256 | 256 | TabOrder = 0 |
257 | 257 | Text = 'BoardURLComboBox' |
258 | 258 | end |
@@ -654,7 +654,7 @@ object OptionDialog: TOptionDialog | ||
654 | 654 | Left = 12 |
655 | 655 | Top = 8 |
656 | 656 | Width = 477 |
657 | - Height = 41 | |
657 | + Height = 64 | |
658 | 658 | Caption = #34920#31034#35373#23450 |
659 | 659 | TabOrder = 0 |
660 | 660 | object ThreadListIconCheckBox: TCheckBox |
@@ -665,10 +665,18 @@ object OptionDialog: TOptionDialog | ||
665 | 665 | Caption = #12473#12524#12483#12489#26356#26032#12450#12452#12467#12531#12434#34920#31034#12377#12427'(&I)' |
666 | 666 | TabOrder = 0 |
667 | 667 | end |
668 | + object NonAcquiredCountCheckBox: TCheckBox | |
669 | + Left = 12 | |
670 | + Top = 40 | |
671 | + Width = 217 | |
672 | + Height = 17 | |
673 | + Caption = #21462#24471#25968#12398#20195#12431#12426#12395#26410#21462#24471#25968#12434#34920#31034#12377#12427 | |
674 | + TabOrder = 1 | |
675 | + end | |
668 | 676 | end |
669 | 677 | object GroupBox16: TGroupBox |
670 | 678 | Left = 12 |
671 | - Top = 52 | |
679 | + Top = 76 | |
672 | 680 | Width = 477 |
673 | 681 | Height = 64 |
674 | 682 | Caption = #12473#12524#20316#25104#26085#26178#34920#31034#35373#23450 |
@@ -692,7 +700,7 @@ object OptionDialog: TOptionDialog | ||
692 | 700 | end |
693 | 701 | object GroupBox5: TGroupBox |
694 | 702 | Left = 12 |
695 | - Top = 121 | |
703 | + Top = 145 | |
696 | 704 | Width = 477 |
697 | 705 | Height = 86 |
698 | 706 | Caption = #12502#12521#12454#12470#12398#26368#22823#21270 |
@@ -720,7 +728,7 @@ object OptionDialog: TOptionDialog | ||
720 | 728 | end |
721 | 729 | object GroupBox17: TGroupBox |
722 | 730 | Left = 12 |
723 | - Top = 212 | |
731 | + Top = 236 | |
724 | 732 | Width = 477 |
725 | 733 | Height = 63 |
726 | 734 | Caption = #12502#12521#12454#12470#12479#12502#38750#34920#31034#26178#35373#23450 |
@@ -758,9 +766,9 @@ object OptionDialog: TOptionDialog | ||
758 | 766 | end |
759 | 767 | object GroupBox18: TGroupBox |
760 | 768 | Left = 12 |
761 | - Top = 278 | |
769 | + Top = 302 | |
762 | 770 | Width = 477 |
763 | - Height = 43 | |
771 | + Height = 41 | |
764 | 772 | Caption = 'dat'#33853#12385#12473#12524#12477#12540#12488#38918 |
765 | 773 | TabOrder = 4 |
766 | 774 | object DatOchiSortCombo: TComboBox |
@@ -778,9 +786,7 @@ object OptionDialog: TOptionDialog | ||
778 | 786 | #21462#24471#26085#26178'('#26119#38918')' |
779 | 787 | #21462#24471#26085#26178'('#38477#38918')' |
780 | 788 | #12473#12524#20316#25104#26085#26178'('#26119#38918')' |
781 | - #12473#12524#20316#25104#26085#26178'('#38477#38918')' | |
782 | - #12473#12524#26368#32066#26356#26032#26085#26178#65288#26119#38918#65289 | |
783 | - #12473#12524#26368#32066#26356#26032#26085#26178#65288#38477#38918#65289) | |
789 | + #12473#12524#20316#25104#26085#26178'('#38477#38918')') | |
784 | 790 | end |
785 | 791 | end |
786 | 792 | end |
@@ -90,6 +90,7 @@ type | ||
90 | 90 | TabSheet3: TTabSheet; |
91 | 91 | GroupBox9: TGroupBox; |
92 | 92 | ThreadListIconCheckBox: TCheckBox; |
93 | + NonAcquiredCountCheckBox: TCheckBox; | |
93 | 94 | GroupBox16: TGroupBox; |
94 | 95 | CreationTimeLogsCheckBox: TCheckBox; |
95 | 96 | FutureThreadCheckBox: TCheckBox; |
@@ -765,6 +766,7 @@ begin | ||
765 | 766 | |
766 | 767 | //XbhêXVACR |
767 | 768 | ThreadListIconCheckBox.Checked := GikoSys.Setting.ListIconVisible; |
769 | + NonAcquiredCountCheckBox.Checked := GikoSys.Setting.NonAcquiredCount; | |
768 | 770 | CreationTimeLogsCheckBox.Checked := GikoSys.Setting.CreationTimeLogs; |
769 | 771 | FutureThreadCheckBox.Checked := GikoSys.Setting.FutureThread; |
770 | 772 | SelectIntervalEdit.Text := IntToStr(GikoSys.Setting.SelectInterval); |
@@ -786,11 +788,6 @@ begin | ||
786 | 788 | DatOchiSortCombo.ItemIndex := 5 |
787 | 789 | else |
788 | 790 | DatOchiSortCombo.ItemIndex := 6; |
789 | - gbcLastModified: | |
790 | - if GikoSys.Setting.DatOchiSortOrder then | |
791 | - DatOchiSortCombo.ItemIndex := 7 | |
792 | - else | |
793 | - DatOchiSortCombo.ItemIndex := 8; | |
794 | 791 | else |
795 | 792 | DatOchiSortCombo.ItemIndex := 0; |
796 | 793 | end; |
@@ -805,6 +802,7 @@ begin | ||
805 | 802 | |
806 | 803 | //TabAutoLoad |
807 | 804 | TabLoadSave.Checked := Gikosys.Setting.TabAutoLoadSave; |
805 | + | |
808 | 806 | end; |
809 | 807 | |
810 | 808 | procedure TOptionDialog.SaveSetting; |
@@ -997,6 +995,11 @@ begin | ||
997 | 995 | //XbhêXVACR |
998 | 996 | GikoSys.Setting.ListIconVisible := ThreadListIconCheckBox.Checked; |
999 | 997 | |
998 | + //æ¾A¢æ¾ | |
999 | + if (GikoSys.Setting.NonAcquiredCount <> NonAcquiredCountCheckBox.Checked) and (GikoForm.ActiveList Is TBoard) then | |
1000 | + FRepaintList := true; | |
1001 | + GikoSys.Setting.NonAcquiredCount := NonAcquiredCountCheckBox.Checked; | |
1002 | + | |
1000 | 1003 | GikoSys.Setting.CreationTimeLogs := CreationTimeLogsCheckBox.Checked; |
1001 | 1004 | GikoSys.Setting.FutureThread := FutureThreadCheckBox.Checked; |
1002 | 1005 | if StrToIntDef(SelectIntervalEdit.Text, 110) > 55 then |
@@ -1031,14 +1034,6 @@ begin | ||
1031 | 1034 | GikoSys.Setting.DatOchiSortOrder := false; |
1032 | 1035 | GikoSys.Setting.DatOchiSortIndex := Ord( gbcCreated ); |
1033 | 1036 | end; |
1034 | - 7: begin //XÅIXVúi¸j | |
1035 | - GikoSys.Setting.DatOchiSortOrder := true; | |
1036 | - GikoSys.Setting.DatOchiSortIndex := Ord( gbcLastModified );{gbcLastModified} | |
1037 | - end; | |
1038 | - 8: begin //XÅIXVúi~j | |
1039 | - GikoSys.Setting.DatOchiSortOrder := false; | |
1040 | - GikoSys.Setting.DatOchiSortIndex := Ord( gbcLastModified );{gbcLastModified} | |
1041 | - end; | |
1042 | 1037 | end; |
1043 | 1038 | |
1044 | 1039 | GikoSys.Setting.WriteSystemSettingFile; |
@@ -89,15 +89,15 @@ type | ||
89 | 89 | end; |
90 | 90 | /// XXgÌJ ID |
91 | 91 | type TGikoBoardColumnID = (gbcTitle, gbcAllCount, gbcLocalCount, gbcNonAcqCount, |
92 | - gbcNewCount, gbcUnReadCount, gbcRoundName, gbcRoundDate, gbcCreated, gbcLastModified );{gbcLastModified,} | |
92 | + gbcNewCount, gbcUnReadCount, gbcRoundName, gbcRoundDate, gbcCreated );{gbcLastModified,} | |
93 | 93 | /// XXgÌJ¼ |
94 | - const GikoBoardColumnCaption : array[0..9] of string = | |
94 | + const GikoBoardColumnCaption : array[0..8] of string = | |
95 | 95 | ( 'Xbh¼', 'JEg', 'æ¾', '¢æ¾', 'V ', |
96 | - '¢Ç', 'ñ\ñ', 'æ¾ú', 'Xì¬ú', 'ÅIXVú' ); | |
97 | - const GikoBoardColumnAlignment : array[0..9] of TAlignment = ( | |
96 | + '¢Ç', 'ñ\ñ', 'æ¾ú', 'Xì¬ú' ); | |
97 | + const GikoBoardColumnAlignment : array[0..8] of TAlignment = ( | |
98 | 98 | taLeftJustify, taRightJustify, taRightJustify, taRightJustify, |
99 | 99 | taRightJustify, taRightJustify, taLeftJustify, taLeftJustify, |
100 | - taLeftJustify, taLeftJustify); | |
100 | + taLeftJustify ); | |
101 | 101 | /// XXgJzñ |
102 | 102 | type TGikoBoardColumnList = class( TList ) |
103 | 103 | private |
@@ -272,7 +272,7 @@ type | ||
272 | 272 | //XgJwb_[TCY |
273 | 273 | FBBSColumnWidth: array[0..0] of Integer; |
274 | 274 | FCategoryColumnWidth: array[0..2] of Integer; |
275 | - FBoardColumnWidth: array[0..9] of Integer; | |
275 | + FBoardColumnWidth: array[0..8] of Integer; | |
276 | 276 | |
277 | 277 | /// JeSXgJ |
278 | 278 | FBBSColumnOrder : TGikoBBSColumnList; |
@@ -346,6 +346,8 @@ type | ||
346 | 346 | |
347 | 347 | //XbhêXVACR\¦ |
348 | 348 | FListIconVisible: Boolean; |
349 | + //æ¾ÅÍÈ¢æ¾ð\¦·é | |
350 | + FNonAcquiredCount: Boolean; | |
349 | 351 | |
350 | 352 | //XbhêÅLogÌ éXbhÌÝXì¬úð\¦·é© |
351 | 353 | FCreationTimeLogs: Boolean; |
@@ -390,10 +392,6 @@ type | ||
390 | 392 | |
391 | 393 | //Tab©®Û¶ |
392 | 394 | FTabAutoLoadSave : Boolean; |
393 | - | |
394 | - //É¿áñêÄàT|[g@\ | |
395 | - F2chSupport : Boolean; | |
396 | - | |
397 | 395 | // GfB^ |
398 | 396 | FSpaceToNBSP : Boolean; ///< ¼pXy[XATab ð Éu· |
399 | 397 | FAmpToCharRef : Boolean; ///< '&' ð & Éu· |
@@ -648,6 +646,7 @@ type | ||
648 | 646 | property BrowserAutoMaximize: TGikoBrowserAutoMaximize read FBrowserAutoMaximize write FBrowserAutoMaximize; |
649 | 647 | |
650 | 648 | property ListIconVisible: Boolean read FListIconVisible write FListIconVisible; |
649 | + property NonAcquiredCount: Boolean read FNonAcquiredCount write FNonAcquiredCount; | |
651 | 650 | property CreationTimeLogs: Boolean read FCreationTimeLogs write FCreationTimeLogs; |
652 | 651 | property FutureThread: Boolean read FFutureThread write FFutureThread; |
653 | 652 |
@@ -687,7 +686,6 @@ type | ||
687 | 686 | property SelectInterval : Integer read FSelectInterval write FSelectInterval; |
688 | 687 | //TabÛ¶ |
689 | 688 | property TabAutoLoadSave: Boolean read FTabAutoLoadSave write FTabAutoLoadSave; |
690 | - property GengoSupport : Boolean read F2chSupport write F2chSupport; | |
691 | 689 | property KuroutSettingTabIndex: Integer read FKuroutSettingTabIndex write FKuroutSettingTabIndex; |
692 | 690 | end; |
693 | 691 |
@@ -850,7 +848,7 @@ procedure TSetting.ReadSettingFile(); | ||
850 | 848 | const |
851 | 849 | DEFAULT_BBS_WIDTH: array[0..0] of Integer = (140); |
852 | 850 | DEFAULT_CATEGORY_WIDTH: array[0..2] of Integer = (150, 80, 130); |
853 | - DEFAULT_BOARD_WIDTH: array[0..9] of Integer = (350, 60, 60, 60, 60, 60, 80, 130, 130, 130); | |
851 | + DEFAULT_BOARD_WIDTH: array[0..8] of Integer = (350, 60, 60, 60, 60, 60, 80, 130, 130); | |
854 | 852 | MAX_WIDTH: Integer = 2000; |
855 | 853 | var |
856 | 854 | ini: TMemIniFile; |
@@ -1158,6 +1156,7 @@ begin | ||
1158 | 1156 | |
1159 | 1157 | //XbhêXVACR |
1160 | 1158 | FListIconVisible := ini.ReadBool('ThreadList', 'StateIconVisible', True); |
1159 | + FNonAcquiredCount := ini.ReadBool('ThreadList', 'NonAcquiredCount', False); | |
1161 | 1160 | FCreationTimeLogs := ini.ReadBool('ThreadList', 'CreationTimeLogs', True); |
1162 | 1161 | FFutureThread := ini.ReadBool('ThreadList', 'FutureThread', True); |
1163 | 1162 | FSelectInterval := ini.ReadInteger('ThreadList', 'SelectInterval', 110); |
@@ -1223,7 +1222,7 @@ begin | ||
1223 | 1222 | FDeleteSyria := ini.ReadBool('Abon','DeleteSyria',false); |
1224 | 1223 | |
1225 | 1224 | // GfB^ |
1226 | - FSpaceToNBSP := ini.ReadBool( 'Editor', 'SpaceToNBSP', False ); | |
1225 | + FSpaceToNBSP := ini.ReadBool( 'Editor', 'SpaceToNBSP', True ); | |
1227 | 1226 | FAmpToCharRef := ini.ReadBool( 'Editor', 'AmpToCharRef', False ); |
1228 | 1227 | |
1229 | 1228 | //Tab©®Û¶AÇÝÝ |
@@ -1457,6 +1456,7 @@ begin | ||
1457 | 1456 | |
1458 | 1457 | //XbhêXVACR |
1459 | 1458 | ini.WriteBool('ThreadList', 'StateIconVisible', FListIconVisible); |
1459 | + ini.WriteBool('ThreadList', 'NonAcquiredCount', FNonAcquiredCount); | |
1460 | 1460 | ini.WriteBool('ThreadList', 'CreationTimeLogs',FCreationTimeLogs); |
1461 | 1461 | ini.WriteBool('ThreadList', 'FutureThread', FFutureThread); |
1462 | 1462 | ini.WriteInteger('ThreadList', 'SelectInterval', FSelectInterval); |
@@ -1555,15 +1555,11 @@ begin | ||
1555 | 1555 | ini.WriteBool( 'Editor', 'SpaceToNBSP', FSpaceToNBSP ); |
1556 | 1556 | ini.WriteBool( 'Editor', 'AmpToCharRef', FAmpToCharRef ); |
1557 | 1557 | |
1558 | - //^u©®Û¶ | |
1559 | 1558 | ini.WriteBool('TabAuto', 'TabAutoLoadSave', FTabAutoLoadSave); |
1560 | - //Ú×Ýè | |
1561 | - ini.WriteInteger('OptionDialog', 'KuroutTabIndex', FKuroutSettingTabIndex); | |
1562 | 1559 | |
1563 | - //É¿áñêÄà@\ | |
1564 | - ini.WriteBool('2chSupport', 'Support', F2chSupport); | |
1560 | + ini.WriteInteger('OptionDialog', 'KuroutTabIndex', FKuroutSettingTabIndex); | |
1565 | 1561 | |
1566 | - ini.UpdateFile; | |
1562 | + ini.UpdateFile; | |
1567 | 1563 | finally |
1568 | 1564 | ini.Free; |
1569 | 1565 | end; |
@@ -17,6 +17,7 @@ var | ||
17 | 17 | SortOrder: Boolean; |
18 | 18 | SortIndex: Integer; |
19 | 19 | SortNoFlag: Boolean; |
20 | + SortNonAcquiredCountFlag: Boolean; | |
20 | 21 | |
21 | 22 | implementation |
22 | 23 |
@@ -104,7 +105,6 @@ begin | ||
104 | 105 | gbcRoundName: Result := AnsiCompareText(ThreadItem1.RoundName, ThreadItem2.RoundName); |
105 | 106 | gbcRoundDate: Result := CompareDateTime(ThreadItem1.RoundDate, ThreadItem2.RoundDate); {gbcLastModified:} |
106 | 107 | gbcCreated: Result := CompareDateTime(ThreadItem1.CreateDate, ThreadItem2.CreateDate); |
107 | - gbcLastModified: Result := CompareDateTime(ThreadItem1.LastModified, ThreadItem2.LastModified); {gbcLastModified:} | |
108 | 108 | else |
109 | 109 | Result := 0; |
110 | 110 | end; |
@@ -40,38 +40,11 @@ function MatchesMask( | ||
40 | 40 | const filename, mask : string |
41 | 41 | ) : boolean; |
42 | 42 | |
43 | -/// ^LN^ð³K\»µ¢ÉÈçÈ¢æ¤Éu· | |
43 | +// ^LN^ð³K\»µ¢ÉÈçÈ¢æ¤Éu· | |
44 | 44 | function RegExpEncode( |
45 | 45 | const text : string |
46 | 46 | ) : string; |
47 | 47 | |
48 | -{*! | |
49 | -\brief \¦bZ[WÌ®` | |
50 | -\param msg \¦·ébZ[W | |
51 | -\param elements u·Pê | |
52 | - | |
53 | -msg ÌÌu·³êéPêÍ '^Ô' Å\³êA | |
54 | -elements ÍüsÉæÁÄPꪯ³êÜ·B<br> | |
55 | - | |
56 | -<pre><code> | |
57 | -elements := IntToStr( 10 ) + #10 + 'hoge'; | |
58 | -m := MessageStyle( | |
59 | - '^0 ÂÌg^1hðu·µÜµ½B', | |
60 | - elements ); | |
61 | -</code></pre> | |
62 | - | |
63 | -Åoͳêé m Íu10 ÂÌghogehðu·µÜµ½BvÆÈèÜ·B | |
64 | -*} | |
65 | -function MessageStyle( | |
66 | - const msg : string; | |
67 | - const elements : string | |
68 | -) : string; overload; | |
69 | - | |
70 | -function MessageStyle( | |
71 | - const msg : string; | |
72 | - const elements : TStringList | |
73 | -) : string; overload; | |
74 | - | |
75 | 48 | type |
76 | 49 | /// Mode lª¨©µ¢ |
77 | 50 | EMappedFileModeError = class( Exception ); |
@@ -104,8 +77,6 @@ const | ||
104 | 77 | implementation |
105 | 78 | //================================================== |
106 | 79 | |
107 | -uses MojuUtils; | |
108 | - | |
109 | 80 | // Æè ¦¸ÌãpiÈÌÅ chrWhite ðl¶µÄ¢È¢±ÆÉÓIII |
110 | 81 | procedure ExtractHttpFields( |
111 | 82 | const chrSep : TSysCharSet; |
@@ -420,38 +391,6 @@ begin | ||
420 | 391 | |
421 | 392 | end; |
422 | 393 | |
423 | -function MessageStyle( | |
424 | - const msg : string; | |
425 | - const elements : string | |
426 | -) : string; | |
427 | -var | |
428 | - list : TStringList; | |
429 | -begin | |
430 | - | |
431 | - list := TStringList.Create; | |
432 | - try | |
433 | - list.Text := elements; | |
434 | - Result := MessageStyle( msg, list ); | |
435 | - finally | |
436 | - list.Free; | |
437 | - end; | |
438 | - | |
439 | -end; | |
440 | - | |
441 | -function MessageStyle( | |
442 | - const msg : string; | |
443 | - const elements : TStringList | |
444 | -) : string; | |
445 | -var | |
446 | - i : Integer; | |
447 | -begin | |
448 | - | |
449 | - Result := msg; | |
450 | - for i := elements.Count - 1 downto 0 do | |
451 | - Result := CustomStringReplace( Result, '^' + IntToStr( i ), elements[ i ], false ); | |
452 | - | |
453 | -end; | |
454 | - | |
455 | 394 | { TMappedFile } |
456 | 395 | |
457 | 396 | {*! |
@@ -1,4 +1,4 @@ | ||
1 | -¡MRir Version1.00 ÊÞÀ49 Readme.txt | |
1 | +¡MRir Version1.00 ÊÞÀ48 Readme.txt | |
2 | 2 | |
3 | 3 | |
4 | 4 | ------------------------------ |
@@ -41,7 +41,7 @@ | ||
41 | 41 | ------------------------------ |
42 | 42 | oOâv]ÍAMRirXbhÅó¯t¯Ä¨èÜ·B |
43 | 43 | MRirTCgFhttp://gikonavi.sourceforge.jp/ |
44 | -MRirXFhttp://pc5.2ch.net/test/read.cgi/software/1094289071/l50 | |
44 | +MRirXFhttp://pc5.2ch.net/test/read.cgi/software/1079685385/l50 | |
45 | 45 | |
46 | 46 | ------------------------------ |
47 | 47 | ]ÚÉ墀 |
@@ -89,21 +89,6 @@ Windows Server 2003 Enterprise Edition IE6 | ||
89 | 89 | ------------------------------ |
90 | 90 | ð |
91 | 91 | ------------------------------ |
92 | -2004/10/XX | |
93 | - Version ÊÞÀ49 | |
94 | - ¨CÉüèÌÇÝÝ̬»ÉæéN®ÔÌZk | |
95 | - StatusBarÉNG[ht@C̼OªoÈ¢sïÌC³ | |
96 | - uwèµ½ÔÌXÉòÔv@\ÇÁiL[ÝèÅAXbhJeSÌêÔÅãj | |
97 | - Oðíµ½ÛÉ¢ÇXbh (UnRead) Ì\¦ªXV³êÈ¢oOðC³ | |
98 | - ±±ÉX¾ÆAXGfB^[ÌV[gJbgL[ªÝè³êÈ¢sïÌC³ | |
99 | - Ú[ñÉRRÜÅÇñ¾ÆV Xð²®·éÌÉsïª Á½ÌÅC³ | |
100 | - XbhêÌ\¦JÌÝèªÅ«éæ¤ÉÈÁ½BuIvVv->uÚ×Ýèv->uÚ×Ýè2v | |
101 | - ftHgÅÌXAJ[|bvAbvªííÌ`®ÉÎ | |
102 | - R¿áñËéi8¿áñËéjðo^·éÆQ¿áñËé̪\¦³êésïÌðÁ | |
103 | - ¨CÉüèÅÒWÉXy[XL[üÍÌsïÌC³ | |
104 | - µ½çÎJBBSÌßOÉÖ·ésïÌC³ | |
105 | - XbhÌNÅXÔª éàÌð¥ñ¾Æ«ÉA»ÌXÔÜÅXN[·éæ¤Éµ½B | |
106 | - | |
107 | 92 | 2004/09/05 |
108 | 93 | Version ÊÞÀ48 |
109 | 94 | X|bvAbv Ú`ñLøɵĢÄàA§¾ Ú`ñð\¦·ésïÌðÁ |
@@ -3,7 +3,7 @@ library ShitarabaJBBSPlugIn; | ||
3 | 3 | { |
4 | 4 | ShitarabaJBBSPlugIn |
5 | 5 | µ½çÎjbg |
6 | - $Id: ShitarabaJBBSPlugIn.dpr,v 1.36 2004/09/30 11:49:44 h677 Exp $ | |
6 | + $Id: ShitarabaJBBSPlugIn.dpr,v 1.30 2004/09/06 16:41:41 h677 Exp $ | |
7 | 7 | } |
8 | 8 | |
9 | 9 | uses |
@@ -33,7 +33,7 @@ type | ||
33 | 33 | |
34 | 34 | private |
35 | 35 | function Download : TDownloadState; |
36 | - function StorageDownload(AURL : string) : TDownloadState; | |
36 | + function StorageDownload(Path, Document : string) : TDownloadState; | |
37 | 37 | function Write( inName : string; inMail : string; inMessage : string ) : TDownloadState; |
38 | 38 | function GetRes( inNo : Integer ) : string; |
39 | 39 | function GetDat( inNo : Integer ) : string; |
@@ -281,8 +281,7 @@ var | ||
281 | 281 | // i : Integer; |
282 | 282 | const |
283 | 283 | BBS_HOST_OLD = 'jbbs.shitaraba.com'; |
284 | - BBS_HOST_OLD2 = 'jbbs.livedoor.com'; | |
285 | - BBS_HOST = 'jbbs.livedoor.jp'; | |
284 | + BBS_HOST = 'jbbs.livedoor.com'; | |
286 | 285 | THREAD_MARK = '/bbs/read.cgi'; |
287 | 286 | begin |
288 | 287 |
@@ -291,7 +290,7 @@ begin | ||
291 | 290 | uri := TIdURI.Create( inURL ); |
292 | 291 | uriList := TStringList.Create; |
293 | 292 | try |
294 | - if (uri.Host = BBS_HOST_OLD) or (uri.Host = BBS_HOST_OLD2) then | |
293 | + if uri.Host = BBS_HOST_OLD then | |
295 | 294 | uri.Host := BBS_HOST; |
296 | 295 | |
297 | 296 | ExtractHttpFields( ['/'], [], uri.Path, uriList ); |
@@ -350,13 +349,12 @@ var | ||
350 | 349 | |
351 | 350 | found : Integer; |
352 | 351 | found2 : Integer; |
353 | - pos : Integer; | |
354 | 352 | board : string; |
355 | 353 | const |
356 | 354 | CATEGORY_INPUT = 'JeSðü͵ľ³¢'; |
357 | 355 | KEYWORD_INPUT = 'õ·é¼ðü͵ľ³¢'; |
358 | 356 | SAVEPATH_SELECT = 'Û¶·ét@C¼ðü͵ľ³¢'; |
359 | - BBS_HOST = 'http://jbbs.livedoor.jp/'; | |
357 | + BBS_HOST = 'http://jbbs.livedoor.com/'; | |
360 | 358 | label |
361 | 359 | NextBoard; |
362 | 360 | begin |
@@ -439,12 +437,8 @@ begin | ||
439 | 437 | |
440 | 438 | saveText.Add( board ); |
441 | 439 | NextBoard: |
442 | - found := AnsiPos( '<a ', downResult ); | |
440 | + found := AnsiPos( '<a ', downResult ); | |
443 | 441 | end; |
444 | - pos := saveText.IndexOf('JBBS=/'); | |
445 | - if pos > 0 then | |
446 | - saveText.Delete(pos); | |
447 | - | |
448 | 442 | saveText.SaveToFile( savepath ); |
449 | 443 | saveText.Free; |
450 | 444 | end else begin |
@@ -505,14 +499,22 @@ begin | ||
505 | 499 | uriList := TStringList.Create; |
506 | 500 | try |
507 | 501 | ExtractHttpFields( ['/', '?'], [], uri.Path, uriList ); |
508 | - if uriList[ 5 ] = 'l100' then begin | |
509 | - FileName := uriList[ 4 ] + '.dat'; | |
510 | - FilePath := MyLogFolder + uriList[ 2 ] + '\' + uriList[ 3 ] + '\' + uriList[ 4 ] + '.dat'; | |
511 | - IsLogFile := FileExists( FilePath ); | |
512 | - end else begin | |
513 | - FileName := uriList[ 5 ] + '.dat'; | |
514 | - FilePath := MyLogFolder + uriList[ 3 ] + '\' + uriList[ 4 ] + '\' + uriList[ 5 ] + '.dat'; | |
502 | + if (AnsiPos('.html', uri.Document) = 0) then begin //Êí | |
503 | + if uriList[ 5 ] = 'l100' then begin | |
504 | + FileName := uriList[ 4 ] + '.dat'; | |
505 | + FilePath := MyLogFolder + uriList[ 2 ] + '\' + uriList[ 3 ] + '\' + uriList[ 4 ] + '.dat'; | |
506 | + IsLogFile := FileExists( FilePath ); | |
507 | + end else begin | |
508 | + FileName := uriList[ 5 ] + '.dat'; | |
509 | + FilePath := MyLogFolder + uriList[ 3 ] + '\' + uriList[ 4 ] + '\' + uriList[ 5 ] + '.dat'; | |
510 | + IsLogFile := FileExists( FilePath ); | |
511 | + end; | |
512 | + end else begin //ßO | |
513 | + //http://jbbs.livedoor.com/game/1578/storage/1086710948.html | |
514 | + FileName := Copy(uri.Document, 1, Length(uri.Document) - 5) + '.dat'; | |
515 | + FilePath := MyLogFolder + CustomStringReplace(CustomStringReplace(uri.Path, '/storage', ''), '/', '\') + FileName; | |
515 | 516 | IsLogFile := FileExists( FilePath ); |
517 | + | |
516 | 518 | end; |
517 | 519 | finally |
518 | 520 | uri.Free; |
@@ -549,109 +551,115 @@ var | ||
549 | 551 | logStream : TFileStream; |
550 | 552 | uri : TIdURI; |
551 | 553 | uriList : TStringList; |
552 | - datURL, tmpURL : string; | |
553 | - tmpText: string; | |
554 | + datURL : string; | |
555 | + tmpText: string; | |
554 | 556 | begin |
555 | 557 | |
556 | 558 | Result := dsError; |
557 | 559 | |
558 | 560 | uri := TIdURI.Create( ReadURL ); |
559 | - uriList := TStringList.Create; | |
560 | - try | |
561 | - ExtractHttpFields( ['/', '?'], [], uri.Path, uriList ); | |
562 | - FileName := uriList[ 5 ] + '.dat'; | |
563 | - // http://jbbs.livedoor.com/bbs/rawmode.cgi/game/1578/1067968274/l100 | |
564 | - // protocol://host/1/2/3/4/5/uriList.Count - 1 | |
565 | - if MyLogFolder = '' then begin | |
566 | - // DZÉÛ¶µÄ¢¢Ì©ª©çÈ¢ÌÅêt@CÉÛ¶ | |
567 | - FilePath := TemporaryFile; | |
568 | - FIsTemporary := True; | |
569 | - end else begin | |
570 | - FilePath := MyLogFolder + uriList[ 3 ] + '\' + uriList[ 4 ] + '\' + uriList[ 5 ] + '.dat'; | |
571 | - FIsTemporary := False; | |
572 | - end; | |
573 | - finally | |
561 | + if(( AnsiPos('.html', uri.Document) >0 ) and ( AnsiPos('/storage/', uri.Path) > 0 )) then begin | |
562 | + //ßO | |
563 | + Result := StorageDownload(uri.Path, uri.Document); | |
574 | 564 | uri.Free; |
575 | - uriList.Free; | |
576 | - end; | |
565 | + end else begin | |
566 | + //»Ý¶«ÄéXbh | |
567 | + uriList := TStringList.Create; | |
568 | + try | |
569 | + ExtractHttpFields( ['/', '?'], [], uri.Path, uriList ); | |
570 | + FileName := uriList[ 5 ] + '.dat'; | |
571 | + // http://jbbs.livedoor.com/bbs/rawmode.cgi/game/1578/1067968274/l100 | |
572 | + // protocol://host/1/2/3/4/5/uriList.Count - 1 | |
573 | + if MyLogFolder = '' then begin | |
574 | + // DZÉÛ¶µÄ¢¢Ì©ª©çÈ¢ÌÅêt@CÉÛ¶ | |
575 | + FilePath := TemporaryFile; | |
576 | + FIsTemporary := True; | |
577 | + end else begin | |
578 | + FilePath := MyLogFolder + uriList[ 3 ] + '\' + uriList[ 4 ] + '\' + uriList[ 5 ] + '.dat'; | |
579 | + FIsTemporary := False; | |
580 | + end; | |
581 | + finally | |
582 | + uri.Free; | |
583 | + uriList.Free; | |
584 | + end; | |
577 | 585 | |
578 | - // Û¶pÌfBNgð@é | |
579 | - ForceDirectoriesEx( Copy( FilePath, 1, LastDelimiter( '\', FilePath ) ) ); | |
586 | + // Û¶pÌfBNgð@é | |
587 | + ForceDirectoriesEx( Copy( FilePath, 1, LastDelimiter( '\', FilePath ) ) ); | |
580 | 588 | |
581 | - // Æ©É_E[hâtB^OðsíÈ¢êÍ | |
582 | - // InternalDownload ÉC¹é±Æªoé | |
583 | - modified := LastModified; | |
584 | - datURL := ReadURL + IntToStr( Count + 1 ) + '-'; // V ÌÝ | |
585 | - responseCode := InternalDownload( PChar( datURL ), modified, tmp, 0 ); | |
589 | + // Æ©É_E[hâtB^OðsíÈ¢êÍ | |
590 | + // InternalDownload ÉC¹é±Æªoé | |
591 | + modified := LastModified; | |
592 | + datURL := ReadURL + IntToStr( Count + 1 ) + '-'; // V ÌÝ | |
593 | + responseCode := InternalDownload( PChar( datURL ), modified, tmp, 0 ); | |
586 | 594 | |
587 | - try | |
588 | - if (responseCode = 200) or (responseCode = 206) then begin | |
589 | - downResult := TStringList.Create; | |
590 | - try | |
591 | - tmpText := CustomStringReplace( string( tmp ), '¡÷¡®', ',' ); | |
592 | - downResult.Text := EUCtoSJIS( tmpText ); | |
593 | - ArrangeDownloadData(Count, downResult); | |
594 | - if downResult.Count > 0 then begin | |
595 | - if FileExists( FilePath ) then | |
596 | - logStream := TFileStream.Create( FilePath, fmOpenReadWrite or fmShareDenyWrite ) | |
597 | - else | |
598 | - logStream := TFileStream.Create( FilePath, fmCreate or fmShareDenyWrite ); | |
599 | - try | |
600 | - logStream.Position := logStream.Size; | |
601 | - logStream.Write( PChar( downResult.Text )^, Length( downResult.Text ) ); | |
602 | - finally | |
603 | - logStream.Free; | |
604 | - end; | |
595 | + try | |
596 | + if (responseCode = 200) or (responseCode = 206) then begin | |
597 | + downResult := TStringList.Create; | |
598 | + try | |
599 | + tmpText := CustomStringReplace( string( tmp ), '¡÷¡®', ',' ); | |
600 | + downResult.Text := EUCtoSJIS( tmpText ); | |
601 | + ArrangeDownloadData(Count, downResult); | |
602 | + if downResult.Count > 0 then begin | |
603 | + if FileExists( FilePath ) then | |
604 | + logStream := TFileStream.Create( FilePath, fmOpenReadWrite or fmShareDenyWrite ) | |
605 | + else | |
606 | + logStream := TFileStream.Create( FilePath, fmCreate or fmShareDenyWrite ); | |
607 | + try | |
608 | + logStream.Position := logStream.Size; | |
609 | + logStream.Write( PChar( downResult.Text )^, Length( downResult.Text ) ); | |
610 | + finally | |
611 | + logStream.Free; | |
612 | + end; | |
605 | 613 | |
606 | - if Count = 0 then | |
607 | - // VK | |
608 | - Result := dsComplete | |
609 | - else | |
610 | - // ÇL | |
611 | - Result := dsDiffComplete; | |
614 | + if Count = 0 then | |
615 | + // VK | |
616 | + Result := dsComplete | |
617 | + else | |
618 | + // ÇL | |
619 | + Result := dsDiffComplete; | |
612 | 620 | |
613 | - Size := Size + Length( downResult.Text ); | |
614 | - // CGI ©çͳµ¢útª¾çêÈ¢ÌÅ»ÝÉÝè | |
615 | - LastModified := Now; | |
621 | + Size := Size + Length( downResult.Text ); | |
622 | + // CGI ©çͳµ¢útª¾çêÈ¢ÌÅ»ÝÉÝè | |
623 | + LastModified := Now; | |
616 | 624 | |
617 | 625 | |
618 | 626 | |
619 | - NewReceive := Count + 1; | |
620 | - Count := Count + downResult.Count; | |
621 | - NewResCount := downResult.Count; | |
627 | + NewReceive := Count + 1; | |
628 | + Count := Count + downResult.Count; | |
629 | + NewResCount := downResult.Count; | |
622 | 630 | |
623 | 631 | |
624 | 632 | |
625 | - end else begin | |
626 | - Result := dsNotModify; | |
633 | + end else begin | |
634 | + Result := dsNotModify; | |
635 | + end; | |
636 | + finally | |
637 | + downResult.Free; | |
627 | 638 | end; |
628 | - finally | |
629 | - downResult.Free; | |
630 | - end; | |
631 | - end else if responseCode = 302 then begin | |
632 | - //http://jbbs.shitaraba.com/bbs/read.cgi/game/3477/1077473358/ | |
633 | - //http://jbbs.shitaraba.com/game/bbs/read.cgi?BBS=3477&KEY=1077473358 | |
634 | - //http://jbbs.shitaraba.com/game/3477/storage/1077473358.html | |
635 | - //ßO | |
636 | - //tmpURL := URL; | |
637 | - if Assigned( InternalPrint ) then | |
638 | - InternalPrint( 'ßOqÉüè' ); | |
639 | - uri := TIdURI.Create( ReadURL ); | |
640 | - uriList := TStringList.Create; | |
641 | - try | |
642 | - ExtractHttpFields( ['/', '?'], [], uri.Path, uriList ); | |
643 | - tmpURL := uri.Protocol + '://' + uri.Host + | |
644 | - '/' + uriList[3] + '/' + uriList[4] + '/storage/' + uriList[ 5 ] + '.html'; | |
645 | - finally | |
646 | - uriList.Free; | |
639 | + end else if responseCode = 302 then begin | |
640 | + //http://jbbs.shitaraba.com/bbs/read.cgi/game/3477/1077473358/ | |
641 | + //http://jbbs.shitaraba.com/game/bbs/read.cgi?BBS=3477&KEY=1077473358 | |
642 | + //http://jbbs.shitaraba.com/game/3477/storage/1077473358.html | |
643 | + //ßO | |
644 | + uri := TIdURI.Create( ReadURL ); | |
645 | + uriList := TStringList.Create; | |
646 | + try | |
647 | + ExtractHttpFields( ['/', '?'], [], uri.Path, uriList ); | |
648 | + URL := uri.Protocol + '://' + uri.Host + | |
649 | + '/' + uriList[3] + '/' + uriList[4] + '/storage/' + uriList[ 5 ] + '.html'; | |
650 | + finally | |
651 | + uriList.Free; | |
652 | + uri.Free; | |
653 | + end; | |
654 | + uri := TIdURI.Create( ReadURL ); | |
655 | + Result := StorageDownload(uri.Path, uri.Document); | |
647 | 656 | uri.Free; |
657 | + end else if responseCode = 304 then begin | |
658 | + Result := dsNotModify; | |
648 | 659 | end; |
649 | - Result := StorageDownload(tmpURL); | |
650 | - end else if responseCode = 304 then begin | |
651 | - Result := dsNotModify; | |
660 | + finally | |
661 | + DisposeResultString( tmp ); | |
652 | 662 | end; |
653 | - finally | |
654 | - DisposeResultString( tmp ); | |
655 | 663 | end; |
656 | 664 | |
657 | 665 | end; |
@@ -691,16 +699,17 @@ end; | ||
691 | 699 | // ßOpDownloadÖ |
692 | 700 | // ************************************************************************* |
693 | 701 | function TShitarabaThreadItem.StorageDownload( |
694 | - AURL : string | |
702 | + Path, Document : string | |
695 | 703 | ) : TDownloadState; |
696 | 704 | var |
697 | 705 | modified : Double; |
698 | 706 | tmp : PChar; |
699 | - uri : TIdURI; | |
700 | - uriList : TStringList; | |
701 | 707 | downResult : TStringList; |
702 | 708 | responseCode : Longint; |
703 | 709 | logStream : TFileStream; |
710 | + //uri : TIdURI; | |
711 | + //uriList : TStringList; | |
712 | + datURL : string; | |
704 | 713 | tmpText, tmpLine, tmpTitle: string; |
705 | 714 | tmpHTML: TStringList; |
706 | 715 |
@@ -709,24 +718,23 @@ var | ||
709 | 718 | begin |
710 | 719 | |
711 | 720 | Result := dsError; |
712 | - uri := TIdURI.Create( ReadURL ); | |
713 | - uriList := TStringList.Create; | |
721 | + | |
722 | + //uri := TIdURI.Create( ReadURL ); | |
714 | 723 | try |
715 | - ExtractHttpFields( ['/', '?'], [], uri.Path, uriList ); | |
716 | - FileName := uriList[ 5 ] + '.dat'; | |
717 | - // http://jbbs.livedoor.com/bbs/rawmode.cgi/game/1578/1067968274/l100 | |
718 | - // protocol://host/1/2/3/4/5/uriList.Count - 1 | |
724 | + FileName := Copy(Document, 1, Length(Document) - 5) + '.dat'; | |
719 | 725 | if MyLogFolder = '' then begin |
720 | 726 | // DZÉÛ¶µÄ¢¢Ì©ª©çÈ¢ÌÅêt@CÉÛ¶ |
721 | 727 | FilePath := TemporaryFile; |
722 | 728 | FIsTemporary := True; |
723 | 729 | end else begin |
724 | - FilePath := MyLogFolder + uriList[ 3 ] + '\' + uriList[ 4 ] + '\' + uriList[ 5 ] + '.dat'; | |
730 | + FilePath := MyLogFolder | |
731 | + + CustomStringReplace(CustomStringReplace(Path, '/storage', ''), '/', '\') | |
732 | + + FileName; | |
733 | + | |
725 | 734 | FIsTemporary := False; |
726 | 735 | end; |
727 | 736 | finally |
728 | - uri.Free; | |
729 | - uriList.Free; | |
737 | + //uri.Free; | |
730 | 738 | end; |
731 | 739 | |
732 | 740 | // Û¶pÌfBNgð@é |
@@ -738,7 +746,8 @@ begin | ||
738 | 746 | // InternalDownload ÉC¹é±Æªoé |
739 | 747 | modified := LastModified; |
740 | 748 | |
741 | - responseCode := InternalDownload( PChar( AURL ), modified, tmp, 0 ); | |
749 | + datURL := ReadURL; | |
750 | + responseCode := InternalDownload( PChar( datURL ), modified, tmp, 0 ); | |
742 | 751 | |
743 | 752 | try |
744 | 753 | if (responseCode = 200) or (responseCode = 206) then begin |
@@ -1149,8 +1158,7 @@ var | ||
1149 | 1158 | tmphost: String; |
1150 | 1159 | const |
1151 | 1160 | BBS_HOST_OLD = 'jbbs.shitaraba.com'; |
1152 | - BBS_HOST_OLD2 = 'jbbs.livedoor.com'; | |
1153 | - BBS_HOST = 'jbbs.livedoor.jp'; | |
1161 | + BBS_HOST = 'jbbs.livedoor.com'; | |
1154 | 1162 | begin |
1155 | 1163 | |
1156 | 1164 | uri := TIdURI.Create( ReadURL ); |
@@ -1160,15 +1168,22 @@ begin | ||
1160 | 1168 | |
1161 | 1169 | tmphost := uri.Host; |
1162 | 1170 | |
1163 | - if (tmphost = BBS_HOST_OLD) or (tmphost = BBS_HOST_OLD2) then | |
1171 | + if tmphost = BBS_HOST_OLD then | |
1164 | 1172 | tmphost := BBS_HOST; |
1165 | 1173 | |
1166 | - FileName := uriList[ 5 ] + '.dat'; | |
1167 | - // http://jbbs.livedoor.com/bbs/read.cgi/computer/351/1090404452/l100 | |
1168 | - // http://jbbs.livedoor.com/bbs/read.cgi/game/1578/1067968274/l100 | |
1169 | - // http://jbbs.livedoor.com/game/1000/subject.txt | |
1170 | - Result := CreateResultString( | |
1171 | - uri.Protocol + '://' + tmphost + '/' + uriList[ 3 ] + '/' + uriList[ 4 ] + '/' ); | |
1174 | + if( AnsiPos('.html', uri.Document) = 0 ) then begin //Êí | |
1175 | + FileName := uriList[ 5 ] + '.dat'; | |
1176 | + // http://jbbs.livedoor.com/bbs/read.cgi/computer/351/1090404452/l100 | |
1177 | + // http://jbbs.livedoor.com/bbs/read.cgi/game/1578/1067968274/l100 | |
1178 | + // http://jbbs.livedoor.com/game/1000/subject.txt | |
1179 | + Result := CreateResultString( | |
1180 | + uri.Protocol + '://' + tmphost + '/' + uriList[ 3 ] + '/' + uriList[ 4 ] + '/' ); | |
1181 | + end else begin | |
1182 | + //http://jbbs.livedoor.com/game/1578/storage/1086710948.html | |
1183 | + Result := CreateResultString( | |
1184 | + uri.Protocol + '://' + tmphost + CustomStringReplace(uri.Path, '/storage', '')); | |
1185 | + end; | |
1186 | + | |
1172 | 1187 | finally |
1173 | 1188 | uri.Free; |
1174 | 1189 | uriList.Free; |
@@ -1218,8 +1233,7 @@ var | ||
1218 | 1233 | dir, tmphost : string; |
1219 | 1234 | const |
1220 | 1235 | BBS_HOST_OLD = 'jbbs.shitaraba.com'; |
1221 | - BBS_HOST_OLD2 = 'jbbs.livedoor.com'; | |
1222 | - BBS_HOST = 'jbbs.livedoor.jp'; | |
1236 | + BBS_HOST = 'jbbs.livedoor.com'; | |
1223 | 1237 | begin |
1224 | 1238 | |
1225 | 1239 | foundPos := AnsiPos( '?', URL ); |
@@ -1232,7 +1246,7 @@ begin | ||
1232 | 1246 | dir := uriList[ 1 ]; |
1233 | 1247 | |
1234 | 1248 | tmphost := uri.Host; |
1235 | - if (tmphost = BBS_HOST_OLD) or (tmphost = BBS_HOST_OLD2) then | |
1249 | + if tmphost = BBS_HOST_OLD then | |
1236 | 1250 | tmphost := BBS_HOST; |
1237 | 1251 | |
1238 | 1252 | ExtractHttpFields( ['&'], [], Copy( URL, foundPos + 1, MaxInt ), uriList ); |
@@ -1254,7 +1268,7 @@ begin | ||
1254 | 1268 | ExtractHttpFields( ['/'], [], uri.Path, uriList ); |
1255 | 1269 | |
1256 | 1270 | tmphost := uri.Host; |
1257 | - if (tmphost = BBS_HOST_OLD) or (tmphost = BBS_HOST_OLD2) then | |
1271 | + if tmphost = BBS_HOST_OLD then | |
1258 | 1272 | tmphost := BBS_HOST; |
1259 | 1273 | |
1260 | 1274 | if( AnsiPos(THREAD_MARK, URL) > 0) and (uriList.Count > 5) then begin |
@@ -1265,8 +1279,7 @@ begin | ||
1265 | 1279 | end else if AnsiPos(THREAD_MARK, URL) = 0 then begin |
1266 | 1280 | //RRÅßO©Ç¤©`FbNH |
1267 | 1281 | if(AnsiPos('.html/', uri.Path) > 0) then begin |
1268 | - Result := uri.Protocol + '://' + tmphost + THREAD_MARK + | |
1269 | - CustomStringReplace(CustomStringReplace(uri.Path, '/storage', ''), '.html/', '/') + 'l100'; | |
1282 | + Result := uri.Protocol + '://' + tmphost + Copy(uri.Path, 1, Length(uri.Path) - 1); | |
1270 | 1283 | end else |
1271 | 1284 | Result := URL; |
1272 | 1285 | end; |
@@ -1291,8 +1304,7 @@ var | ||
1291 | 1304 | dir, tmphost : string; |
1292 | 1305 | const |
1293 | 1306 | BBS_HOST_OLD = 'jbbs.shitaraba.com'; |
1294 | - BBS_HOST_OLD2 = 'jbbs.livedoor.com'; | |
1295 | - BBS_HOST = 'jbbs.livedoor.jp'; | |
1307 | + BBS_HOST = 'jbbs.livedoor.com'; | |
1296 | 1308 | begin |
1297 | 1309 | |
1298 | 1310 | foundPos := AnsiPos( '?', URL ); |
@@ -1305,7 +1317,7 @@ begin | ||
1305 | 1317 | dir := uriList[ 1 ]; |
1306 | 1318 | |
1307 | 1319 | tmphost := uri.Host; |
1308 | - if (tmphost = BBS_HOST_OLD) or (tmphost = BBS_HOST_OLD2) then | |
1320 | + if tmphost = BBS_HOST_OLD then | |
1309 | 1321 | tmphost := BBS_HOST; |
1310 | 1322 | |
1311 | 1323 | ExtractHttpFields( ['&'], [], Copy( URL, foundPos + 1, MaxInt ), uriList ); |
@@ -1327,13 +1339,19 @@ begin | ||
1327 | 1339 | ExtractHttpFields( ['/'], [], uri.Path, uriList ); |
1328 | 1340 | |
1329 | 1341 | tmphost := uri.Host; |
1330 | - if (tmphost = BBS_HOST_OLD) or (tmphost = BBS_HOST_OLD2) then | |
1342 | + if tmphost = BBS_HOST_OLD then | |
1331 | 1343 | tmphost := BBS_HOST; |
1332 | 1344 | // http://jbbs.livedoor.com/bbs/read.cgi/game/1578/1067968274/l100 |
1333 | 1345 | if( AnsiPos(THREAD_MARK, URL) > 0) and (uriList.Count > 5) then begin |
1334 | 1346 | Result := |
1335 | 1347 | uri.Protocol + '://' + tmphost + '/bbs/rawmode.cgi/' + |
1336 | 1348 | uriList[ 3 ] + '/' + uriList[ 4 ] + '/' + uriList[ 5 ] + '/'; |
1349 | + end else if AnsiPos(THREAD_MARK, URL) = 0 then begin | |
1350 | + //RRÅßO©Ç¤©`FbNH | |
1351 | + if(AnsiPos('.html/', uri.Path) > 0) then begin | |
1352 | + Result := uri.Protocol + '://' + tmphost + Copy(uri.Path, 1, Length(uri.Path) - 1); | |
1353 | + end else | |
1354 | + Result := URL; | |
1337 | 1355 | end; |
1338 | 1356 | finally |
1339 | 1357 | uri.Free; |
@@ -1415,8 +1433,7 @@ var | ||
1415 | 1433 | uriList : TStringList; |
1416 | 1434 | const |
1417 | 1435 | BBS_HOST_OLD = 'jbbs.shitaraba.com'; |
1418 | - BBS_HOST_OLD2 = 'jbbs.livedoor.com'; | |
1419 | - BBS_HOST = 'jbbs.livedoor.jp'; | |
1436 | + BBS_HOST = 'jbbs.livedoor.com'; | |
1420 | 1437 | begin |
1421 | 1438 | |
1422 | 1439 | inherited; |
@@ -1433,7 +1450,7 @@ begin | ||
1433 | 1450 | uri := TIdURI.Create( SubjectURL ); |
1434 | 1451 | uriList := TStringList.Create; |
1435 | 1452 | try |
1436 | - if (uri.Host = BBS_HOST_OLD) or (uri.Host = BBS_HOST_OLD2) then | |
1453 | + if uri.Host = BBS_HOST_OLD then | |
1437 | 1454 | uri.Host := BBS_HOST; |
1438 | 1455 | URL := uri.Protocol + '://' + uri.Host + uri.Path; |
1439 | 1456 |
@@ -15,7 +15,7 @@ | ||
15 | 15 | var start_time = new Date(); |
16 | 16 | //==========O[oÏ |
17 | 17 | var anchorHead=""; |
18 | -var skinName="skin30-2 v3.3.09xx"; | |
18 | +var skinName="skin30-2 v3.1.11xx"; | |
19 | 19 | var browser="MRir"; |
20 | 20 | //==========MRirpAJ[Ì»èi0:³µ,1:|bvAbv,2:{^}üj |
21 | 21 | // MRirÅÍAXAJ[ÍÎAhXÅLq³êé |
@@ -27,22 +27,13 @@ function checkAnchor(href){if(!href){return(0)} | ||
27 | 27 | //==========NÝè |
28 | 28 | function addAnchor(inner,num){ |
29 | 29 | if(!t_url){threadurl()} |
30 | - var url=document.getElementsByName("ThreadURL")[0].content; | |
31 | - if(url.match(/&/)){ | |
32 | - return('<a href="../test/read.cgi?bbs='+t_bbs+'&key='+t_key+'&st='+inner+'&to='+inner+'&nofirst=true" target="_blank" onclick="blur()">'+num+'</a>') | |
33 | - }else{ | |
34 | - return('<a href="../test/read.cgi/'+t_bbs+'/'+t_key+'/'+inner+'" target="_blank" onclick="blur()">'+num+'</a>') | |
35 | - } | |
30 | + return('<a href="../test/read.cgi/'+t_bbs+'/'+t_key+'/'+inner+'" target="_blank" onclick="blur()">'+num+'</a>') | |
36 | 31 | } |
37 | 32 | // XbhURLÌæ¾ |
38 | 33 | var t_url=false,t_domain,t_bbs,t_key; |
39 | 34 | function threadurl(){ |
40 | 35 | var threadurl=document.getElementsByName("ThreadURL")[0].content; |
41 | - if(threadurl.match(/&/)){ | |
42 | - threadurl.match(/bbs=(.*)&key=(\d*)/); | |
43 | - }else{ | |
44 | - threadurl.match(/^.*\/test\/read.cgi\/(.*)\/(.*)\//); | |
45 | - } | |
36 | + threadurl.match(/^.*\/test\/read.cgi\/(.*)\/(.*)\//); | |
46 | 37 | t_url=true; |
47 | 38 | t_bbs=RegExp.$1; |
48 | 39 | t_key=RegExp.$2; |
@@ -2,8 +2,7 @@ | ||
2 | 2 | //OÖFtohan |
3 | 3 | //OÏFanchorHead,lightmode,getID,skinName,browser,dts |
4 | 4 | //O[oÏ |
5 | -var buffer=1; // á¬ñüâá¬}VÌêÉÍbufferÌlðâ·Ææè³mÉWvi1â·Æ0.1bxêéj | |
6 | -var newResJump=1; // V XWvi0:uEUC¹A1:ǹÌÝA2:íj©¿ãAOpenJaneAtwintailÌÝÌÝè | |
5 | +var buffer=1; // á¬ñüâá¬}VÌêÉÍbufferÌlðâ·Ææè³mÉWvi1â·Æ0.1bxêéj | |
7 | 6 | //========Click¨search,¼ |
8 | 7 | document.onclick = clickEvent; |
9 | 8 | function clickEvent(){ |
@@ -41,19 +40,10 @@ function mouseOverEvent() { | ||
41 | 40 | else if(e.innerText.match(/^ Ú`ñ$/)) {abonePopup(e);} |
42 | 41 | } |
43 | 42 | if(e.tagName=='A'){ |
44 | - if(!e.innerText.match(/%/)){ // URLGR[hŠ調È%ªÈ¯êÎ | |
45 | - e.href=e.href.replace(/>/g,""); | |
46 | - e.href=e.href.replace(/\/ime.nu/g,""); | |
47 | - }else{ | |
48 | - try{ | |
49 | - e.title=decodeURI(e.innerText); | |
50 | - }catch(err){ | |
51 | - // ShiftJIS,EUC-JPÌfR[hÍÊ|¾©ç¯ȢB | |
52 | - } | |
53 | - } | |
43 | + e.href=e.href.replace(/>/g,""); | |
44 | + e.href=e.href.replace(/\/ime.nu/g,""); | |
54 | 45 | if (checkAnchor(e.href)==2){insButton(e);return;} |
55 | 46 | else if(checkAnchor(e.href)==1){ |
56 | - if(event.shiftKey){if(e.rel){e.href=e.rel}return} | |
57 | 47 | // ½i|bvAbv |
58 | 48 | var aNum=parseInt(e.sourceIndex)+1; |
59 | 49 | if(!document.getElementById("p"+aNum)){ |
@@ -106,10 +96,10 @@ function scroll_End(){document.getElementsByTagName("DL")[0].lastChild.scrollInt | ||
106 | 96 | // IMG |
107 | 97 | function imgCommand(mode,s){ |
108 | 98 | if(!waited){ |
109 | - var nHTML='<div id="command" onclick="clearCommand()"><input type="button" onclick="allImageLoad(\'all\')" value="SXêÇ"><br><input type="button" onclick="allImageLoad(\'new\')" value="VXêÇ"><br><input type="button" onclick="removeError()" value="Erroræí"><br></div>'; | |
99 | + var nHTML='<div id="command" onclick="clearCommand()"><input type="button" onclick="allImageLoad(\'all\')" value="SXêÇ"><br><input type="button" onclick="allImageLoad(\'new\')" value="VXêÇ"><br></div>'; | |
110 | 100 | event.srcElement.parentElement.insertAdjacentHTML('beforeEnd',nHTML); |
111 | 101 | if(skinName.match(/30-2/)){ |
112 | - //if(!lightmode){document.getElementById("command").insertAdjacentHTML('afterBegin','<input type="button" onclick="changePanel()" value="plØÖ"><br>')} | |
102 | + if(!lightmode){document.getElementById("command").insertAdjacentHTML('afterBegin','<input type="button" onclick="changePanel()" value="plØÖ"><br>')} | |
113 | 103 | document.getElementById("command").insertAdjacentHTML('beforeEnd','<input type="button" onclick="changeMode()" value="[hØÖ">') |
114 | 104 | } |
115 | 105 | waited=true; |
@@ -119,7 +109,7 @@ function imgCommand(mode,s){ | ||
119 | 109 | } |
120 | 110 | function clearCommand(){ |
121 | 111 | waited=false; |
122 | - document.getElementById("command").removeNode(true); | |
112 | + event.srcElement.parentElement.removeNode(true); | |
123 | 113 | } |
124 | 114 | //=========¶·¨copyMenu() |
125 | 115 | document.onmousedown=mousedownEvent; |
@@ -132,7 +122,6 @@ function mousedownEvent(){ | ||
132 | 122 | clickTimer=setTimeout("copyMenu()",500); |
133 | 123 | } |
134 | 124 | } |
135 | - | |
136 | 125 | //Rs[j [¨colorChange(),search::copyText() |
137 | 126 | function copyMenu(){ |
138 | 127 | clickCancel=true; clearTimeout(clickTimer); |
@@ -176,53 +165,27 @@ function key(){ | ||
176 | 165 | } |
177 | 166 | } |
178 | 167 | |
179 | -//=========V Xæ¾ãiWXL¢ÎuEUpj©TimerÍFooter©çÄÑoµ | |
180 | -//=========©¿ãAABoneA]kQ | |
168 | +//=========LoadiãÖjieFooteràµÍAHeaderÅÌ[v©çÄoµj | |
181 | 169 | var newResNum=parseInt(document.getElementsByName("GetRescount")[0].content)+1; |
182 | 170 | var k=0; |
183 | -function loadEvent(num){ // TimerÍFooter©ç | |
184 | - //====V XWv | |
185 | - if(newResJump==0){clearInterval(timerID);return} //uuEUC¹vÈçI¹ | |
186 | - //V XÌJnÔðæ¾ | |
187 | - if (browser=="©¿ã`µá"){if(isNaN(newResNum)){while(dts[k]){if(dts[k].className=="new"){newResNum=parseInt(dts[k].firstChild.innerText);break;} k++;}}} | |
188 | - else if(browser=="zbg]kQ"){newResNum=num+1;} | |
171 | +function loadEvent(){ | |
172 | + //GetRescountãÖ "ÅȯêÎ" | |
173 | + if(isNaN(newResNum)){while(dts[k]){if(dts[k].className=="new"){newResNum=parseInt(dts[k].firstChild.innerText);break;} k++; }} | |
174 | + //V Jnio[ðÝèµÄWv | |
189 | 175 | var anc=document.anchors(anchorHead+newResNum); |
190 | - if(!anc || !anc.parentElement){return} // §¾ Ú`ñ³êĽçI¹ | |
191 | - //V XWv | |
192 | - scr=lightmode ? document.body : document.getElementById("dl"); | |
193 | - viewPos=scr.scrollTop+scr.clientHeight;// XN[ãÌæʺÊu | |
194 | - endPos =anc.offsetTop+20; // VXAJ[Êu | |
195 | - //ÅãÜÅǹ or uíÉV WvvÈçWv | |
196 | - if(viewPos>endPos || newResJump==2){clearInterval(timerID);setTimeout("moveToNew("+newResNum+")",buffer*100)} | |
197 | - else{firstNew=document.anchors(anchorHead+newResNum).parentElement.nextSibling;} | |
198 | -} | |
199 | -//=========V Xæ¾ãiWXLÎuEUpj©NewMark©çÄÑoµ | |
200 | -//=========OpenJAtwin | |
201 | -var scr,viewPos,endPos=0; | |
202 | -function reloadEvent(){ | |
203 | - //====ùÇ» | |
204 | - var lastDt=dts[dts.length-2];if(!lastDt){return}// SV ÈçI¹ | |
205 | - while(lastDt && lastDt.className=="new"){lastDt.className="";lastDt=lastDt.previousSibling.previousSibling;} | |
206 | - //====V XWv | |
207 | - if(newResJump==0){return} //uuEUC¹vÈçI¹ | |
208 | - var ancs=document.anchors; | |
209 | - var newResNum=parseInt(ancs[ancs.length-1].name)+1; | |
210 | - scr=lightmode ? document.body : document.getElementById("dl"); | |
211 | - viewPos=scr.scrollTop; | |
212 | - endPos =scr.scrollHeight-scr.clientHeight-20; | |
213 | - //ÅãÜÅǹ or uíÉV WvvÈçWv | |
214 | - if(viewPos>endPos || newResJump==2){setTimeout("moveToNew("+newResNum+")",buffer*100);} | |
176 | + if(anc && anc.parentElement){ | |
177 | + if(buffer==0){clearInterval(timerID);moveToNew(newResNum);} | |
178 | + else {buffer--;} | |
179 | + } | |
215 | 180 | } |
216 | - | |
217 | 181 | // V XÚ®{V XÌÊuðL¯ |
218 | 182 | var firstNew; |
219 | 183 | function moveToNew(num){ |
220 | 184 | firstNew=getDTfromAnc(num); |
221 | - while(!firstNew){num--;firstNew=getDTfromAnc(num);} //ÎÛª§¾ Ú`ñÈçð¸ç· | |
222 | - firstNew.scrollIntoView(true); | |
185 | + if(firstNew){firstNew.scrollIntoView(true);} | |
223 | 186 | } |
224 | 187 | |
225 | -//=========DoubleClick¨defaultPopup() | |
188 | +//=========DblClick¨defaultPopup() | |
226 | 189 | document.ondblclick=defaultPopup; |
227 | 190 | function defaultPopup(){ |
228 | 191 | var num=document.selection.createRange().text.replace(/\s$/,""); |
@@ -237,17 +200,4 @@ function defaultPopup(){ | ||
237 | 200 | obj.innerText="ID:"+num; |
238 | 201 | search(obj); |
239 | 202 | } |
240 | -} | |
241 | - | |
242 | -//=========Copy | |
243 | -//head©çÇÞÆbodyÍ©¦È¢ÌÅAêpuEUÌÁ¿ðpµÄbodyÌãëÉ«o· | |
244 | -//{ǨèheadÉ«o·SkinManagerÎôÅ»èðêÂüêé | |
245 | - if(document.body) document.write('<script type="text/javascript">document.body.oncopy=copyEvent</script>\n'); | |
246 | -function copyEvent(){ | |
247 | - var textarea=document.createElement("TEXTAREA"); | |
248 | - textarea.value=document.selection.createRange().text.replace(/\s(\r\n|$)/g,"\n"); | |
249 | - var copyText=textarea.createTextRange(); | |
250 | - copyText.execCommand("Copy"); | |
251 | - return false; | |
252 | -} | |
253 | - | |
203 | +} | |
\ No newline at end of file |
@@ -2,8 +2,7 @@ | ||
2 | 2 | // OÖFaddAnchor |
3 | 3 | // OÏFcp,tp,vp,dds |
4 | 4 | //======æÇÌÝè |
5 | -var onMouseLoad=true; // true:J[\ðí¹½¾¯Afalse:LOAD{^ðNbNµÄ©ç | |
6 | -var takeArisk=false; // true:æÇÝÝÉ[hØÖAfalse:è®Å[hØÖ | |
5 | +var onMouseLoad=true; // true:J[\ðí¹½¾¯Afalse:LOAD{^ðNbNµÄ©ç | |
7 | 6 | //==========O[oÏ |
8 | 7 | //==========æ |
9 | 8 | var lightmode = true; |
@@ -69,13 +68,12 @@ function insButton(a,hRH) { | ||
69 | 68 | // æÇ |
70 | 69 | function loadImage(btn,href){ |
71 | 70 | if(!panel){changePanel()} |
72 | - if(takeArisk && lightmode){changeMode()} | |
73 | 71 | if(btn.tagName!="A"){ |
74 | 72 | var thumbs = document.images; |
75 | 73 | var l=thumbs.length; |
76 | 74 | for(var i=l;i--;){if(thumbs[i].src==href){ |
77 | 75 | if(lightmode){tp.style.visibility="visible";viewed=true;} |
78 | - //thumbs[i].scrollIntoView(true); | |
76 | + thumbs[i].scrollIntoView(true); | |
79 | 77 | imgOver(thumbs[i],100); |
80 | 78 | return true; |
81 | 79 | }} |
@@ -105,7 +103,7 @@ function loadImage(btn,href){ | ||
105 | 103 | function imgResult(img){ |
106 | 104 | var btn=img.parentElement.children.item(2); |
107 | 105 | if(event.type=="load"){btn.value='___'; img.style.display='block';} |
108 | - else {btn.value='NONE';btn.style.color='#C00';setTimeout("viewed=false",3000)} | |
106 | + else {btn.value='NONE';btn.style.color='#C00';} | |
109 | 107 | } |
110 | 108 | // TCYÌØÖ |
111 | 109 | function changeSize(btn){ |
@@ -124,15 +122,6 @@ function changeSize(btn){ | ||
124 | 122 | } |
125 | 123 | // TlCÌí |
126 | 124 | function removeThumb(btn){btn.parentElement.removeNode(true);} |
127 | -function removeError(){ | |
128 | - if(tp){ | |
129 | - var l=tp.childNodes.length; | |
130 | - for(var i=l;i--;){ | |
131 | - var stateBtn=tp.childNodes[i].childNodes[2]; | |
132 | - if(stateBtn.tagName=="BUTTON" && stateBtn.innerText=="NONE"){stateBtn.parentElement.removeNode(true);} | |
133 | - } | |
134 | - } | |
135 | -} | |
136 | 125 | // æ\¦ÌØÖ |
137 | 126 | function changeView(mode,href){ |
138 | 127 | if(!href){href=event.srcElement.src} |
@@ -15,7 +15,7 @@ var pb; | ||
15 | 15 | function namePopup(e,before,num,after){ |
16 | 16 | var hnum=tohan(num); |
17 | 17 | //RüNASüNASocket774A774KBA21ÖA[1-30]AÈÇÉÎ |
18 | - if(before){if(hnum==5 || hnum==774 || hnum==4 || hnum==21 || hnum==1 || hnum==30){return}} | |
18 | + if(before){if(hnum==3 || hnum==774 || hnum==4 || hnum==21 || hnum==1 || hnum==30){return}} | |
19 | 19 | e.outerHTML = "<b>"+before+"</b><b>"+addAnchor(hnum,num)+"</b><b>"+after+"</b>"; |
20 | 20 | } |
21 | 21 | //=========ã Ú`ñÌ|bvAbv |
@@ -110,7 +110,7 @@ function clearResult(obj){ | ||
110 | 110 | for(var i=l;i--;){ |
111 | 111 | var dt=eval(arrayElement); var dd=dt.nextSibling; |
112 | 112 | //Live@\ÇÁ - §¾ Ú`ñ |
113 | - if(browser=="Live2ch"){location.href='func:ABONECLEAR?'+dt.firstChild.innerText;} | |
113 | + if(browser=="Live2ch"){location.href='func:ABONECLEAR?'+dt.firstChild.innerText;continue;} | |
114 | 114 | dt.removeNode(true); dd.removeNode(true); |
115 | 115 | } |
116 | 116 | } |
@@ -144,7 +144,7 @@ function findIt(word){ | ||
144 | 144 | |
145 | 145 | //==========tQÆ |
146 | 146 | function searchRef(obj){ |
147 | - if(obj.name!='referred'){ | |
147 | + if(obj.name!='reffered'){ | |
148 | 148 | var num=obj.firstChild.innerText; |
149 | 149 | var l=dds.length; |
150 | 150 | var found = new Array; |
@@ -171,7 +171,7 @@ function searchRef(obj){ | ||
171 | 171 | if(exist){ |
172 | 172 | var dt=dds[i].previousSibling.cloneNode(true); |
173 | 173 | found.unshift(dt.outerHTML.replace(/name=.*?>/,">")+dd.outerHTML.replace(/<a name=.*>/i,"")); |
174 | - obj.name="referred"; | |
174 | + obj.name="reffered"; | |
175 | 175 | } |
176 | 176 | } |
177 | 177 | if(found.length){returnRef(obj.nextSibling,found)} |
@@ -190,12 +190,13 @@ function returnRef(dd,found){ | ||
190 | 190 | function copyText(target){ |
191 | 191 | var num=event.srcElement.parentElement.name; |
192 | 192 | var obj=getDTfromAnc(num); |
193 | + var decoy=document.createDocumentFragment(); | |
193 | 194 | var textarea=document.createElement("TEXTAREA"); |
194 | - var message=obj.nextSibling.innerText.replace(/\s(\r\n|$)/g,"\n"); | |
195 | - if (target=="res") {textarea.value=obj.firstChild.innerText+" F"+obj.childNodes[1].innerText+" F"+obj.lastChild.innerText+"\n"+message;} | |
195 | + if (target=="res") {textarea.value=obj.firstChild.innerText+" F"+obj.childNodes[1].innerText+" F"+obj.lastChild.innerText+"\n"+obj.nextSibling.innerText+"\n";} | |
196 | 196 | else if(target=="name"){textarea.value=obj.childNodes[1].innerText+"\n";} |
197 | - else if(target=="id") {textarea.value="ID:"+(obj.lastChild.innerText.split(/ID:/))[1]+"\n";} | |
198 | - var copyText=textarea.createTextRange(); | |
197 | + else if(target=="id") {textarea.value=obj.lastChild.innerText.substr(15)+"\n";} | |
198 | + decoy.appendChild(textarea); | |
199 | + var copyText=decoy.getElementsByTagName("TEXTAREA")[0].createTextRange(); | |
199 | 200 | copyText.execCommand("Copy") |
200 | 201 | event.srcElement.parentElement.removeNode(true); |
201 | 202 | } |
@@ -15,11 +15,11 @@ | ||
15 | 15 | var start_time = new Date(); |
16 | 16 | //==========O[oÏ |
17 | 17 | var anchorHead=""; |
18 | -var skinName="skin30-3 v3.3.09xx"; | |
18 | +var skinName="skin30-3 v3.1.11xx"; | |
19 | 19 | var browser="MRir"; |
20 | 20 | //==========MRirpAJ[Ì»èi0:³µ,1:|bvAbv,2:{^}üj |
21 | 21 | // MRirÅÍAXAJ[ÍÎAhXÅLq³êé |
22 | -function checkAnchor(href){if(!href){return(0)} | |
22 | +function checkAnchor(href){ | |
23 | 23 | if (href.match(/decoy:|about:blank/)){return(1)} |
24 | 24 | else if(href.match(/menu:|read\.cgi|2ch\.net\/.*\/kako/)){return(0)} |
25 | 25 | else{return(2)} |
@@ -27,22 +27,13 @@ function checkAnchor(href){if(!href){return(0)} | ||
27 | 27 | //==========NÝè |
28 | 28 | function addAnchor(inner,num){ |
29 | 29 | if(!t_url){threadurl()} |
30 | - var url=document.getElementsByName("ThreadURL")[0].content; | |
31 | - if(url.match(/&/)){ | |
32 | - return('<a href="../test/read.cgi?bbs='+t_bbs+'&key='+t_key+'&st='+inner+'&to='+inner+'&nofirst=true" target="_blank" onclick="blur()">'+num+'</a>') | |
33 | - }else{ | |
34 | - return('<a href="../test/read.cgi/'+t_bbs+'/'+t_key+'/'+inner+'" target="_blank" onclick="blur()">'+num+'</a>') | |
35 | - } | |
30 | + return('<a href="../test/read.cgi/'+t_bbs+'/'+t_key+'/'+inner+'" target="_blank" onclick="blur()">'+num+'</a>') | |
36 | 31 | } |
37 | 32 | // XbhURLÌæ¾ |
38 | 33 | var t_url=false,t_domain,t_bbs,t_key; |
39 | 34 | function threadurl(){ |
40 | 35 | var threadurl=document.getElementsByName("ThreadURL")[0].content; |
41 | - if(threadurl.match(/&/)){ | |
42 | - threadurl.match(/bbs=(.*)&key=(\d*)/); | |
43 | - }else{ | |
44 | - threadurl.match(/^.*\/test\/read.cgi\/(.*)\/(.*)\//); | |
45 | - } | |
36 | + threadurl.match(/^.*\/test\/read.cgi\/(.*)\/(.*)\//); | |
46 | 37 | t_url=true; |
47 | 38 | t_bbs=RegExp.$1; |
48 | 39 | t_key=RegExp.$2; |
@@ -2,8 +2,7 @@ | ||
2 | 2 | //OÖFtohan |
3 | 3 | //OÏFanchorHead,lightmode,getID,skinName,browser,dts |
4 | 4 | //O[oÏ |
5 | -var buffer=1; // á¬ñüâá¬}VÌêÉÍbufferÌlðâ·Ææè³mÉWvi1â·Æ0.1bxêéj | |
6 | -var newResJump=1; // V XWvi0:uEUC¹A1:ǹÌÝA2:íj©¿ãAOpenJaneAtwintailÌÝÌÝè | |
5 | +var buffer=1; // á¬ñüâá¬}VÌêÉÍbufferÌlðâ·Ææè³mÉWvi1â·Æ0.1bxêéj | |
7 | 6 | //========Click¨search,¼ |
8 | 7 | document.onclick = clickEvent; |
9 | 8 | function clickEvent(){ |
@@ -41,19 +40,10 @@ function mouseOverEvent() { | ||
41 | 40 | else if(e.innerText.match(/^ Ú`ñ$/)) {abonePopup(e);} |
42 | 41 | } |
43 | 42 | if(e.tagName=='A'){ |
44 | - if(!e.innerText.match(/%/)){ // URLGR[hŠ調È%ªÈ¯êÎ | |
45 | - e.href=e.href.replace(/>/g,""); | |
46 | - e.href=e.href.replace(/\/ime.nu/g,""); | |
47 | - }else{ | |
48 | - try{ | |
49 | - e.title=decodeURI(e.innerText); | |
50 | - }catch(err){ | |
51 | - // ShiftJIS,EUC-JPÌfR[hÍÊ|¾©ç¯ȢB | |
52 | - } | |
53 | - } | |
43 | + e.href=e.href.replace(/>/g,""); | |
44 | + e.href=e.href.replace(/\/ime.nu/g,""); | |
54 | 45 | if (checkAnchor(e.href)==2){insButton(e);return;} |
55 | 46 | else if(checkAnchor(e.href)==1){ |
56 | - if(event.shiftKey){if(e.rel){e.href=e.rel}return} | |
57 | 47 | // ½i|bvAbv |
58 | 48 | var aNum=parseInt(e.sourceIndex)+1; |
59 | 49 | if(!document.getElementById("p"+aNum)){ |
@@ -106,10 +96,10 @@ function scroll_End(){document.getElementsByTagName("DL")[0].lastChild.scrollInt | ||
106 | 96 | // IMG |
107 | 97 | function imgCommand(mode,s){ |
108 | 98 | if(!waited){ |
109 | - var nHTML='<div id="command" onclick="clearCommand()"><input type="button" onclick="allImageLoad(\'all\')" value="SXêÇ"><br><input type="button" onclick="allImageLoad(\'new\')" value="VXêÇ"><br><input type="button" onclick="removeError()" value="Erroræí"><br></div>'; | |
99 | + var nHTML='<div id="command" onclick="clearCommand()"><input type="button" onclick="allImageLoad(\'all\')" value="SXêÇ"><br><input type="button" onclick="allImageLoad(\'new\')" value="VXêÇ"><br></div>'; | |
110 | 100 | event.srcElement.parentElement.insertAdjacentHTML('beforeEnd',nHTML); |
111 | 101 | if(skinName.match(/30-2/)){ |
112 | - //if(!lightmode){document.getElementById("command").insertAdjacentHTML('afterBegin','<input type="button" onclick="changePanel()" value="plØÖ"><br>')} | |
102 | + if(!lightmode){document.getElementById("command").insertAdjacentHTML('afterBegin','<input type="button" onclick="changePanel()" value="plØÖ"><br>')} | |
113 | 103 | document.getElementById("command").insertAdjacentHTML('beforeEnd','<input type="button" onclick="changeMode()" value="[hØÖ">') |
114 | 104 | } |
115 | 105 | waited=true; |
@@ -119,7 +109,7 @@ function imgCommand(mode,s){ | ||
119 | 109 | } |
120 | 110 | function clearCommand(){ |
121 | 111 | waited=false; |
122 | - document.getElementById("command").removeNode(true); | |
112 | + event.srcElement.parentElement.removeNode(true); | |
123 | 113 | } |
124 | 114 | //=========¶·¨copyMenu() |
125 | 115 | document.onmousedown=mousedownEvent; |
@@ -132,7 +122,6 @@ function mousedownEvent(){ | ||
132 | 122 | clickTimer=setTimeout("copyMenu()",500); |
133 | 123 | } |
134 | 124 | } |
135 | - | |
136 | 125 | //Rs[j [¨colorChange(),search::copyText() |
137 | 126 | function copyMenu(){ |
138 | 127 | clickCancel=true; clearTimeout(clickTimer); |
@@ -176,53 +165,27 @@ function key(){ | ||
176 | 165 | } |
177 | 166 | } |
178 | 167 | |
179 | -//=========V Xæ¾ãiWXL¢ÎuEUpj©TimerÍFooter©çÄÑoµ | |
180 | -//=========©¿ãAABoneA]kQ | |
168 | +//=========LoadiãÖjieFooteràµÍAHeaderÅÌ[v©çÄoµj | |
181 | 169 | var newResNum=parseInt(document.getElementsByName("GetRescount")[0].content)+1; |
182 | 170 | var k=0; |
183 | -function loadEvent(num){ // TimerÍFooter©ç | |
184 | - //====V XWv | |
185 | - if(newResJump==0){clearInterval(timerID);return} //uuEUC¹vÈçI¹ | |
186 | - //V XÌJnÔðæ¾ | |
187 | - if (browser=="©¿ã`µá"){if(isNaN(newResNum)){while(dts[k]){if(dts[k].className=="new"){newResNum=parseInt(dts[k].firstChild.innerText);break;} k++;}}} | |
188 | - else if(browser=="zbg]kQ"){newResNum=num+1;} | |
171 | +function loadEvent(){ | |
172 | + //GetRescountãÖ "ÅȯêÎ" | |
173 | + if(isNaN(newResNum)){while(dts[k]){if(dts[k].className=="new"){newResNum=parseInt(dts[k].firstChild.innerText);break;} k++; }} | |
174 | + //V Jnio[ðÝèµÄWv | |
189 | 175 | var anc=document.anchors(anchorHead+newResNum); |
190 | - if(!anc || !anc.parentElement){return} // §¾ Ú`ñ³êĽçI¹ | |
191 | - //V XWv | |
192 | - scr=lightmode ? document.body : document.getElementById("dl"); | |
193 | - viewPos=scr.scrollTop+scr.clientHeight;// XN[ãÌæʺÊu | |
194 | - endPos =anc.offsetTop+20; // VXAJ[Êu | |
195 | - //ÅãÜÅǹ or uíÉV WvvÈçWv | |
196 | - if(viewPos>endPos || newResJump==2){clearInterval(timerID);setTimeout("moveToNew("+newResNum+")",buffer*100)} | |
197 | - else{firstNew=document.anchors(anchorHead+newResNum).parentElement.nextSibling;} | |
198 | -} | |
199 | -//=========V Xæ¾ãiWXLÎuEUpj©NewMark©çÄÑoµ | |
200 | -//=========OpenJAtwin | |
201 | -var scr,viewPos,endPos=0; | |
202 | -function reloadEvent(){ | |
203 | - //====ùÇ» | |
204 | - var lastDt=dts[dts.length-2];if(!lastDt){return}// SV ÈçI¹ | |
205 | - while(lastDt && lastDt.className=="new"){lastDt.className="";lastDt=lastDt.previousSibling.previousSibling;} | |
206 | - //====V XWv | |
207 | - if(newResJump==0){return} //uuEUC¹vÈçI¹ | |
208 | - var ancs=document.anchors; | |
209 | - var newResNum=parseInt(ancs[ancs.length-1].name)+1; | |
210 | - scr=lightmode ? document.body : document.getElementById("dl"); | |
211 | - viewPos=scr.scrollTop; | |
212 | - endPos =scr.scrollHeight-scr.clientHeight-20; | |
213 | - //ÅãÜÅǹ or uíÉV WvvÈçWv | |
214 | - if(viewPos>endPos || newResJump==2){setTimeout("moveToNew("+newResNum+")",buffer*100);} | |
176 | + if(anc && anc.parentElement){ | |
177 | + if(buffer==0){clearInterval(timerID);moveToNew(newResNum);} | |
178 | + else {buffer--;} | |
179 | + } | |
215 | 180 | } |
216 | - | |
217 | 181 | // V XÚ®{V XÌÊuðL¯ |
218 | 182 | var firstNew; |
219 | 183 | function moveToNew(num){ |
220 | 184 | firstNew=getDTfromAnc(num); |
221 | - while(!firstNew){num--;firstNew=getDTfromAnc(num);} //ÎÛª§¾ Ú`ñÈçð¸ç· | |
222 | - firstNew.scrollIntoView(true); | |
185 | + if(firstNew){firstNew.scrollIntoView(true);} | |
223 | 186 | } |
224 | 187 | |
225 | -//=========DoubleClick¨defaultPopup() | |
188 | +//=========DblClick¨defaultPopup() | |
226 | 189 | document.ondblclick=defaultPopup; |
227 | 190 | function defaultPopup(){ |
228 | 191 | var num=document.selection.createRange().text.replace(/\s$/,""); |
@@ -237,17 +200,4 @@ function defaultPopup(){ | ||
237 | 200 | obj.innerText="ID:"+num; |
238 | 201 | search(obj); |
239 | 202 | } |
240 | -} | |
241 | - | |
242 | -//=========Copy | |
243 | -//head©çÇÞÆbodyÍ©¦È¢ÌÅAêpuEUÌÁ¿ðpµÄbodyÌãëÉ«o· | |
244 | -//{ǨèheadÉ«o·SkinManagerÎôÅ»èðêÂüêé | |
245 | - if(document.body) document.write('<script type="text/javascript">document.body.oncopy=copyEvent</script>\n'); | |
246 | -function copyEvent(){ | |
247 | - var textarea=document.createElement("TEXTAREA"); | |
248 | - textarea.value=document.selection.createRange().text.replace(/\s(\r\n|$)/g,"\n"); | |
249 | - var copyText=textarea.createTextRange(); | |
250 | - copyText.execCommand("Copy"); | |
251 | - return false; | |
252 | -} | |
253 | - | |
203 | +} | |
\ No newline at end of file |
@@ -15,7 +15,7 @@ var pb; | ||
15 | 15 | function namePopup(e,before,num,after){ |
16 | 16 | var hnum=tohan(num); |
17 | 17 | //RüNASüNASocket774A774KBA21ÖA[1-30]AÈÇÉÎ |
18 | - if(before){if(hnum==5 || hnum==774 || hnum==4 || hnum==21 || hnum==1 || hnum==30){return}} | |
18 | + if(before){if(hnum==3 || hnum==774 || hnum==4 || hnum==21 || hnum==1 || hnum==30){return}} | |
19 | 19 | e.outerHTML = "<b>"+before+"</b><b>"+addAnchor(hnum,num)+"</b><b>"+after+"</b>"; |
20 | 20 | } |
21 | 21 | //=========ã Ú`ñÌ|bvAbv |
@@ -110,7 +110,7 @@ function clearResult(obj){ | ||
110 | 110 | for(var i=l;i--;){ |
111 | 111 | var dt=eval(arrayElement); var dd=dt.nextSibling; |
112 | 112 | //Live@\ÇÁ - §¾ Ú`ñ |
113 | - if(browser=="Live2ch"){location.href='func:ABONECLEAR?'+dt.firstChild.innerText;} | |
113 | + if(browser=="Live2ch"){location.href='func:ABONECLEAR?'+dt.firstChild.innerText;continue;} | |
114 | 114 | dt.removeNode(true); dd.removeNode(true); |
115 | 115 | } |
116 | 116 | } |
@@ -144,7 +144,7 @@ function findIt(word){ | ||
144 | 144 | |
145 | 145 | //==========tQÆ |
146 | 146 | function searchRef(obj){ |
147 | - if(obj.name!='referred'){ | |
147 | + if(obj.name!='reffered'){ | |
148 | 148 | var num=obj.firstChild.innerText; |
149 | 149 | var l=dds.length; |
150 | 150 | var found = new Array; |
@@ -171,7 +171,7 @@ function searchRef(obj){ | ||
171 | 171 | if(exist){ |
172 | 172 | var dt=dds[i].previousSibling.cloneNode(true); |
173 | 173 | found.unshift(dt.outerHTML.replace(/name=.*?>/,">")+dd.outerHTML.replace(/<a name=.*>/i,"")); |
174 | - obj.name="referred"; | |
174 | + obj.name="reffered"; | |
175 | 175 | } |
176 | 176 | } |
177 | 177 | if(found.length){returnRef(obj.nextSibling,found)} |
@@ -190,12 +190,13 @@ function returnRef(dd,found){ | ||
190 | 190 | function copyText(target){ |
191 | 191 | var num=event.srcElement.parentElement.name; |
192 | 192 | var obj=getDTfromAnc(num); |
193 | + var decoy=document.createDocumentFragment(); | |
193 | 194 | var textarea=document.createElement("TEXTAREA"); |
194 | - var message=obj.nextSibling.innerText.replace(/\s(\r\n|$)/g,"\n"); | |
195 | - if (target=="res") {textarea.value=obj.firstChild.innerText+" F"+obj.childNodes[1].innerText+" F"+obj.lastChild.innerText+"\n"+message;} | |
195 | + if (target=="res") {textarea.value=obj.firstChild.innerText+" F"+obj.childNodes[1].innerText+" F"+obj.lastChild.innerText+"\n"+obj.nextSibling.innerText+"\n";} | |
196 | 196 | else if(target=="name"){textarea.value=obj.childNodes[1].innerText+"\n";} |
197 | - else if(target=="id") {textarea.value="ID:"+(obj.lastChild.innerText.split(/ID:/))[1]+"\n";} | |
198 | - var copyText=textarea.createTextRange(); | |
197 | + else if(target=="id") {textarea.value=obj.lastChild.innerText.substr(15)+"\n";} | |
198 | + decoy.appendChild(textarea); | |
199 | + var copyText=decoy.getElementsByTagName("TEXTAREA")[0].createTextRange(); | |
199 | 200 | copyText.execCommand("Copy") |
200 | 201 | event.srcElement.parentElement.removeNode(true); |
201 | 202 | } |