Files
smupdater-godtony/scripting/updater/download_steamtools.sp
T

52 lines
1.4 KiB
SourcePawn

/* Extension Helper - SteamTools */
void Download_SteamTools(const char[] url, const char[] dest)
{
char sURL[MAX_URL_LENGTH];
PrefixURL(sURL, sizeof(sURL), url);
Handle hDLPack = CreateDataPack();
WritePackString(hDLPack, dest);
HTTPRequestHandle hRequest = Steam_CreateHTTPRequest(HTTPMethod_GET, sURL);
Steam_SetHTTPRequestHeaderValue(hRequest, "Pragma", "no-cache");
Steam_SetHTTPRequestHeaderValue(hRequest, "Cache-Control", "no-cache");
Steam_SendHTTPRequest(hRequest, OnSteamHTTPComplete, hDLPack);
}
public void OnSteamHTTPComplete(HTTPRequestHandle HTTPRequest, bool requestSuccessful, HTTPStatusCode statusCode, any hDLPack)
{
char sDest[PLATFORM_MAX_PATH];
ResetPack(hDLPack);
ReadPackString(hDLPack, sDest, sizeof(sDest));
CloseHandle(hDLPack);
if (requestSuccessful && statusCode == HTTPStatusCode_OK)
{
Steam_WriteHTTPResponseBody(HTTPRequest, sDest);
DownloadEnded(true);
}
else
{
char sError[256];
FormatEx(sError, sizeof(sError), "SteamTools error (status code %i). Request successful: %s", view_as<int>(statusCode), requestSuccessful ? "True" : "False");
DownloadEnded(false, sError);
}
Steam_ReleaseHTTPRequest(HTTPRequest);
}
/* Keep track of SteamTools load state. */
bool g_bSteamLoaded;
public int Steam_FullyLoaded()
{
g_bSteamLoaded = true;
}
public int Steam_Shutdown()
{
g_bSteamLoaded = false;
}