Always send UUID for games
[gamestick-pjgsapi.git] / bin / functions.php
index 1ba765d72fcbde1a3c5255af43826f442cb95329..a5f9d1873398b4d7f0ba5be2e9c42cfa7f047cbb 100644 (file)
@@ -131,20 +131,33 @@ function convertGameDataForConnect(object $gameData, array $popular): ?array
         }
         if ($release->versionCode > $highestVersionCode) {
             $highestVersionCode = $release->versionCode;
-            $highestVersionKey = $releaseKey;
+            $highestVersionKey  = $releaseKey;
         }
     }
+
     if ($highestVersionKey !== null) {
         $release = $gameData->releases[$highestVersionKey];
         $connectData['version']     = $release->uuid;
         $connectData['gameversion'] = $release->gsName ?? $release->name;
+
         $connectData['size']        = round($release->size / 1024 / 1024 * 1000);
         $connectData['download']    = [
             'url'     => $release->url,
             'version' => $release->versionCode,
         ];
+
+    } else if (count($gameData->releases)) {
+        $firstRelease = reset($gameData->releases);
+        $connectData['name']        = '!! ' . $connectData['name'];
+        $connectData['description']
+            = "Download broken!\n\n" . $connectData['description'];
+        $connectData['version']     = $firstRelease->uuid;
+        $connectData['gameversion'] = $firstRelease->gsName ?? $firstRelease->name;
+
     } else {
-        $connectData['name'] = '!! ' . $connectData['name'];
+        $connectData['name']        = '!!! ' . $connectData['name'];
+        $connectData['description']
+            = "Release data missing!\n\n" . $connectData['description'];
     }
 
     foreach ($gameData->videos as $videoNum => $video) {