V2rayN.php 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace App\Utils\Clients;
  3. use App\Models\User;
  4. use App\Utils\Clients\Protocols\URLSchemes;
  5. use App\Utils\Library\Templates\Client;
  6. class V2rayN implements Client
  7. {
  8. public const AGENT = ['v2rayn', 'v2rayng', 'v2rayu'];
  9. public function getConfig(array $servers, User $user): string
  10. {
  11. $uri = '';
  12. if (sysConfig('is_custom_subscribe')) {
  13. $text = '';
  14. if ($user->expiration_date > date('Y-m-d')) {
  15. if ($user->transfer_enable === 0) {
  16. $text .= trans('user.account.remain').': 0';
  17. } else {
  18. $text .= trans('user.account.remain').': '.formatBytes($user->transfer_enable);
  19. }
  20. $text .= ', '.trans('model.user.expired_date').": $user->expiration_date";
  21. } else {
  22. $text .= trans('user.account.reason.expired');
  23. }
  24. $uri .= 'trojan://[email protected]:0?peer=0.0.0.0#'.rawurlencode($text);
  25. }
  26. return base64_encode($uri.URLSchemes::build($servers, false));
  27. }
  28. }