OSDN Git Service

Beのプロファイルへのリンクを変更と
authorh677 <h677>
Sat, 2 Apr 2005 03:08:06 +0000 (03:08 +0000)
committerh677 <h677>
Sat, 2 Apr 2005 03:08:06 +0000 (03:08 +0000)
したらばJBBSのレスアンカーの仕様変更の吸収コードの追加

Giko.dfm
Giko.pas

index 8c7a5eb..c8e26f3 100644 (file)
--- a/Giko.dfm
+++ b/Giko.dfm
@@ -569,7 +569,6 @@ object GikoForm: TGikoForm
               Align = alClient
               TabOrder = 0
               OnEnter = BrowserEnter
-              OnExit = BrowserExit
               OnStatusTextChange = BrowserStatusTextChange
               OnBeforeNavigate2 = BrowserBeforeNavigate2
               OnNewWindow2 = BrowserNewWindow2
@@ -4661,7 +4660,7 @@ object GikoForm: TGikoForm
     Left = 4
     Top = 244
     Bitmap = {
-      494C010136003B00040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600
+      494C010136003B00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       000000000000360000002800000040000000F0000000010020000000000000F0
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000000000000000
@@ -6645,13 +6644,14 @@ object GikoForm: TGikoForm
       00000000C003FFFF0000000080017FFF0000000080013F7F0000000000000E3F
       000000000000861F800000000000C20FC00100000000E007F81F00000000F043
       F00F00000000F861E00700008001FC70C003803F8001FEFCF81FC07FC003FFFE
-      F81FE0FFE007FFFFF83FFFFFF81FFFFF}
+      F81FE0FFE007FFFFF83FFFFFF81FFFFF00000000000000000000000000000000
+      000000000000}
   end
   object ToobarImageList: TImageList
     Left = 36
     Top = 244
     Bitmap = {
-      494C010136003B00040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600
+      494C010136003B00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       000000000000360000002800000040000000F0000000010020000000000000F0
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000000000000000
@@ -8635,7 +8635,8 @@ object GikoForm: TGikoForm
       00000000C003FFFF0000000080017FFF0000000080013F7F0000000000000E3F
       000000000000861F800000000000C20FC00100000000E007F81F00000000F043
       F00F00000000F861E00700008001FC70C003803F8001FEFCF81FC07FC003FFFE
-      F81FE0FFE007FFFFF83FFFFFF81FFFFF}
+      F81FE0FFE007FFFFF83FFFFFF81FFFFF00000000000000000000000000000000
+      000000000000}
   end
   object ItemImageList: TImageList
     Left = 4
index 44ef906..e5aff7a 100644 (file)
--- a/Giko.pas
+++ b/Giko.pas
@@ -954,7 +954,6 @@ type
     procedure SortActiveColumnActionExecute(Sender: TObject);
     procedure SortNextColumnActionExecute(Sender: TObject);
     procedure SortPrevColumnActionExecute(Sender: TObject);
-    procedure BrowserExit(Sender: TObject);
     procedure MessageListViewAdvancedCustomDrawItem(
       Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
       Stage: TCustomDrawStage; var DefaultDraw: Boolean);
@@ -1137,6 +1136,8 @@ type
                procedure SetSelectWord( const text : string );
                //\83u\83\89\83E\83U\82Ì\8dÄ\95`\89æ true:\91S\82Ä\82Ì\83^\83u false:\83A\83N\83e\83B\83u\82È\83^\83u\82Ì\82Ý
                procedure RepaintAllTabsBrowser();
+        //\83\8a\83\93\83N\82Ì\95\8e\9a\97ñ\82©\82ç\83\8c\83X\83|\83b\83v\83A\83b\83v\97p\82ÌURL\82É\95Ï\8a·\82·\82é
+        function GetRespopupURL(AText, AThreadURL : string): string;
        protected
                procedure CreateParams(var Params: TCreateParams); override;
                procedure WndProc(var Message: TMessage); override;
@@ -1360,9 +1361,9 @@ begin
                FBrowsers.Add(TWebBrowser.Create(nil));
                newBrowser := FBrowsers[FBrowsers.Count - 1];
                TOleControl(newBrowser).Parent := BrowserPanel;
