Exemple #1
0
 /**
  * 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;
 }