mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Add HTTP API to main menu (#9998)
This commit is contained in:
parent
7ec0e3df35
commit
60bab8b2d7
9 changed files with 289 additions and 112 deletions
|
@ -83,6 +83,24 @@ void ModApiHttp::push_http_fetch_result(lua_State *L, HTTPFetchResult &res, bool
|
|||
setstringfield(L, -1, "data", res.data);
|
||||
}
|
||||
|
||||
// http_api.fetch_sync(HTTPRequest definition)
|
||||
int ModApiHttp::l_http_fetch_sync(lua_State *L)
|
||||
{
|
||||
NO_MAP_LOCK_REQUIRED;
|
||||
|
||||
HTTPFetchRequest req;
|
||||
read_http_fetch_request(L, req);
|
||||
|
||||
infostream << "Mod performs HTTP request with URL " << req.url << std::endl;
|
||||
|
||||
HTTPFetchResult res;
|
||||
httpfetch_sync(req, res);
|
||||
|
||||
push_http_fetch_result(L, res, true);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
// http_api.fetch_async(HTTPRequest definition)
|
||||
int ModApiHttp::l_http_fetch_async(lua_State *L)
|
||||
{
|
||||
|
@ -180,11 +198,35 @@ int ModApiHttp::l_request_http_api(lua_State *L)
|
|||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int ModApiHttp::l_get_http_api(lua_State *L)
|
||||
{
|
||||
NO_MAP_LOCK_REQUIRED;
|
||||
|
||||
lua_newtable(L);
|
||||
HTTP_API(fetch_async);
|
||||
HTTP_API(fetch_async_get);
|
||||
HTTP_API(fetch_sync);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void ModApiHttp::Initialize(lua_State *L, int top)
|
||||
{
|
||||
#if USE_CURL
|
||||
API_FCT(request_http_api);
|
||||
|
||||
bool isMainmenu = false;
|
||||
#ifndef SERVER
|
||||
isMainmenu = ModApiBase::getGuiEngine(L) != nullptr;
|
||||
#endif
|
||||
|
||||
if (isMainmenu) {
|
||||
API_FCT(get_http_api);
|
||||
} else {
|
||||
API_FCT(request_http_api);
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -32,6 +32,9 @@ private:
|
|||
static void read_http_fetch_request(lua_State *L, HTTPFetchRequest &req);
|
||||
static void push_http_fetch_result(lua_State *L, HTTPFetchResult &res, bool completed = true);
|
||||
|
||||
// http_fetch_sync({url=, timeout=, post_data=})
|
||||
static int l_http_fetch_sync(lua_State *L);
|
||||
|
||||
// http_fetch_async({url=, timeout=, post_data=})
|
||||
static int l_http_fetch_async(lua_State *L);
|
||||
|
||||
|
@ -40,6 +43,9 @@ private:
|
|||
|
||||
// request_http_api()
|
||||
static int l_request_http_api(lua_State *L);
|
||||
|
||||
// get_http_api()
|
||||
static int l_get_http_api(lua_State *L);
|
||||
#endif
|
||||
|
||||
public:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue