/** \file * Game Develop * 2008-2012 Florian Rival (Florian.Rival@gmail.com) */ #include "CheckMAJ.h" #include #include #include "wx/msgdlg.h" #include #include #include #include #include #include #include #include #include "SFML/Network.hpp" #include "GDL/tinyxml/tinyxml.h" #include "GDL/VersionWrapper.h" using namespace std; //////////////////////////////////////////////////////////// /// Téléchargement de news.txt /// /// Télécharge news.txt depuis compilgames.net. /// Il faut ensuite procéder à l'analyse de news.txt //////////////////////////////////////////////////////////// void CheckMAJ::DownloadInformation() { wxHTTP http; wxURL *url = new wxURL(_T("http://www.compilgames.net/news.txt")); url->GetProtocol().SetDefaultTimeout(5); wxInputStream * input; input = url->GetInputStream(); if (input!=NULL) { wxFileOutputStream out(wxFileName::GetTempDir()+"/GDTemporaries/"+"news.txt"); if (out.Ok()) { input->Read(out); } else { wxLogWarning( _( "Error while loading the update file.\nCheck :\n-Your internet connection\n-Your firewall-If you can manually access our site.\n\nYou can disable Check for updates in the preferences of Game Develop." ) ); } delete input; } else { wxLogWarning( _( "Unable to connect to the server so as to check for updates.\nCheck :\n-Your internet connection\n-Your firewall-If you can manually access our site.\n\nYou can disable Check for updates in the preferences of Game Develop." ) ); return; } TiXmlDocument doc( wxFileName::GetTempDir()+"/GDTemporaries/"+"news.txt" ); if ( !doc.LoadFile() ) { wxLogWarning( _( "Error while loading the update file.\nCheck :\n-Your internet connection\n-Your firewall-If you can manually access our site.\n\nYou can disable Check for updates in the preferences of Game Develop.") ); return; } TiXmlHandle hdl( &doc ); TiXmlElement *elem = hdl.FirstChildElement().FirstChildElement().Element(); //Comparaison de versions newMajor = 0; elem->QueryIntAttribute( "Major", &newMajor ); newMinor = 0; elem->QueryIntAttribute( "Minor", &newMinor ); newBuild = 0; elem->QueryIntAttribute( "Build", &newBuild ); newRevision = 0; elem->QueryIntAttribute( "Revision", &newRevision ); if ( newMajor > GDLVersionWrapper::Major() || (newMajor == GDLVersionWrapper::Major() && newMinor > GDLVersionWrapper::Minor()) || (newMajor == GDLVersionWrapper::Major() && newMinor == GDLVersionWrapper::Minor() && newBuild > GDLVersionWrapper::Build()) || (newMajor == GDLVersionWrapper::Major() && newMinor == GDLVersionWrapper::Minor() && newBuild == GDLVersionWrapper::Build() && newRevision > GDLVersionWrapper::Revision() ) ) { newVersionAvailable = true; } else newVersionAvailable = false; elem = hdl.FirstChildElement().FirstChildElement("Info").Element(); if ( elem->Attribute( "Info") != NULL ) info = elem->Attribute( "Info"); if ( elem->Attribute( "Lien") != NULL ) link = elem->Attribute( "Lien"); return; }