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