/**************************************************************************** * languagefile updater * for USB Loader GX *giantpune* ***************************************************************************/ #include #include #include #include #include "UpdateLanguage.h" #include "listfiles.h" #include "menu.h" #include "network/networkops.h" #include "network/http.h" int updateLanguageFiles() { char languageFiles[50][MAXLANGUAGEFILES]; //get all the files in the language path int countfiles = GetAllDirFiles( Settings.languagefiles_path ); //give up now if we didn't find any if ( !countfiles ) return -2; //now from the files we got, get only the .lang files for ( int cnt = 0; cnt < countfiles; cnt++ ) { char filename[64]; strlcpy( filename, GetFileName( cnt ), sizeof( filename ) ); if ( strcasestr( filename, ".lang" ) ) { strcpy( languageFiles[cnt], filename ); } } subfoldercreate( Settings.languagefiles_path ); //we assume that the network will already be init by another function // ( that has gui eletents in it because this one doesn't) int done = 0, j = 0; if ( IsNetworkInit() ) { //build the URL, save path, and download each file and save it while ( j < countfiles ) { char savepath[150]; char codeurl[200]; snprintf( codeurl, sizeof( codeurl ), "http://usbloader-gui.googlecode.com/svn/trunk/Languages/%s", languageFiles[j] ); snprintf( savepath, sizeof( savepath ), "%s%s", Settings.languagefiles_path, languageFiles[j] ); struct block file = downloadfile( codeurl ); if ( file.data != NULL ) { FILE * pfile; pfile = fopen( savepath, "wb" ); if ( pfile != NULL ) { fwrite( file.data, 1, file.size, pfile ); fclose( pfile ); free( file.data ); done++; } } j++; } } //if there was no network init else return -1; // return the number of files we updated return done; }