Explain push-to-my-ouya
[stouyapi.git] / bin / build-html.php
old mode 100644 (file)
new mode 100755 (executable)
index e1f533f..f7f9154
@@ -1,16 +1,39 @@
+#!/usr/bin/env php
 <?php
 /**
  * Take the generated JSON files and convert them to HTML for a browser
  *
  * @author Christian Weiske <cweiske@cweiske.de>
  */
+require_once __DIR__ . '/functions.php';
+
+//default configuration values
+$GLOBALS['pushToMyOuyaUrl'] = '../push-to-my-ouya.php';
+$cfgFile = __DIR__ . '/../config.php';
+if (file_exists($cfgFile)) {
+    include $cfgFile;
+}
+
 $wwwDir = __DIR__ . '/../www/';
 $discoverDir = __DIR__ . '/../www/api/v1/discover-data/';
 $wwwDiscoverDir = $wwwDir . 'discover/';
+$gameDetailsDir = __DIR__ . '/../www/api/v1/details-data/';
+$wwwGameDir = $wwwDir . 'game/';
 
 if (!is_dir($wwwDiscoverDir)) {
     mkdir($wwwDiscoverDir, 0755);
 }
+if (!is_dir($wwwGameDir)) {
+    mkdir($wwwGameDir, 0755);
+}
+
+foreach (glob($gameDetailsDir . '*.json') as $gameDataFile) {
+    $htmlFile = basename($gameDataFile, '.json') . '.htm';
+    file_put_contents(
+        $wwwGameDir . $htmlFile,
+        renderGameFile($gameDataFile)
+    );
+}
 
 foreach (glob($discoverDir . '*.json') as $discoverFile) {
     $htmlFile = basename($discoverFile, '.json') . '.htm';
@@ -65,6 +88,13 @@ function renderDiscoverFile($discoverFile)
         $sections[] = $section;
     }
 
+    $navLinks = [];
+    if ($title == 'DISCOVER') {
+        $navLinks['../'] = 'back';
+    } else {
+        $navLinks['./'] = 'discover';
+    }
+
     $discoverTemplate = __DIR__ . '/../data/templates/discover.tpl.php';
     ob_start();
     include $discoverTemplate;
@@ -73,4 +103,36 @@ function renderDiscoverFile($discoverFile)
 
     return $html;
 }
+
+function renderGameFile($gameDataFile)
+{
+    $json = json_decode(file_get_contents($gameDataFile));
+
+    $appsDir = dirname($gameDataFile, 2) . '/apps/';
+    $appsFile = $appsDir . $json->version->uuid . '.json';
+    $appsJson = json_decode(file_get_contents($appsFile));
+
+    $downloadJson = json_decode(
+        file_get_contents(
+            $appsDir . $json->version->uuid . '-download.json'
+        )
+    );
+    $apkDownloadUrl = $downloadJson->app->downloadLink;
+    $pushUrl = $GLOBALS['pushToMyOuyaUrl']
+        . '?game=' . urlencode($json->apk->package);
+
+    $navLinks = [];
+    foreach ($json->genres as $genreTitle) {
+        $url = '../discover/' . categoryPath($genreTitle) . '.htm';
+        $navLinks[$url] = $genreTitle;
+    }
+
+    $gameTemplate = __DIR__ . '/../data/templates/game.tpl.php';
+    ob_start();
+    include $gameTemplate;
+    $html = ob_get_contents();
+    ob_end_clean();
+
+    return $html;
+}
 ?>