-               newBrowser.Align := alNone;
-               newBrowser.Left := 0;
-               newBrowser.Top  := 0;
+               TOleControl(newBrowser).Align := alNone;
+               TOleControl(newBrowser).Left    := 0;
+               TOleControl(newBrowser).Top     := 0;
                //newBrowser.StatusBar  := false;
                //newBrowser.MenuBar            := false;
                //newBrowser.AddressBar         := false;
@@ -2997,37 +2998,7 @@ begin
                        end;
                end else begin
                        threadItem := GetActiveContent;
-                       if Pos('about:blank..', Text) = 1 then begin
-                               wkInt := LastDelimiter( '/', threadItem.URL );
-                               if Pos( '?', Copy( threadItem.URL, wkInt, MaxInt ) ) = 0 then begin
-                                       // Thread.URL \82Í PATH_INFO \93n\82µ
-                                       URL := Copy( threadItem.URL, 1,  LastDelimiter( '/', threadItem.URL ) );
-                                       wkInt := LastDelimiter( '/', Text );
-                                       if Pos( '?', Copy( Text, wkInt, MaxInt ) ) = 0 then
-                                               // Text \82à PATH_INFO \93n\82µ
-                                               URL := URL + Copy( Text, LastDelimiter( '/', Text ) + 1, MaxInt )
-                                       else
-                                               // Text \82Í QUERY_STRING \93n\82µ
-                                               URL := URL + Copy( Text, LastDelimiter( '?', Text ) + 1, MaxInt );
-                               end else begin
-                                       // Thread.URL \82Í QUERY_STRING \93n\82µ
-                                       URL := Copy( threadItem.URL, 1,  LastDelimiter( '?', threadItem.URL ) );
-                                       wkInt := LastDelimiter( '/', Text );
-                                       if Pos( '?', Copy( Text, wkInt, MaxInt ) ) = 0 then begin
-                                               // Text \82Í PATH_INFO \93n\82µ
-                                               // URL \82É\94Â\82Æ\83L\81[\82ª\91«\82ç\82È\82¢\82Ì\82Å Text \82©\82ç\92¸\91Õ\82·\82é
-                                               wkInt := LastDelimiter( '/', Copy( Text, 1, wkInt - 1 ) );
-                                               wkInt := LastDelimiter( '/', Copy( Text, 1, wkInt - 1 ) );
-                                               URL := Copy( URL, 1, Length( URL ) - 1 ) + Copy( Text, wkInt, MaxInt );
-                                       end else begin
-                                               // Text \82à QUERY_STRING \93n\82µ
-                                               URL := URL + Copy( Text, LastDelimiter( '?', Text ) + 1, MaxInt )
-                                       end;
-                               end;
-                       end else begin
-                               URL := Text;
-                       end;
-
+            URL := GetRespopupURL(Text, threadItem.URL);
                        PathRec := Gikosys.Parse2chURL2(URL);
                        if (PathRec.FNoParam) then begin
                                PathRec.FSt := 1;
@@ -3055,18 +3026,6 @@ begin
                                        wkIntTo := wkIntSt;
                                        wkIntSt := wkInt;
                                end;
-                               //if wkIntSt = 0 then
-                               //      wkIntSt := 1;
-                               //if wkINtTo = 0 then
-                               //      wkIntTo := 1;
-                               //if PathRec.FFirst then
-                               //      wkIntSt := 1;
-                               //if PathRec.FStBegin then //http://\81`\81`\81`\81`/-50\82Æ\82¢\82¤\82Æ\82«
-                               //      wkIntSt := 1;          //
-                               //if PathRec.FToEnd then   //http://\81`\81`\81`\81`/50-\82Æ\82¢\82¤\82Æ\82«
-                               //      wkIntTo := 9999;       // \82Ç\82¿\82ç\82Ì\8fê\8d\87\82à\81AGetPopupResNumber\82Å\82¤\82Ü\82­\94Ô\8d\86\82ð\92²\90®\82·\82é\82Ì\82Å\82Ó\82æ\82¤\81B
-
-                               //ATitle := ActiveFileName <> PathRec.FKey;
                                if (FActiveContent <> nil) and (FActiveContent.Thread.URL = URL) then
                                        ATitle := false
                                else
@@ -6418,6 +6377,8 @@ var
        wkIntSt: Integer;
        wkIntTo: Integer;
        document: IHTMLDocument2;
+    BNum, BRes: string;
+    threadItem: TThreadItem;
 begin
 
        Cancel := True;
@@ -6452,8 +6413,19 @@ begin
 
                        end;
                end else begin
