Does anyone know how I can convert this "[[["Hola","hello",null,null,10]],null,"en",null,null,null,null,[]]" to "Hola" using #include <ripext> ?
Code:
Handle CreateRequest(char[] input, char[] target)
{
Handle request = SteamWorks_CreateHTTPRequest(k_EHTTPMethodGET, "http://translate.googleapis.com/translate_a/single");
SteamWorks_SetHTTPRequestGetOrPostParameter(request, "client", "gtx");
SteamWorks_SetHTTPRequestGetOrPostParameter(request, "dt", "t");
SteamWorks_SetHTTPRequestGetOrPostParameter(request, "sl", "auto");//from en default, so you might wanna add this param too to modify.
SteamWorks_SetHTTPRequestGetOrPostParameter(request, "tl", target);//to desired.. target language
SteamWorks_SetHTTPRequestGetOrPostParameter(request, "q", input);//input text
//final url would be something like this https://translate.googleapis.com/tra...&tl=es&q=hello
//response example [[["Hola","hello",null,null,10]],null,"en",null,null,null,null,[]] so we need to parse json on Callback_OnHTTPResponse > JSON.parse(response)[0][0][0] = Hola
Handle datapack = CreateDataPack();
WritePackString(datapack, target);
WritePackString(datapack, input);
SteamWorks_SetHTTPRequestContextValue(request, datapack);
SteamWorks_SetHTTPCallbacks(request, Callback_OnHTTPResponse);
return request;
}
public int Callback_OnHTTPResponse(Handle request, bool bFailure, bool bRequestSuccessful, EHTTPStatusCode eStatusCode, Handle datapack)
{
if (!bRequestSuccessful || eStatusCode != k_EHTTPStatusCode200OK)
{
CloseHandle(datapack);
return;
}
int iBufferSize;
SteamWorks_GetHTTPResponseBodySize(request, iBufferSize);
char[] result = new char[iBufferSize];
SteamWorks_GetHTTPResponseBodyData(request, result, iBufferSize);
delete request;
char target[3], input[255];
ResetPack(datapack);
ReadPackString(datapack, target, 3);
ReadPackString(datapack, input, 255);
CloseHandle(datapack);
PrintToServer(result); // = [[["Hola","hello",null,null,10]],null,"en",null,null,null,null,[]]
}