Subconverter Versions Save

Utility to convert between various subscription format

v0.9.0

1 month ago

Bugs fixed:

  • Fix wrong flag identification When converting Nigeria node (#654)
  • Fix request arguments not properly handled (#661)
  • Fix a typo which cause the server to hang
  • Fix bad conversion of DOMAIN-SUFFIX rules when generating Surge DOMAIN-SET (#667)
  • Fix proxy type missing when append_proxy_type is enabled for Quantumult X configs
  • Fix crash if name argument is missing in getProfile interface
  • Fix bad webGet retry logic
  • Fix implementation of str_icase_map for HTTP headers
  • Fix missing classical rulesets when exporting Clash configs with expand=false (#715)
  • Fix implementation of getting random string (#726)
  • Do not add check-interval and tolerance to SSID groups in QuanX configs (#718)

Newly added:

  • Add support for WireGuard nodes in Clash, Surge and Loon configs
  • Add support for generating sing-box configs and exporting node list in sing-box format
  • Add option to enable reload pref config on request
  • Add support for parsing authentication info in SOCKS5 links (#652)
  • Add Shadowsocks-2022 ciphers (#564)
  • Add no-resolve to generated Clash rule-set if exists (#679)
  • Add UA of Clash Verge to auto target (#713)
  • Read template_args from root in TOML preferences (#717)
  • Support setting output style for proxy groups in Clash configs (#734)
  • Add macOS ARM build

Other changes:

  • Use cpp-httplib as web server
  • Optimize codes
  • Use Host as SNI field if exists in Surge configs (#674)
  • Print curl verbose logs with standard format
  • Change thread id in logs to thread name
  • Optimize generation of rule contents
  • Set most node_pref settings to indeterminate by default (#728)
  • Make max_workers work for httplib

v0.8.1

6 months ago

This version updates the libcurl library to 8.4.0, for mitigating a high severity vulnerability in this library.

v0.8.0

6 months ago

This version contains fixes for a possible remote code execution (RCE) vulnerability, all users are strongly recommended to update.

Changes: Add authorization check before loading scripts. Add detailed logs when loading preference settings. Fix bad request header (#472). Update emoji rules (#493). Fix load-balance in Surge configuration not being generated correctly. Add persistent and evaluate-before-use options to Surge proxy-groups. Add support for SOCKS5 nodes in Quantumult X configs. Fix HEAD method to /sub not working. Remove unused interfaces. Fix not loading local rulesets. Fix posting form to /updateconf (#506). Remove VMess aead option in Quantumult X (#538). Make indentation in Clash profile consistent (#559). Fix support for generating Loon configs. Do not add obfs-host to Surge Snell node if empty (#626). Fix client parse errors with '=' in remark strings (#632). UDP is not supported yet in clash when using snell (#627). Add new proxy group options for Loon and Quantumult X. Add support for SOCKS5 nodes in Loon configs. Refresh cron schedule after loading TOML preferences (#629). Keep line order of Plugin section in Loon configs. Add Snell version to Surge configs. Add img-url support for Loon proxy groups.

v0.7.2

2 years ago

Bugs fixed: Fix typo in default configuration. Fix example preference file. Fix error when template include path is not set. Fix crash when adding SSID group to Loon configurations. Fix error in parsing ShadowsocksR configurations. Fix cache system not working properly. Don't add tls-verification to Quantumult X nodes if not over-tls (#413). Fix max_allowed_download_size option has no effect (#409). Fix some client does not recognize integer port or alter id (#371) Fix skip-cert-verify option not correctly added to Surge subscriptions. Fix matching not-range does not work (#428). Fix parsing and generating of HTTPS nodes (#450). Fix incorrect order of tolerance and timeout field in custom group config. Fix Content-Disposition header for better support on browsers. Fix parsing of some Shadowrocket links. Fix parsing of some Trojan share links.

Newly added: Use url-latency-benchmark type for Quantumult X URL-Test group. Add support for Trojan-WebSocket protocol. Add support for new format of Clash VMess WebSocket options. Add support for version field of Snell nodes. Add servername field for Clash VMess nodes (#449 #451). Add VMess AEAD option for Surge and Quantumult X configs. Support HEAD request that only return Subscription-UserInfo (#434). Add more detail info to crash report. Add support for latest Surfboard config.

Other changes: Update local rulesets and configs. Update Emoji. Optimize codes.

v0.7.1

2 years ago

ARM releases has been restored. ARMHF build is replaced by ARMv7.

Bugs fixed: Fix failed to load external TOML config when surge_rule_base is set. Fix typo in default profile. Fix some generated VMess nodes have incomplete config Revert to legacy Clash VMess-WS node format for backward compatibility.

Other changes: Update local rulesets.

v0.7.0

2 years ago

The CI environment for building releases has been moved from Travis CI to GitHub Actions. For now ARM releases will be available only via Docker images.

Bugs fixed: Fix not correctly handle SOCKS5 nodes in Clash subscriptions. Fix some global preferences has no effect. Fix detection of loop request (#284). Fix incorrect handing of default node parameters in SSD subscription. Fix unable to parse some Clash rule-providers (#289). Fix not filtering inline comments in some Surge rulesets (#285). Fix broken generation of Clash subscription. Fix wrong type of alterId in Clash VMess nodes (#325). Fix broken parsing of ShadowsocksR subscription. Fix possible crash when running scripts. Fix server_port fields become 0 in SIP008 and ShadowsocksD subscriptions. Fix parsed target not being passed to template argument. Fix missing TLS setting in VMess nodes. Fix subscription info not being passed to the response. Fix inconsistence Shadowsocks plugin name. Fix parser may not recognize some SIP008 format (#367). Fix Gist upload and other web operation may fail to post data.

Newly added: Add force refresh rulesets after /readconf call. Add specifying filter script from URL arguments. Add support for using matchers in include/exclude options. Add dummy cipher for ShadowsocksR nodes in Clash (#312). Add Cron task options. Add clean context option for persisting a JS context across the whole request. Add basic support for VMess h2 & grpc protocols. Add support for using TOML as configuration file format. Add basic support for trojan-grpc nodes.

Other changes: Print error when failed to load rule base. Rename default configuration files for easier upgrade. Complete refactor of project file structure. Replace JS engine with QuickJS. Use stable sort for sorting nodes. Refactor codes.

v0.6.4

3 years ago

Bugs fixed: Fix target auto not working properly. Fix crash when trying to convert SSR subscriptions to SSD subscriptions. Fix conversion of some logical rules in Surge configurations. Fix incorrect order of options in Quantumult nodes.

Newly added: Add support for parsing standard VMess links. Add support for simple web server. Add PROCESS-NAME rule type to Clash subscriptions. Add POST support to fetch() in scripts. Add /flushcache for cleaning up all caches. Add type fallback for exported v2rayN subscription. Add skipping loading groups, rulesets and unrelated rule_base for simple subscriptions.

Other changes: Optimize codes. Use a higher performance implementation of cache read/write locks. Update User-Agent match pattern for Loon. Update local rulesets and configs. Remove ConnersHua rules repository and replace all examples with DivineEngine repository.

v0.6.3

3 years ago

Bugs fixed: Fix compatibility with some non-standard subscriptions. Fix group option not detected in Trojan links. Fix compatibility when parsing Clash ShadowsocksR nodes. Fix potential crash when using nullnode as URL. Fix compatibility with Electron-SSR configurations. Fix failed to download subscriptions, configs and rulesets due to bad implementation of download size checker. Fix /updateconf replacing configuration file with an empty file. Fix /render throws Not found while the template exists.

Newly added: Forward request User-Agent for download instead of using internal one. Add support for specifying max allowed download size. Add support for converting some groups to proxies in Surge subscriptions. Add option to change style of proxies section in Clash subscriptions. Add support for setting profile-update-interval for Clash subscriptions. Add UrlEncode as template function.

Other changes: Optimize codes. Update local rulesets and configs. Add DivineEngine local ruleset repository. Remove base pre-generation function. Remove Clash rule-providers from ACL4SSR repository. inja: Using a better implementation for stripping blanks for expressions. inja: Update library to latest. Optimize memory usage.

v0.6.2

3 years ago

Bugs fixed: Fix implementation of using Clash rule-providers as rule sources. Fix implementation of scripts in renaming/adding Emoji. Fix compatibility problem with some non-standard v2rayN subscription. Fix running program from directory other than program folder may cause not using pref.yml as default. Fix logic error in generating Clash Script.

Newly added: Add option for whether to try to resolve hostnames when generating ShadowsocksR nodes in Surge configurations. Add fallback support for different names of Shadowsocks plugins. Add case for when no net type is set for VMess nodes. Add support for more types of nodes to exported Mellow subscriptions. Add "auto" target to automatically determine target and other options by User-Agent. Add option to allow continue when failed to parse an subscription link. Add update-interval option to exported Surge RULE-SET. Add support for ShadowsocksR nodes in Clash subscriptions.

Other changes: Change behavior of using proxy-providers in Clash proxy groups to allow both providers and proxies to exist. Update local rulesets. Optimize codes. inja: Update to latest version.

v0.6.1

3 years ago

Bugs fixed: Fix VMess HTTP nodes missing in exported Clash configurations. Fix implementation of processing escape character in INIReader. Fix some keys might be missing when parsing some Clash subscriptions. Fix bad implementation of regex library for include/exclude. Fix bad implementation of request header forwarding. Fix implementation of v2ray-plugin in Quantumult X subscriptions. INIReader: Fix key value trimming error. INIReader: Fix not processing escape character when dumping.

Newly added: Add support for parsing VMess HTTP nodes in Clash configurations. Add support for adding update interval to Clash rule-providers. Add support for using \uhhhh to match characters with regex. Add basic support for tls13 flag.

Other changes: Add example for using Clash proxy-provider. Clean up codes. Optimize performance. Update local rulesets.