mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-11-18 09:19:17 +01:00
*Changed to download files under their real filename
*Small change to the download request function, added filename reading
This commit is contained in:
parent
12e42498dc
commit
d3d2055583
File diff suppressed because one or more lines are too long
2
gui.pnps
2
gui.pnps
@ -1 +1 @@
|
|||||||
<pd><ViewState><e p="gui\source\mload" x="false"></e><e p="gui\source\settings" x="false"></e><e p="gui\source\images" x="false"></e><e p="gui\source\prompts" x="true"></e><e p="gui\source\banner" x="false"></e><e p="gui\source\cheats" x="false"></e><e p="gui\source\network" x="true"></e><e p="gui\source\unzip" x="false"></e><e p="gui\source\usbloader" x="true"></e><e p="gui\source\xml" x="false"></e><e p="gui\source\fonts" x="false"></e><e p="gui\source\ramdisc" x="false"></e><e p="gui\source\sounds" x="false"></e><e p="gui\source\wad" x="false"></e><e p="gui" x="true"></e><e p="gui\source\homebrewboot" x="false"></e><e p="gui\source\language" x="false"></e><e p="gui\source" x="true"></e><e p="gui\source\libwbfs" x="false"></e><e p="gui\source\libwiigui" x="true"></e><e p="gui\source\patches" x="false"></e><e p="gui\source\themes" x="false"></e></ViewState></pd>
|
<pd><ViewState><e p="gui\source\mload" x="false"></e><e p="gui\source\settings" x="false"></e><e p="gui\source\images" x="false"></e><e p="gui\source\prompts" x="true"></e><e p="gui\source\banner" x="false"></e><e p="gui\source\cheats" x="false"></e><e p="gui\source\network" x="true"></e><e p="gui\source\unzip" x="false"></e><e p="gui\source\usbloader" x="true"></e><e p="gui\source\xml" x="false"></e><e p="gui\source\fonts" x="false"></e><e p="gui\source\ramdisk" x="false"></e><e p="gui\source\sounds" x="false"></e><e p="gui\source\wad" x="false"></e><e p="gui" x="true"></e><e p="gui\source\homebrewboot" x="false"></e><e p="gui\source\language" x="false"></e><e p="gui\source" x="true"></e><e p="gui\source\libwbfs" x="false"></e><e p="gui\source\libwiigui" x="true"></e><e p="gui\source\patches" x="false"></e><e p="gui\source\themes" x="false"></e></ViewState></pd>
|
@ -99,7 +99,7 @@ bool ShutdownWC24() {
|
|||||||
return onlinefix;
|
return onlinefix;
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 network_request(const char * request) {
|
s32 network_request(const char * request, char * filename) {
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
char *ptr = NULL;
|
char *ptr = NULL;
|
||||||
|
|
||||||
@ -122,6 +122,24 @@ s32 network_request(const char * request) {
|
|||||||
/* HTTP request OK? */
|
/* HTTP request OK? */
|
||||||
if (!strstr(buf, "HTTP/1.1 200 OK"))
|
if (!strstr(buf, "HTTP/1.1 200 OK"))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
if(filename)
|
||||||
|
{
|
||||||
|
/* Get filename */
|
||||||
|
ptr = strstr(buf, "filename=\"");
|
||||||
|
|
||||||
|
if(ptr)
|
||||||
|
{
|
||||||
|
ptr += sizeof("filename=\"")-1;
|
||||||
|
|
||||||
|
for(cnt = 0; ptr[cnt] != '\r' && ptr[cnt] != '\n' && ptr[cnt] != '"'; cnt++)
|
||||||
|
{
|
||||||
|
filename[cnt] = ptr[cnt];
|
||||||
|
filename[cnt+1] = '\0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Retrieve content size */
|
/* Retrieve content size */
|
||||||
ptr = strstr(buf, "Content-Length:");
|
ptr = strstr(buf, "Content-Length:");
|
||||||
if (!ptr)
|
if (!ptr)
|
||||||
@ -156,7 +174,7 @@ s32 network_read(u8 *buf, u32 len) {
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Download request
|
* Download request
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
s32 download_request(const char * url) {
|
s32 download_request(const char * url, char * filename) {
|
||||||
|
|
||||||
//Check if the url starts with "http://", if not it is not considered a valid url
|
//Check if the url starts with "http://", if not it is not considered a valid url
|
||||||
if (strncmp(url, "http://", strlen("http://")) != 0) {
|
if (strncmp(url, "http://", strlen("http://")) != 0) {
|
||||||
@ -190,7 +208,7 @@ s32 download_request(const char * url) {
|
|||||||
char header[strlen(path)+strlen(domain)+strlen(url)+100];
|
char header[strlen(path)+strlen(domain)+strlen(url)+100];
|
||||||
sprintf(header, "GET %s HTTP/1.1\r\nHost: %s\r\nReferer: %s\r\nConnection: close\r\n\r\n", path, domain, url);
|
sprintf(header, "GET %s HTTP/1.1\r\nHost: %s\r\nReferer: %s\r\nConnection: close\r\n\r\n", path, domain, url);
|
||||||
|
|
||||||
s32 filesize = network_request(header);
|
s32 filesize = network_request(header, filename);
|
||||||
|
|
||||||
return filesize;
|
return filesize;
|
||||||
}
|
}
|
||||||
|
@ -15,9 +15,9 @@ bool IsNetworkInit(void);
|
|||||||
char * GetNetworkIP(void);
|
char * GetNetworkIP(void);
|
||||||
char * GetIncommingIP(void);
|
char * GetIncommingIP(void);
|
||||||
bool ShutdownWC24();
|
bool ShutdownWC24();
|
||||||
s32 network_request(const char * request);
|
s32 network_request(const char * request, char * filename);
|
||||||
s32 network_read(u8 *buf, u32 len);
|
s32 network_read(u8 *buf, u32 len);
|
||||||
s32 download_request(const char * url);
|
s32 download_request(const char * url, char * filename = NULL);
|
||||||
void CloseConnection();
|
void CloseConnection();
|
||||||
int CheckUpdate();
|
int CheckUpdate();
|
||||||
|
|
||||||
|
@ -39,7 +39,10 @@ bool DownloadTheme(const char *url, const char *title)
|
|||||||
if(!url)
|
if(!url)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
int filesize = download_request(url);
|
char filename[255];
|
||||||
|
memset(filename, 0, sizeof(filename));
|
||||||
|
|
||||||
|
int filesize = download_request(url, (char *) &filename);
|
||||||
|
|
||||||
if(filesize <= 0)
|
if(filesize <= 0)
|
||||||
{
|
{
|
||||||
@ -54,7 +57,7 @@ bool DownloadTheme(const char *url, const char *title)
|
|||||||
|
|
||||||
subfoldercreate(path);
|
subfoldercreate(path);
|
||||||
|
|
||||||
snprintf(filepath, sizeof(filepath), "%s/%s.zip", path, title);
|
snprintf(filepath, sizeof(filepath), "%s/%s", path, filename);
|
||||||
|
|
||||||
FILE *file = fopen(filepath, "wb");
|
FILE *file = fopen(filepath, "wb");
|
||||||
if(!file)
|
if(!file)
|
||||||
@ -74,7 +77,7 @@ bool DownloadTheme(const char *url, const char *title)
|
|||||||
if((u32) blocksize > filesize-done)
|
if((u32) blocksize > filesize-done)
|
||||||
blocksize = filesize-done;
|
blocksize = filesize-done;
|
||||||
|
|
||||||
ShowProgress(tr("Downloading file"), 0, (char*) title, done, filesize, true);
|
ShowProgress(tr("Downloading file"), 0, (char*) filename, done, filesize, true);
|
||||||
|
|
||||||
int ret = network_read(buffer, blocksize);
|
int ret = network_read(buffer, blocksize);
|
||||||
if(ret < 0)
|
if(ret < 0)
|
||||||
@ -436,7 +439,7 @@ int Theme_Downloader()
|
|||||||
w.Append(&HomeBtn);
|
w.Append(&HomeBtn);
|
||||||
ResumeGui();
|
ResumeGui();
|
||||||
|
|
||||||
ShowProgress(tr("Downloading Page List:"), 0, (char *) tr("Please wait..."), 0, pagesize);
|
ShowProgress(tr("Downloading Page List:"), "", (char *) tr("Please wait..."), 0, pagesize);
|
||||||
|
|
||||||
snprintf(url, sizeof(url), "%sthemes.php?creator=&sort=1&page=%i", THEME_LINK, currentpage);
|
snprintf(url, sizeof(url), "%sthemes.php?creator=&sort=1&page=%i", THEME_LINK, currentpage);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user