mirror of
https://github.com/asdlokj1qpi233/subconverter.git
synced 2025-10-28 12:22:37 +00:00
Enhancements
Add independent option for adding/removing Emojis in URL argument. Add support for reading API_MODE/API_TOKEN/MANAGED_PREFIX from environment variables. Optimize codes.
This commit is contained in:
@@ -1180,7 +1180,7 @@ std::string subconverter(RESPONSE_CALLBACK_ARGS)
|
||||
std::string ext_rename = UrlDecode(getUrlArg(argument, "rename"));
|
||||
|
||||
/// switches with default value
|
||||
tribool upload = getUrlArg(argument, "upload"), emoji = getUrlArg(argument, "emoji");
|
||||
tribool upload = getUrlArg(argument, "upload"), emoji = getUrlArg(argument, "emoji"), emoji_add = getUrlArg(argument, "add_emoji"), emoji_remove = getUrlArg(argument, "remove_emoji");
|
||||
tribool append_type = getUrlArg(argument, "append_type"), tfo = getUrlArg(argument, "tfo"), udp = getUrlArg(argument, "udp"), nodelist = getUrlArg(argument, "list");
|
||||
tribool sort_flag = getUrlArg(argument, "sort"), use_sort_script = getUrlArg(argument, "sort_script");
|
||||
tribool clash_new_field = getUrlArg(argument, "new_name"), clash_script = getUrlArg(argument, "script"), add_insert = getUrlArg(argument, "insert");
|
||||
@@ -1251,21 +1251,17 @@ std::string subconverter(RESPONSE_CALLBACK_ARGS)
|
||||
}
|
||||
else
|
||||
{
|
||||
ext.add_emoji = add_emoji;
|
||||
ext.remove_emoji = remove_old_emoji;
|
||||
ext.add_emoji = emoji_add.get(add_emoji);
|
||||
ext.remove_emoji = emoji_remove.get(remove_old_emoji);
|
||||
}
|
||||
ext.append_proxy_type = append_type.get(append_proxy_type);
|
||||
if((target == "clash" || target == "clashr") && clash_script.is_undef())
|
||||
expand.define(true);
|
||||
|
||||
/// read preference from argument
|
||||
ext.tfo = tfo;
|
||||
ext.udp = udp;
|
||||
ext.skip_cert_verify = scv;
|
||||
/// assign global var if not in argument
|
||||
ext.tfo.define(tfo_flag);
|
||||
ext.udp.define(udp_flag);
|
||||
ext.skip_cert_verify.define(scv_flag);
|
||||
/// read preference from argument, assign global var if not in argument
|
||||
ext.tfo.read(tfo).read(tfo_flag);
|
||||
ext.udp.read(udp).read(udp_flag);
|
||||
ext.skip_cert_verify.read(scv).read(scv_flag);
|
||||
|
||||
ext.sort_flag = sort_flag.get(do_sort);
|
||||
use_sort_script.define(sort_script.size() != 0);
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#include "webget.h"
|
||||
#include "logger.h"
|
||||
|
||||
extern std::string pref_path, access_token, listen_address, gen_profile;
|
||||
extern std::string pref_path, access_token, listen_address, gen_profile, managed_config_prefix;
|
||||
extern bool api_mode, generator_mode, cfw_child_process, update_ruleset_on_request;
|
||||
extern int listen_port, max_concurrent_threads, max_pending_connections;
|
||||
extern string_array rulesets;
|
||||
@@ -134,6 +134,13 @@ int main(int argc, char *argv[])
|
||||
refreshRulesets(rulesets, ruleset_content_array);
|
||||
generateBase();
|
||||
|
||||
std::string env_api_mode = GetEnv("API_MODE"), env_managed_prefix = GetEnv("MANAGED_PREFIX"), env_token = GetEnv("API_TOKEN");
|
||||
api_mode = tribool().read(toLower(env_api_mode)).get(api_mode);
|
||||
if(env_managed_prefix.size())
|
||||
managed_config_prefix = env_managed_prefix;
|
||||
if(env_token.size())
|
||||
access_token = env_token;
|
||||
|
||||
if(generator_mode)
|
||||
return simpleGenerator();
|
||||
|
||||
|
||||
14
src/misc.cpp
14
src/misc.cpp
@@ -1139,3 +1139,17 @@ std::string UTF8ToCodePoint(const std::string &data)
|
||||
}
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
std::string toLower(const std::string &str)
|
||||
{
|
||||
std::string result;
|
||||
std::transform(str.begin(), str.end(), std::back_inserter(result), [](unsigned char c) { return std::tolower(c); });
|
||||
return result;
|
||||
}
|
||||
|
||||
std::string toUpper(const std::string &str)
|
||||
{
|
||||
std::string result;
|
||||
std::transform(str.begin(), str.end(), std::back_inserter(result), [](unsigned char c) { return std::toupper(c); });
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -72,6 +72,12 @@ public:
|
||||
*this = value;
|
||||
}
|
||||
|
||||
template <typename T> tribool read(const T &value)
|
||||
{
|
||||
define(value);
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool get(const bool &def_value = false)
|
||||
{
|
||||
if(_M_VALUE == -1)
|
||||
@@ -144,6 +150,8 @@ int shortAssemble(unsigned short num_a, unsigned short num_b);
|
||||
void shortDisassemble(int source, unsigned short &num_a, unsigned short &num_b);
|
||||
std::string UTF8ToCodePoint(const std::string &data);
|
||||
std::string GetEnv(const std::string &name);
|
||||
std::string toLower(const std::string &str);
|
||||
std::string toUpper(const std::string &str);
|
||||
|
||||
std::string fileGet(const std::string &path, bool scope_limit = false);
|
||||
int fileWrite(const std::string &path, const std::string &content, bool overwrite);
|
||||
|
||||
@@ -59,7 +59,6 @@ duk_ret_t cb_resolve_module(duk_context *ctx)
|
||||
resolved_id = foldPathString(resolved_id);
|
||||
|
||||
/* Arrive at the canonical module ID somehow. */
|
||||
std::cout<<resolved_id<<std::endl;
|
||||
if(!fileExist(resolved_id))
|
||||
duk_push_undefined(ctx);
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user