Mercurial > mercurial > hgweb_rsearcher.cgi
comparison src/main.cpp @ 11:799b6008db8e
auto-upgrade.
| author | pyon@macmini |
|---|---|
| date | Mon, 12 Nov 2018 19:35:50 +0900 |
| parents | 36811fd22bd2 |
| children | f5ffc34f045a |
comparison
equal
deleted
inserted
replaced
| 10:36811fd22bd2 | 11:799b6008db8e |
|---|---|
| 1 // Filename : main.cpp | 1 // Filename : main.cpp |
| 2 // Last Change: 2018-11-01 木 11:39:22. | 2 // Last Change: 2018-11-09 金 11:54:20. |
| 3 // | 3 // |
| 4 | 4 |
| 5 #include <wx/socket.h> | 5 #include <wx/socket.h> |
| 6 #include <wx/sstream.h> | |
| 7 #include <wx/protocol/http.h> | |
| 6 #include "id.h" | 8 #include "id.h" |
| 7 #include "main.h" | 9 #include "main.h" |
| 8 #include "auth.h" | 10 #include "auth.h" |
| 11 #include "net.h" | |
| 9 #include "rsearcher.h" | 12 #include "rsearcher.h" |
| 10 | 13 |
| 11 IMPLEMENT_APP( MyApp ) | 14 IMPLEMENT_APP( MyApp ) |
| 12 | 15 |
| 13 IMPLEMENT_CLASS( MyApp, wxApp ) | 16 IMPLEMENT_CLASS( MyApp, wxApp ) |
| 21 } | 24 } |
| 22 | 25 |
| 23 bool MyApp::OnInit() | 26 bool MyApp::OnInit() |
| 24 { | 27 { |
| 25 if ( !wxApp::OnInit() ) return false; | 28 if ( !wxApp::OnInit() ) return false; |
| 29 | |
| 30 InitSetting(); | |
| 31 | |
| 32 // Check New-Version | |
| 33 wxString newver = GetVersion(); | |
| 34 if ( newver.Cmp( RSVER ) == 1 ) { // 1.9 -> 1.91 -> 1.92 ... | |
| 35 wxString sv = wxString::Format( wxT( "%s:%d" ), m_serveraddr, m_serverport ); | |
| 36 | |
| 37 wxArrayString args; | |
| 38 args.Add( wxT( "upgrade.bat" ) ); | |
| 39 args.Add( sv ); | |
| 40 args.Add( RSVER ); | |
| 41 args.Add( newver ); | |
| 42 | |
| 43 wxExecute( wxJoin( args, ' ', '\\' ) ); | |
| 44 return false; | |
| 45 } | |
| 26 | 46 |
| 27 wxImage::AddHandler( new wxJPEGHandler ); | 47 wxImage::AddHandler( new wxJPEGHandler ); |
| 28 wxImage::AddHandler( new wxPNGHandler ); | 48 wxImage::AddHandler( new wxPNGHandler ); |
| 29 wxFileSystem::AddHandler( new wxZipFSHandler ); | 49 wxFileSystem::AddHandler( new wxZipFSHandler ); |
| 30 InitSetting(); | |
| 31 | 50 |
| 32 // Main Window | 51 // Main Window |
| 33 MainFrame *mainframe = new MainFrame( NULL, ID_MAIN, wxEmptyString, wxPoint( rect.x, rect.y ), rect.GetSize(), wxDEFAULT_FRAME_STYLE ); | 52 MainFrame *mainframe = new MainFrame( NULL, ID_MAIN, wxEmptyString, wxPoint( rect.x, rect.y ), rect.GetSize(), wxDEFAULT_FRAME_STYLE ); |
| 34 mainframe->SetServer( m_serveraddr, m_serverport ); | 53 mainframe->SetServer( m_serveraddr, m_serverport ); |
| 35 mainframe->InDevelop( true ); | 54 mainframe->InDevelop( true ); |
| 173 wxMilliSleep( ms ); | 192 wxMilliSleep( ms ); |
| 174 } | 193 } |
| 175 delete fs; | 194 delete fs; |
| 176 } | 195 } |
| 177 | 196 |
| 197 wxString MyApp::GetVersion( void ) | |
| 198 { | |
| 199 wxHTTP get; | |
| 200 get.SetTimeout( 30 ); | |
| 201 get.SetFlags( wxSOCKET_WAITALL|wxSOCKET_BLOCK ); | |
| 202 while ( !get.Connect( m_serveraddr, m_serverport ) ) | |
| 203 wxSleep( 1 ); | |
| 204 | |
| 205 wxString version; | |
| 206 wxString url = wxT( "/release/version" ); | |
| 207 wxInputStream *http_istream = get.GetInputStream( url ); | |
| 208 if ( get.GetError() == wxPROTO_NOERR ) { | |
| 209 wxStringOutputStream out_stream( &version ); | |
| 210 http_istream->Read( out_stream ); | |
| 211 } | |
| 212 | |
| 213 wxDELETE( http_istream ); | |
| 214 get.Close(); | |
| 215 | |
| 216 return version; | |
| 217 } | |
| 218 | |
| 178 void MyApp::RemoveFile( wxString pattern ) | 219 void MyApp::RemoveFile( wxString pattern ) |
| 179 { | 220 { |
| 180 wxString file = wxFindFirstFile( pattern ); | 221 wxString file = wxFindFirstFile( pattern ); |
| 181 while ( !file.empty() ) { | 222 while ( !file.empty() ) { |
| 182 wxRemoveFile( file ); | 223 wxRemoveFile( file ); |
