diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index ef064da22..7e3eb285b 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -8,6 +8,20 @@ class Helper { + /** + * Parse any User Agent + * + * @return \DeviceDetector\DeviceDetector + */ + public static function deviceDetector() + { + $dd = new \DeviceDetector\DeviceDetector(request()->userAgent()); + $dd->setCache(new \DeviceDetector\Cache\LaravelCache); + $dd->parse(); + + return $dd; + } + /** * Display the link according to what You need. * diff --git a/app/Models/User.php b/app/Models/User.php index f8189681b..e44d718d5 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -3,6 +3,7 @@ namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; +use App\Helpers\Helper; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Foundation\Auth\User as Authenticatable; @@ -84,11 +85,14 @@ public function totalGuestUsers(): int public function signature(): string { if (auth()->check() === false) { + $dd = Helper::deviceDetector(); + return hash('sha3-256', implode([ 'ip' => request()->ip(), - 'browser' => \Browser::browserFamily(), - 'os' => \Browser::platformFamily(), - 'device' => \Browser::deviceFamily().\Browser::deviceModel(), + 'browser' => $dd->getClient('name'), + 'os' => $dd->getOs('name').$dd->getOs('version'), + 'device' => $dd->getDeviceName().$dd->getModel().$dd->getBrandName(), + 'lang' => request()->getPreferredLanguage(), ])); } diff --git a/app/Services/VisitorService.php b/app/Services/VisitorService.php index 6dd244ec5..ed97a498a 100644 --- a/app/Services/VisitorService.php +++ b/app/Services/VisitorService.php @@ -2,6 +2,7 @@ namespace App\Services; +use App\Helpers\Helper; use App\Models\Url; use App\Models\User; use App\Models\Visit; @@ -22,7 +23,9 @@ public function __construct( public function create(Url $url) { $logBotVisit = config('urlhub.track_bot_visits'); - if ($logBotVisit === false && \Browser::isBot() === true) { + $dd = Helper::deviceDetector(); + + if ($logBotVisit === false && $dd->isBot() === true) { return; } diff --git a/composer.json b/composer.json index ddb14481e..03097e59d 100644 --- a/composer.json +++ b/composer.json @@ -12,12 +12,12 @@ "embed/embed": "^4.4", "endroid/qr-code": "^4.8", "guzzlehttp/guzzle": "^7.8", - "hisorange/browser-detect": "^5.0", "laravel/fortify": "^1.18", "laravel/framework": "^10.29", "laravel/sanctum": "^3.3", "laravel/tinker": "^2.8", "livewire/livewire": "^3.0", + "matomo/device-detector": "^6.1", "paragonie/random-lib": "^2.0", "paragonie/random_compat": "^2.0", "power-components/livewire-powergrid": "^5.1",