Enhancements

Add support for suffix tag in Clash rule provider.
Add request._args variable to templates to read all arguments passed from URL.
Add startsWith/endsWith as template functions.
Add reporting HTTP status code when failed to upload to Gist.
This commit is contained in:
Tindy X committed 2020-05-31 13:55:48 +08:00
1 parent cf58da6204
commit 226c9a4db7
3 files changed
+29 -6

No files matched your search

+20 -1
View File
@@ -29,8 +29,19 @@ int render_template(const std::string &content, const template_args &vars, std::
nlohmann::json data;
for(auto &x : vars.global_vars)
parse_json_pointer(data["global"], x.first, x.second);
std::string all_args;
for(auto &x : vars.request_params)
parse_json_pointer(data["request"], x.first, x.second);
{
all_args += x.first;
if(x.second.size())
{
parse_json_pointer(data["request"], x.first, x.second);
all_args += "=" + x.second;
}
all_args += "&";
}
all_args.erase(all_args.size() - 1);
parse_json_pointer(data["request"], "_args", all_args);
for(auto &x : vars.local_vars)
parse_json_pointer(data["local"], x.first, x.second);
@@ -116,6 +127,14 @@ int render_template(const std::string &content, const template_args &vars, std::
{
return managed_config_prefix + args.at(0)->get<std::string>();
});
m_callbacks.add_callback("startsWith", 2, [](inja::Arguments &args)
{
return startsWith(args.at(0)->get<std::string>(), args.at(1)->get<std::string>());
});
m_callbacks.add_callback("endsWith", 2, [](inja::Arguments &args)
{
return endsWith(args.at(0)->get<std::string>(), args.at(1)->get<std::string>());
});
m_callbacks.add_callback("fetch", 1, template_webGet);
m_callbacks.add_callback("parseHostname", 1, parseHostname);
m_parser_config.include_scope_limit = true;