/** * Comprobar si hay actualizaciones de sysPass disponibles desde internet (github.com) * Esta función hace una petición a GitHub y parsea el JSON devuelto para verificar * si la aplicación está actualizada * * @return array|bool */ public static function checkUpdates() { if (!Config::getValue('checkupdates')) { return false; } $data = self::getDataFromUrl(self::getAppInfo('appupdates')); if ($data) { $updateInfo = json_decode($data); // $updateInfo[0]->tag_name // $updateInfo[0]->name // $updateInfo[0]->body // $updateInfo[0]->tarball_url // $updateInfo[0]->zipball_url // $updateInfo[0]->published_at // $updateInfo[0]->html_url $version = $updateInfo->tag_name; $url = $updateInfo->html_url; $title = $updateInfo->name; $description = $updateInfo->body; $date = $updateInfo->published_at; preg_match('/v?(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)(\\-[a-z0-9.]+)?$/', $version, $realVer); if (is_array($realVer) && Init::isLoggedIn()) { $appVersion = implode('', self::getVersion(true)); $pubVersion = $realVer[1] . $realVer[2] . $realVer[3] . $realVer[4]; if ($pubVersion > $appVersion) { return array('version' => $version, 'url' => $url, 'title' => $title, 'description' => $description, 'date' => $date); } else { return true; } } else { return false; } } return false; }