mirror of
https://github.com/asdlokj1qpi233/subconverter.git
synced 2026-11-03 02:02:24 +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:
5 files changed
+37
-13
No files matched your search
+7
-11
@@ -1180,7 +1180,7 @@ std::string subconverter(RESPONSE_CALLBACK_ARGS)
|
|||||||
std::string ext_rename = UrlDecode(getUrlArg(argument, "rename"));
|
std::string ext_rename = UrlDecode(getUrlArg(argument, "rename"));
|
||||||
|
|
||||||
/// switches with default value
|
/// 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 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 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");
|
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
|
else
|
||||||
{
|
{
|
||||||
ext.add_emoji = add_emoji;
|
ext.add_emoji = emoji_add.get(add_emoji);
|
||||||
ext.remove_emoji = remove_old_emoji;
|
ext.remove_emoji = emoji_remove.get(remove_old_emoji);
|
||||||
}
|
}
|
||||||
ext.append_proxy_type = append_type.get(append_proxy_type);
|
ext.append_proxy_type = append_type.get(append_proxy_type);
|
||||||
if((target == "clash" || target == "clashr") && clash_script.is_undef())
|
if((target == "clash" || target == "clashr") && clash_script.is_undef())
|
||||||
expand.define(true);
|
expand.define(true);
|
||||||
|
|
||||||
/// read preference from argument
|
/// read preference from argument, assign global var if not in argument
|
||||||
ext.tfo = tfo;
|
ext.tfo.read(tfo).read(tfo_flag);
|
||||||
ext.udp = udp;
|
ext.udp.read(udp).read(udp_flag);
|
||||||
ext.skip_cert_verify = scv;
|
ext.skip_cert_verify.read(scv).read(scv_flag);
|
||||||
/// assign global var if not in argument
|
|
||||||
ext.tfo.define(tfo_flag);
|
|
||||||
ext.udp.define(udp_flag);
|
|
||||||
ext.skip_cert_verify.define(scv_flag);
|
|
||||||
|
|
||||||
ext.sort_flag = sort_flag.get(do_sort);
|
ext.sort_flag = sort_flag.get(do_sort);
|
||||||
use_sort_script.define(sort_script.size() != 0);
|
use_sort_script.define(sort_script.size() != 0);
|
||||||
|
|||||||
+8
-1
@@ -10,7 +10,7 @@
|
|||||||
#include "webget.h"
|
#include "webget.h"
|
||||||
#include "logger.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 bool api_mode, generator_mode, cfw_child_process, update_ruleset_on_request;
|
||||||
extern int listen_port, max_concurrent_threads, max_pending_connections;
|
extern int listen_port, max_concurrent_threads, max_pending_connections;
|
||||||
extern string_array rulesets;
|
extern string_array rulesets;
|
||||||
@@ -134,6 +134,13 @@ int main(int argc, char *argv[])
|
|||||||
refreshRulesets(rulesets, ruleset_content_array);
|
refreshRulesets(rulesets, ruleset_content_array);
|
||||||
generateBase();
|
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)
|
if(generator_mode)
|
||||||
return simpleGenerator();
|
return simpleGenerator();
|
||||||
|
|
||||||
|
|||||||
@@ -1139,3 +1139,17 @@ std::string UTF8ToCodePoint(const std::string &data)
|
|||||||
}
|
}
|
||||||
return ss.str();
|
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;
|
*this = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename T> tribool read(const T &value)
|
||||||
|
{
|
||||||
|
define(value);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
bool get(const bool &def_value = false)
|
bool get(const bool &def_value = false)
|
||||||
{
|
{
|
||||||
if(_M_VALUE == -1)
|
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);
|
void shortDisassemble(int source, unsigned short &num_a, unsigned short &num_b);
|
||||||
std::string UTF8ToCodePoint(const std::string &data);
|
std::string UTF8ToCodePoint(const std::string &data);
|
||||||
std::string GetEnv(const std::string &name);
|
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);
|
std::string fileGet(const std::string &path, bool scope_limit = false);
|
||||||
int fileWrite(const std::string &path, const std::string &content, bool overwrite);
|
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);
|
resolved_id = foldPathString(resolved_id);
|
||||||
|
|
||||||
/* Arrive at the canonical module ID somehow. */
|
/* Arrive at the canonical module ID somehow. */
|
||||||
std::cout<<resolved_id<<std::endl;
|
|
||||||
if(!fileExist(resolved_id))
|
if(!fileExist(resolved_id))
|
||||||
duk_push_undefined(ctx);
|
duk_push_undefined(ctx);
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in new issue
Block a user