+            ////'http://be.2ch.net/test/p.php?i='+id+'&u=d:'+bas+num
+
                        URL := GikoSys.GetHRefText(Html);
                        URL := GikoSys.HTMLDecode(URL);
+            if AnsiPos('BE:', URL) = 1 then begin
+                BNum := Copy(URL, 4, AnsiPos('/', URL) - 4);
+                BRes := Copy(URL, AnsiPos('/', URL) + 1,  Length(URL));
+                threadItem := FActiveContent.Thread;
+                if threadItem = nil then Exit;
+                URL := BE_PHP_URL + BNum + '&u=d'
+                       + CustomStringReplace(threadItem.URL, 'l50', '') + BRes;
+            end;
+
                        if( AnsiPos('http://', URL) = 1) or (AnsiPos('https://', URL) = 1) or
                                ( AnsiPos('ftp://', URL) = 1) then begin
                                //\83A\83h\83\8c\83X\83o\81[\82Ì\97\9a\97ð
@@ -12174,11 +12146,6 @@ begin
 
 end;
 
-procedure TGikoForm.BrowserExit(Sender: TObject);
-begin
-       IDAnchorPopup('');
-end;
-
 procedure TGikoForm.RepaintAllTabsBrowser();
 var
        i : Integer;
@@ -12214,10 +12181,54 @@ begin
        if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
         else BeLogInOutAction.Checked := false;
        BeLogInOutAction.Enabled := true
-    end else 
+    end else
        BeLogInOutAction.Enabled := false;
 
 end;
+//\83\8a\83\93\83N\82Ì\95\8e\9a\97ñ\82©\82ç\83\8c\83X\83|\83b\83v\83A\83b\83v\97p\82ÌURL\82É\95Ï\8a·\82·\82é
+function TGikoForm.GetRespopupURL(AText, AThreadURL : string): string;
+var
+       wkInt: Integer;
+begin
+    Result := '';
+    if Pos('about:blank..', AText) = 1 then begin
+        wkInt := LastDelimiter( '/', AThreadURL );
+        if Pos( '?', Copy( AThreadURL, wkInt, MaxInt ) ) = 0 then begin
+            // Thread.URL \82Í PATH_INFO \93n\82µ
+            Result := Copy( AThreadURL, 1,  LastDelimiter( '/', AThreadURL ) );
+            wkInt := LastDelimiter( '/', AText );
+            if Pos( '?', Copy( AText, wkInt, MaxInt ) ) = 0 then
+                // Text \82à PATH_INFO \93n\82µ
+                Result := Result + Copy( AText, LastDelimiter( '/', AText ) + 1, MaxInt )
+            else
+                // Text \82Í QUERY_STRING \93n\82µ
+                Result := Result + Copy( AText, LastDelimiter( '?', AText ) + 1, MaxInt );
+        end else begin
+            // Thread.URL \82Í QUERY_STRING \93n\82µ
+            Result := Copy( AThreadURL, 1,  LastDelimiter( '?', AThreadURL ) );
+            wkInt := LastDelimiter( '/', AText );
+            if Pos( '?', Copy( Text, wkInt, MaxInt ) ) = 0 then begin
+                // Text \82Í PATH_INFO \93n\82µ
+                // URL \82É\94Â\82Æ\83L\81[\82ª\91«\82ç\82È\82¢\82Ì\82Å Text \82©\82ç\92¸\91Õ\82·\82é
+                wkInt := LastDelimiter( '/', Copy( AText, 1, wkInt - 1 ) );
+                wkInt := LastDelimiter( '/', Copy( AText, 1, wkInt - 1 ) );
+                Result := Copy( Result, 1, Length( Result ) - 1 ) + Copy( AText, wkInt, MaxInt );
+            end else begin
+                // Text \82à QUERY_STRING \93n\82µ
+                Result := Result + Copy( Text, LastDelimiter( '?', AText ) + 1, MaxInt )
+            end;
+        end;
+    end else if Pos('about:blank/bbs/', AText) = 1 then begin
+       //\82µ\82½\82ç\82ÎJBBS\82Ì\8ed\95Ï\82Ì\8bz\8eû
+        AText := CustomStringReplace(AText, 'about:blank/bbs/', 'about:blank../../bbs/');
+       Result := GetRespopupURL(AText, AThreadURL);
+    end else begin
+        Result := AText;
+    end;
+
+end;
+
+
 
 initialization
                                OleInitialize(nil);