diff --git a/app/Helpers/UpdateHelper.php b/app/Helpers/UpdateHelper.php index 77aa0d98..6c20b6a1 100644 --- a/app/Helpers/UpdateHelper.php +++ b/app/Helpers/UpdateHelper.php @@ -7,7 +7,47 @@ use Exception; class UpdateHelper { public static function check() { - $current = config('app.version', false); - (!$current) ? false : ''; + $current = config('speedtest.version', false); + if($current === false) { + return false; + } + + $gitVersion = UpdateHelper::checkLatestVersion(); + if($gitVersion === false) { + return false; + } + + return (bool)(version_compare($current, $gitVersion['version'])); + } + + public static function checkLatestVersion() + { + $user = config('speedtest.user'); + $repo = config('speedtest.repo'); + $branch = config('speedtest.branch'); + + $url = 'https://raw.githubusercontent.com/'.$user + .'/' + .$repo + .'/' + .$branch + .'/config/speedtest.php'; + + try { + $gitFile = file_get_contents($url); + } catch(Exception $e) { + return false; + } + + $pattern = "/'version' => '([0-9]{1,}\.[0-9]{1,}\.[0-9]{1,})'/"; + $version = []; + preg_match($pattern, $gitFile, $version); + $version = $version[1]; + + return [ + 'repo' => $user . '/' . $repo, + 'branch' => $branch, + 'version' => $version, + ]; } } diff --git a/app/Http/Controllers/UpdateController.php b/app/Http/Controllers/UpdateController.php index 970692e6..c8b9ed89 100644 --- a/app/Http/Controllers/UpdateController.php +++ b/app/Http/Controllers/UpdateController.php @@ -10,6 +10,7 @@ class UpdateController extends Controller public function checkForUpdate() { return response()->json([ + 'method' => 'check for updates', 'update' => UpdateHelper::check(), ], 200); }