2021-08-29 14:18:45 +02:00
|
|
|
#include <hex/api/content_registry.hpp>
|
2021-01-22 18:01:39 +01:00
|
|
|
|
2021-09-25 16:24:08 +02:00
|
|
|
#include <hex/helpers/net.hpp>
|
2021-08-29 22:15:18 +02:00
|
|
|
|
2022-04-17 16:57:30 +02:00
|
|
|
#include <pl/token.hpp>
|
|
|
|
#include <pl/log_console.hpp>
|
|
|
|
#include <pl/evaluator.hpp>
|
|
|
|
#include <pl/patterns/pattern.hpp>
|
2021-01-22 18:01:39 +01:00
|
|
|
|
|
|
|
namespace hex::plugin::builtin {
|
|
|
|
|
|
|
|
void registerPatternLanguageFunctions() {
|
2022-04-17 16:57:30 +02:00
|
|
|
using namespace pl;
|
|
|
|
using FunctionParameterCount = pl::api::FunctionParameterCount;
|
2021-01-22 18:01:39 +01:00
|
|
|
|
2022-04-17 16:57:30 +02:00
|
|
|
api::Namespace nsStdHttp = { "builtin", "std", "http" };
|
2021-09-25 16:24:08 +02:00
|
|
|
{
|
|
|
|
/* get(url) */
|
2022-04-17 16:57:30 +02:00
|
|
|
ContentRegistry::PatternLanguage::addDangerousFunction(nsStdHttp, "get", FunctionParameterCount::exactly(1), [](Evaluator *, auto params) -> std::optional<Token::Literal> {
|
2021-09-25 16:24:08 +02:00
|
|
|
const auto url = Token::literalToString(params[0], false);
|
|
|
|
|
|
|
|
hex::Net net;
|
|
|
|
return net.getString(url).get().body;
|
2021-12-20 20:40:28 +01:00
|
|
|
});
|
2021-09-25 16:24:08 +02:00
|
|
|
}
|
2021-01-22 18:01:39 +01:00
|
|
|
}
|
2021-09-21 21:29:18 +02:00
|
|
|
}
|