Enable getting variable values from http action

This commit is contained in:
WarmUpTill
2023-01-15 04:29:58 +01:00
committed by WarmUpTill
parent 334d173dc9
commit 8751c0d296
2 changed files with 15 additions and 5 deletions

View File

@@ -16,9 +16,14 @@ const static std::map<MacroActionHttp::Method, std::string> methods = {
"AdvSceneSwitcher.action.http.type.post"},
};
size_t WriteCB(void *, size_t size, size_t nmemb, std::string *)
size_t DropCB(void *, size_t size, size_t nmemb, std::string *)
{
// Just drop the data
return size * nmemb;
}
size_t WriteCB(void *ptr, size_t size, size_t nmemb, std::string *buffer)
{
buffer->append((char *)ptr, nmemb);
return size * nmemb;
}
@@ -29,10 +34,15 @@ void MacroActionHttp::Get()
switcher->curl.SetOpt(CURLOPT_TIMEOUT_MS, _timeout.seconds * 1000);
std::string response;
switcher->curl.SetOpt(CURLOPT_WRITEFUNCTION, WriteCB);
if (IsReferencedInVars()) {
switcher->curl.SetOpt(CURLOPT_WRITEFUNCTION, WriteCB);
} else {
switcher->curl.SetOpt(CURLOPT_WRITEFUNCTION, DropCB);
}
switcher->curl.SetOpt(CURLOPT_WRITEDATA, &response);
switcher->curl.Perform();
SetVariableValue(response);
}
void MacroActionHttp::Post()

View File

@@ -8,7 +8,7 @@
class MacroActionHttp : public MacroAction {
public:
MacroActionHttp(Macro *m) : MacroAction(m) {}
MacroActionHttp(Macro *m) : MacroAction(m, true) {}
bool PerformAction();
void LogAction() const;
bool Save(obs_data_t *obj) const;