From 9edc80d5094d54a0fc88d393fc65b674eda59f79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=AD=90=20B3none?= Date: Wed, 9 Oct 2019 20:53:12 +0100 Subject: [PATCH] Update the latest version of the plugin --- demostf.sp | 99 +++++++++++++++++++++++++++--------------------------- 1 file changed, 50 insertions(+), 49 deletions(-) diff --git a/demostf.sp b/demostf.sp index 6468bf6..000b19b 100644 --- a/demostf.sp +++ b/demostf.sp @@ -1,25 +1,27 @@ -#pragma semicolon 1 #include #include -public Plugin:myinfo = +#pragma semicolon 1 +#pragma newdecls required + +public Plugin myinfo = { name = "demos.tf uploader", - author = "Icewind", + author = "Icewind, B3none", description = "Auto-upload match stv to demos.tf", - version = "0.2", + version = "0.3", url = "https://demos.tf" }; -new CURL_Default_opt[][2] = { - {_:CURLOPT_NOSIGNAL,1}, - {_:CURLOPT_NOPROGRESS,1}, - {_:CURLOPT_TIMEOUT,120}, - {_:CURLOPT_CONNECTTIMEOUT,120}, - {_:CURLOPT_USE_SSL,CURLUSESSL_TRY}, - {_:CURLOPT_SSL_VERIFYPEER,0}, - {_:CURLOPT_SSL_VERIFYHOST,0}, - {_:CURLOPT_VERBOSE,0} +CURL_Default_opt[][2] = { + {view_as(CURLOPT_NOSIGNAL), 1}, + {view_as(CURLOPT_NOPROGRESS), 1}, + {view_as(CURLOPT_TIMEOUT), 120}, + {view_as(CURLOPT_CONNECTTIMEOUT), 120}, + {view_as(CURLOPT_USE_SSL),CURLUSESSL_TRY}, + {view_as(CURLOPT_SSL_VERIFYPEER), 0}, + {view_as(CURLOPT_SSL_VERIFYHOST), 0}, + {view_as(CURLOPT_VERBOSE), 0} }; /** @@ -28,26 +30,26 @@ new CURL_Default_opt[][2] = { * @param buffer String to convert * @noreturn */ -public CStrToLower(String:buffer[]) { - new len = strlen(buffer); - for(new i = 0; i < len; i++) { +public void CStrToLower(char[] buffer) { + int len = strlen(buffer); + for (int i = 0; i < len; i++) { buffer[i] = CharToLower(buffer[i]); } } #define CURL_DEFAULT_OPT(%1) curl_easy_setopt_int_array(%1, CURL_Default_opt, sizeof(CURL_Default_opt)) -new String:g_sDemoName[256] = ""; -new String:g_sLastDemoName[256] = ""; +char g_sDemoName[256] = ""; +char g_sLastDemoName[256] = ""; -new Handle:g_hCvarAPIKey = INVALID_HANDLE; -new Handle:g_hCvarUrl = INVALID_HANDLE; -new Handle:output_file = INVALID_HANDLE; -new Handle:postForm = INVALID_HANDLE; -new Handle:g_hCvarRedTeamName = INVALID_HANDLE; -new Handle:g_hCvarBlueTeamName = INVALID_HANDLE; +Handle g_hCvarAPIKey = null; +Handle g_hCvarUrl = null; +Handle output_file = null; +Handle postForm = null; +Handle g_hCvarRedTeamName = null; +Handle g_hCvarBlueTeamName = null; -public OnPluginStart() +public void OnPluginStart() { g_hCvarAPIKey = CreateConVar("sm_demostf_apikey", "", "API key for demos.tf", FCVAR_PROTECTED); g_hCvarUrl = CreateConVar("sm_demostf_url", "https://demos.tf", "demos.tf url", FCVAR_PROTECTED); @@ -58,48 +60,51 @@ public OnPluginStart() RegServerCmd("tv_stoprecord", Command_StopRecord); } -public Action:Command_StartRecord(args) +public Action Command_StartRecord(int args) { if (strlen(g_sDemoName) == 0) { GetCmdArgString(g_sDemoName, sizeof(g_sDemoName)); StripQuotes(g_sDemoName); CStrToLower(g_sDemoName); } + return Plugin_Continue; } -public Action:Command_StopRecord(args) +public Action Command_StopRecord(int args) { TrimString(g_sDemoName); + if (strlen(g_sDemoName) != 0) { PrintToChatAll("[demos.tf]: Demo recording completed"); g_sLastDemoName = g_sDemoName; g_sDemoName = ""; CreateTimer(3.0, StartDemoUpload); } + return Plugin_Continue; } -public Action:StartDemoUpload(Handle:timer) +public Action StartDemoUpload(Handle timer) { - decl String:fullPath[128]; + char fullPath[128]; Format(fullPath, sizeof(fullPath), "%s.dem", g_sLastDemoName); UploadDemo(fullPath); } -UploadDemo(const String:fullPath[]) +void UploadDemo(const char[] fullPath) { - decl String:APIKey[128]; + char APIKey[128]; GetConVarString(g_hCvarAPIKey, APIKey, sizeof(APIKey)); - decl String:BaseUrl[64]; + char BaseUrl[64]; GetConVarString(g_hCvarUrl, BaseUrl, sizeof(BaseUrl)); - new String:Map[64]; + char Map[64]; GetCurrentMap(Map, sizeof(Map)); PrintToChatAll("[demos.tf]: Uploading demo %s", fullPath); - new Handle:curl = curl_easy_init(); + Handle curl = curl_easy_init(); CURL_DEFAULT_OPT(curl); - decl String:bluname[128]; - decl String:redname[128]; + char bluname[128]; + char redname[128]; GetConVarString(g_hCvarRedTeamName, redname, sizeof(redname)); GetConVarString(g_hCvarBlueTeamName, bluname, sizeof(bluname)); @@ -113,37 +118,33 @@ UploadDemo(const String:fullPath[]) output_file = curl_OpenFile("output_demo.json", "w"); curl_easy_setopt_handle(curl, CURLOPT_WRITEDATA, output_file); - decl String:fullUrl[128]; + char fullUrl[128]; Format(fullUrl, sizeof(fullUrl), "%s/upload", BaseUrl); curl_easy_setopt_string(curl, CURLOPT_URL, fullUrl); curl_easy_perform_thread(curl, onComplete); } -public onComplete(Handle:hndl, CURLcode:code) +public bool onComplete(Handle hndl, CURLcode code) { - if(code != CURLE_OK) - { - new String:error_buffer[256]; + if (code != CURLE_OK) { + char error_buffer[256]; curl_easy_strerror(code, error_buffer, sizeof(error_buffer)); CloseHandle(output_file); CloseHandle(hndl); PrintToChatAll("cURLCode error: %d", code); - } - else - { + } else { CloseHandle(output_file); CloseHandle(hndl); ShowResponse(); } + CloseHandle(postForm); - return; } -public ShowResponse() +public void ShowResponse() { - new Handle:resultFile = OpenFile("output_demo.json", "r"); - new String:output[512]; + Handle resultFile = OpenFile("output_demo.json", "r"); + char output[512]; ReadFileString(resultFile, output, sizeof(output)); PrintToChatAll("[demos.tf]: %s", output); - return; }