fix: improve node filtering by client base_version, set subscription content-type, and add hop_interval support for hysteria2

- Refactor node filtering logic to correctly handle client base_version requirements.
- Set appropriate Content-Type header for subscription responses.
- Add support for hop_interval configuration in hysteria2 node delivery.
This commit is contained in:
xboard
2025-05-24 13:45:32 +08:00
parent a3700ad685
commit bf3a9112f2
12 changed files with 82 additions and 29 deletions
+2 -1
View File
@@ -154,7 +154,8 @@ class ClashMeta extends AbstractProtocol
$yaml = Yaml::dump($config, 2, 4, Yaml::DUMP_EMPTY_ARRAY_AS_SEQUENCE);
$yaml = str_replace('$app_name', admin_setting('app_name', 'XBoard'), $yaml);
return response($yaml, 200)
return response($yaml)
->header('content-type', 'text/yaml')
->header('subscription-userinfo', "upload={$user['u']}; download={$user['d']}; total={$user['transfer_enable']}; expire={$user['expired_at']}")
->header('profile-update-interval', '24')
->header('content-disposition', 'attachment;filename*=UTF-8\'\'' . rawurlencode($appName));