OSDN Git Service

RoundBoard.2ch、RoundItem.2chの内容が1行もない場合クラッシュするバグを修正
[gikonavigoeson/gikonavi.git] / UpdateCheck.pas
index 4d12e4d..fe0fa4d 100644 (file)
@@ -15,14 +15,17 @@ type
     UpdateButton: TButton;
     IdHTTP: TIdHTTP;
     IdAntiFreeze: TIdAntiFreeze;
+    NightBuildCheckButton: TButton;
     procedure UpdateButtonClick(Sender: TObject);
     procedure FormCreate(Sender: TObject);
+    procedure NightBuildCheckButtonClick(Sender: TObject);
   private
     { Private \90é\8c¾ }
     function  GetDesktopDir:string;
     function  GetDownloadFilePath(FileName: String): String;
     function  CreateShortCut(FileName, Argment, SavePath :string):boolean;
     procedure DonwloadUpdate(url: String);
+    procedure CheckUpdate(nightbuild :Boolean);
   public
     { Public \90é\8c¾ }
   end;
@@ -33,17 +36,23 @@ var
 implementation
 uses
     GikoSystem, NewBoard, Giko, IniFiles, MojuUtils, GikoDataModule,
-    ActiveX, ComObj, ShlObj;
-    
+    ActiveX, ComObj, ShlObj, GikoUtil;
+
 {$R *.dfm}
 
 procedure TUpdateCheckForm.UpdateButtonClick(Sender: TObject);
+begin
+    CheckUpdate(false);
+end;
+//! \83A\83b\83v\83f\81[\83g\91Î\8fÛ\8am\94F
+procedure TUpdateCheckForm.CheckUpdate(nightbuild :Boolean);
 const
        CHECK_URL = 'http://gikonavi.sourceforge.jp/updater/latest.txt';
 var
     value : string;
        ResStream: TMemoryStream;
     downResult, current, newest: TStringList;
+    newgiko: Boolean;
 begin
     ResultMemo.Lines.Clear;
     Screen.Cursor := crHourGlass;
@@ -70,17 +79,34 @@ begin
                     value := GikoSys.GzipDecompress(ResStream,
                             IdHTTP.Response.ContentEncoding);
                     downResult.Text := value;
-                    newest.Text := MojuUtils.CustomStringReplace(downResult.Values[ 'version' ],
+                    if (nightbuild) then  begin
+                        ResultMemo.Lines.Add('\8dÅ\90V\82Ìnight build\82Í\81A' + downResult.Values[ 'n_version' ]);
+                        newest.Text := MojuUtils.CustomStringReplace(downResult.Values[ 'n_version' ],
                                         '.', #10, false);
+                    end else begin
+                        ResultMemo.Lines.Add('\8dÅ\90V\82Ì\83M\83R\83i\83r\82Í\81A' +  downResult.Values[ 'version' ]);
+                        newest.Text := MojuUtils.CustomStringReplace(downResult.Values[ 'version' ],
+                                        '.', #10, false);
+                    end;
                     current.Text := MojuUtils.CustomStringReplace(GikoSys.Version,
                                         '.', #10, false);
                     if newest.Count >= 2 then begin
-                        if ( StrToInt(current[1]) < StrToInt(newest[1]) ) or
-                           ( (StrToInt(current[1]) = StrToInt(newest[1]))) and
-                           ((StrToInt(current[2]) < StrToInt(newest[2])) ) then begin
-                            ResultMemo.Lines.Add('\90V\82µ\82¢\83M\83R\83i\83r\82ª\82 \82è\82Ü\82·\81B\83_\83E\83\93\83\8d\81[\83h\82ð\8aJ\8en\82µ\82Ü\82·\81B' + downResult.Values[ 'url' ]);
+                        newgiko := false;
+                        // night build\82Í\81A\83r\83\8b\83h\94Ô\8d\86\82¾\82¯\82Å\94»\92è\82·\82é
+                        if (nightbuild) then begin
+                            newgiko := StrToInt(current[3]) < StrToInt(newest[3]);
+                        end else begin
+                            newgiko := ( StrToInt(current[1]) < StrToInt(newest[1]) ) or
+                                        ( (StrToInt(current[1]) = StrToInt(newest[1]))) and
+                                            ((StrToInt(current[2]) < StrToInt(newest[2])) );
+                        end;
+                        if (newgiko) then begin
+                            if GikoUtil.MsgBox(Handle, '\90V\82µ\82¢\83M\83R\83i\83r\82ª\82 \82è\82Ü\82·\81B\83_\83E\83\93\83\8d\81[\83h\82µ\82Ü\82·\82©\81H', '\8dX\90V\8am\94F',
+                                MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) = ID_YES then begin
 
-                            DonwloadUpdate(Trim(downResult.Values[ 'url' ]));
+                                ResultMemo.Lines.Add('\90V\82µ\82¢\83M\83R\83i\83r\82ª\82 \82è\82Ü\82·\81B\83_\83E\83\93\83\8d\81[\83h\82ð\8aJ\8en\82µ\82Ü\82·\81B' + downResult.Values[ 'url' ]);
+                                DonwloadUpdate(Trim(downResult.Values[ 'url' ]));
+                            end;
                         end else begin
                             ResultMemo.Lines.Add('\8d¡\82Ì\83M\83R\83i\83r\82ª\8dÅ\90V\82Å\82·\81B');
                         end;
@@ -203,4 +229,12 @@ begin
     ResultMemo.Lines.Clear;
 end;
 
+procedure TUpdateCheckForm.NightBuildCheckButtonClick(Sender: TObject);
+begin
+    if GikoUtil.MsgBox(Handle, '\90³\8e®\83\8a\83\8a\81[\83X\94Å\82Å\82Í\82 \82è\82Ü\82¹\82ñ\82ª\82æ\82ë\82µ\82¢\82Å\82·\82©\81H', '\8dX\90V\8am\94F',
+        MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) = ID_YES then begin
+        CheckUpdate(true);
+    end;
+end;
+
 end.