website: update version check backend to report mobile version data. plugin updates still required

This commit is contained in:
Jon Atkins 2013-11-09 06:26:43 +00:00
parent f525d15f94
commit d0fd324344
2 changed files with 58 additions and 22 deletions

View File

@ -19,8 +19,6 @@ function getMobileVersion ( $apkfile )
$archive = $apkinfo->getApkArchive(); $archive = $apkinfo->getApkArchive();
$stream = $archive->getStream ( "assets/total-conversion-build.user.js" ); $stream = $archive->getStream ( "assets/total-conversion-build.user.js" );
if ( ! $stream )
$stream = $archive->getStream ( "assets/iitc.js" );
if ( $stream ) if ( $stream )
{ {

View File

@ -2,12 +2,13 @@
include_once "code/userscript.php"; include_once "code/userscript.php";
include_once "code/url/url_to_absolute.php"; include_once "code/url/url_to_absolute.php";
include_once "code/apk/ApkParser.php";
$response = Array(); $response = Array();
$build = $_REQUEST['build']; $build = $_REQUEST['build'];
$mobile = isset($_REQUEST['mobile']) && $_REQUEST['mobile'];
$details = Array ( $details = Array (
@ -15,23 +16,27 @@ $details = Array (
'path' => 'release', 'path' => 'release',
'name' => 'Stable release build', 'name' => 'Stable release build',
'web' => 'http://iitc.jonatkins.com/?page=download', 'web' => 'http://iitc.jonatkins.com/?page=download',
'mobileweb' => 'http://iitc.jonatkins.com/?page=mobile',
), ),
'jonatkins-test' => Array ( # public test builds 'jonatkins-test' => Array ( # public test builds
'path' => 'test', 'path' => 'test',
'name' => 'Test build', 'name' => 'Test build',
'web' => 'http://iitc.jonatkins.com/?page=test', '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' 'jonatkins-experimental' => Array ( # rarely used, for features not quite ready for 'test'
'path' => 'experimental', 'path' => 'experimental',
'name' => 'Experimental build', 'name' => 'Experimental build',
'web' => 'http://iitc.jonatkins.com/?page=test&build=experimental', 'web' => 'http://iitc.jonatkins.com/?page=test&build=experimental',
'mobileweb' => 'http://iitc.jonatkins.com/?page=test&build=experimental#test-mobild',
), ),
'jonatkins-dev' => Array ( # personal 'jonatkins-dev' => Array ( # personal
'path' => 'dev', 'path' => 'dev',
'name' => 'Development builds - not for public use', 'name' => 'Development builds - not for public use',
'web' => 'http://iitc.jonatkins.com/?page=test&build=dev', '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 'local' => Array ( # not a real build, but often the default for local development
@ -50,6 +55,38 @@ if ( array_key_exists ( $build, $details ) )
$dir = $info['path']; $dir = $info['path'];
if ( $mobile )
{
$apkfile = $dir.'/IITC_Mobile-'.$dir.'.apk';
if ( file_Exists ( $apkfile ) )
{
$apkinfo = new ApkParser ( $apkfile );
$manifest = $apkinfo->getManifest();
$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 // load main script version
$iitc_details = loadUserScriptHeader ( "$dir/total-conversion-build.user.js" ); $iitc_details = loadUserScriptHeader ( "$dir/total-conversion-build.user.js" );
$response['iitc'] = Array ( $response['iitc'] = Array (
@ -73,6 +110,7 @@ if ( array_key_exists ( $build, $details ) )
'pageUrl' => url_to_absolute ( $pageurl, $info['web']."#plugin-$basename" ), 'pageUrl' => url_to_absolute ( $pageurl, $info['web']."#plugin-$basename" ),
); );
} }
}
} }
else else