Quantumult.php 922 B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. /*
  3. * Developed based on
  4. * https://github.com/crossutility/Quantumult/blob/master/quantumult-uri-scheme.md
  5. *
  6. */
  7. namespace App\Utils\Clients;
  8. use App\Models\User;
  9. use App\Utils\Clients\Protocols\QuantumultX;
  10. use App\Utils\Clients\Protocols\URLSchemes;
  11. use App\Utils\Library\Templates\Client;
  12. class Quantumult implements Client
  13. {
  14. public const AGENT = ['quantumult', 'quantumult%20x'];
  15. public function getConfig(array $servers, User $user, string $target): string
  16. {
  17. //display remaining traffic and expire date
  18. if (sysConfig('is_custom_subscribe')) {
  19. header("Subscription-Userinfo: upload=$user->u; download=$user->d; total=$user->transfer_enable; expire=".strtotime($user->expired_at));
  20. }
  21. if (str_contains($target, 'quantumult%20x')) {
  22. return QuantumultX::build($servers, true);
  23. }
  24. return URLSchemes::build($servers);
  25. }
  26. }