diff --git a/website/code/mobile-download.php b/website/code/mobile-download.php index 9322a9ee..f0eb1fc3 100644 --- a/website/code/mobile-download.php +++ b/website/code/mobile-download.php @@ -19,8 +19,6 @@ function getMobileVersion ( $apkfile ) $archive = $apkinfo->getApkArchive(); $stream = $archive->getStream ( "assets/total-conversion-build.user.js" ); - if ( ! $stream ) - $stream = $archive->getStream ( "assets/iitc.js" ); if ( $stream ) { diff --git a/website/versioncheck.php b/website/versioncheck.php index 35e24574..6c9200ce 100644 --- a/website/versioncheck.php +++ b/website/versioncheck.php @@ -2,12 +2,13 @@ include_once "code/userscript.php"; include_once "code/url/url_to_absolute.php"; - +include_once "code/apk/ApkParser.php"; $response = Array(); $build = $_REQUEST['build']; +$mobile = isset($_REQUEST['mobile']) && $_REQUEST['mobile']; $details = Array ( @@ -15,23 +16,27 @@ $details = Array ( 'path' => 'release', 'name' => 'Stable release build', 'web' => 'http://iitc.jonatkins.com/?page=download', + 'mobileweb' => 'http://iitc.jonatkins.com/?page=mobile', ), 'jonatkins-test' => Array ( # public test builds 'path' => 'test', 'name' => 'Test build', 'web' => 'http://iitc.jonatkins.com/?page=test', + 'mobileweb' => 'http://iitc.jonatkins.com/?page=test#test-mobile', ), 'jonatkins-experimental' => Array ( # rarely used, for features not quite ready for 'test' 'path' => 'experimental', 'name' => 'Experimental build', 'web' => 'http://iitc.jonatkins.com/?page=test&build=experimental', + 'mobileweb' => 'http://iitc.jonatkins.com/?page=test&build=experimental#test-mobild', ), 'jonatkins-dev' => Array ( # personal 'path' => 'dev', 'name' => 'Development builds - not for public use', 'web' => 'http://iitc.jonatkins.com/?page=test&build=dev', + 'mobileweb' => 'http://iitc.jonatkins.com/?page=test&build=dev#test-mobile', ), 'local' => Array ( # not a real build, but often the default for local development @@ -50,28 +55,61 @@ if ( array_key_exists ( $build, $details ) ) $dir = $info['path']; - // load main script version - $iitc_details = loadUserScriptHeader ( "$dir/total-conversion-build.user.js" ); - $response['iitc'] = Array ( - 'version' => $iitc_details['@version'], - 'downloadUrl' => url_to_absolute ( $pageurl, "$dir/total-conversion-build.user.js" ), - 'pageUrl' => url_to_absolute ( $pageurl, $info['web'] ), - ); - - // and now the plugins - - $response['plugins'] = Array(); - - foreach ( glob ( "$dir/plugins/*.user.js" ) as $path ) + if ( $mobile ) { - $basename = basename ( $path, ".user.js" ); - $details = loadUserScriptHeader ( $path ); + $apkfile = $dir.'/IITC_Mobile-'.$dir.'.apk'; + if ( file_Exists ( $apkfile ) ) + { + $apkinfo = new ApkParser ( $apkfile ); + $manifest = $apkinfo->getManifest(); - $response['plugins'][$basename] = Array ( - 'version' => $details['@version'], - 'downloadUrl' => url_to_absolute ( $pageurl, "$dir/plugins/$basename.user.js" ), - 'pageUrl' => url_to_absolute ( $pageurl, $info['web']."#plugin-$basename" ), + $response['mobile'] = Array ( + 'versionstr' => $manifest->getVersionName(), + 'versioncode' => $manifest->getVersionCode(), + 'downloadurl' => url_to_absolute ( $pageurl, $apkfile ), + 'pageurl' => $info['mobileweb'], + ); + + $archive = $apkinfo->getApkArchive(); + $stream = $archive->getStream ( "assets/total-conversion-build.user.js" ); + if ( $stream ) + { + $header = loadUserScriptHeader ( $stream ); + $response['mobile']['iitc_version'] = $header['@version']; + } + } + else + { + $response['error'] = 'Failed to find .apk file '.$apkfile; + } + } + else + { + // desktop - .user.js scripts + + // load main script version + $iitc_details = loadUserScriptHeader ( "$dir/total-conversion-build.user.js" ); + $response['iitc'] = Array ( + 'version' => $iitc_details['@version'], + 'downloadUrl' => url_to_absolute ( $pageurl, "$dir/total-conversion-build.user.js" ), + 'pageUrl' => url_to_absolute ( $pageurl, $info['web'] ), ); + + // and now the plugins + + $response['plugins'] = Array(); + + foreach ( glob ( "$dir/plugins/*.user.js" ) as $path ) + { + $basename = basename ( $path, ".user.js" ); + $details = loadUserScriptHeader ( $path ); + + $response['plugins'][$basename] = Array ( + 'version' => $details['@version'], + 'downloadUrl' => url_to_absolute ( $pageurl, "$dir/plugins/$basename.user.js" ), + 'pageUrl' => url_to_absolute ( $pageurl, $info['web']."#plugin-$basename" ), + ); + } } }