<?php
/*
Maemo.org Application Download Statistics
Coded by Amanda Lam, http://dadablog.net/
This piece of source code is licensed under LGPLv3. For full details, visit http://www.gnu.org/licenses/lgpl.html
Version 2011.1.5
*/
if ($_GET["viewSourceCode"] == True
    
show_source(basename($_SERVER["PHP_SELF"]));
else
{
    
$package $_GET["package"];
    
$os $_GET["os"];

    if (
$package!=""$packageWithColon ": " $package; else $packageWithColon "";
    if (
$os==""$os "fremantle";
    
    
$statsrc "http://maemo.org/download-stats2/fetch.php?unixname=" $package "&os=" $os;

    
$page = @fopen($statsrc,"r");
    
$total 0;
    echo 
"<html>\n";
    echo 
"<head><title>Maemo.org Application Download Statistics" $packageWithColon "</title>";
    include_once(
"analyticstracking.php");
    echo 
"</head>\n";
    echo 
"<body style=\"font-family: Arial\">\n";
    echo 
"<p>\n";    
    echo 
"<h1>Maemo.org Application Download Statistics <font size=\"2\" color=\"purple\">Beta</font></h1>\n";
    echo 
"<p>This page provides daily download figures of Maemo packages in Maemo.org Extras, Extras-Testing and Extra-Devel repositories.<br />\nAlthough the figures in this page are directly retrieved from Maemo.org Downloads page, I do not guarantee the accuracy and completeness of these figures.<br />\n<font color=\"red\">Please use this page AT YOUR OWN RISK.</font></p>\n";
    echo 
"<form action=\"" basename($_SERVER["PHP_SELF"]) . "\" method=\"GET\">\n";
    echo 
"<table width=\"750\"><tr><td width=\"30%\" style=\"font-size: 14pt\">Package Name</td><td><input type=\"text\" name=\"package\"; size=\"50\" style=\"font-size: 14pt\" value=\"".$package."\" /></td></tr>\n";
    echo 
"<tr><td style=\"font-size: 14pt\">Operating System</td><td style=\"font-size: 14pt; text-align: justify\">";
    
$FremantleRadioChecked "";
    
$DiabloRadioChecked "";
    
    if (
$os=="diablo")
        
$DiabloRadioChecked "checked";
    else
        
$FremantleRadioChecked "checked";

    echo 
"<input type=\"radio\" name=\"os\" id=\"os_maemo4\" value=\"diablo\" " $DiabloRadioChecked "><label for=\"os_maemo4\">OS2008 (Maemo 4.1)</label></input>\n";
    echo 
"<input type=\"radio\" name=\"os\" id=\"os_maemo5\" value=\"fremantle\" " $FremantleRadioChecked " /><label for=\"os_maemo5\">Maemo 5</label></input>\n";        
    echo 
"</td></tr>\n";
    echo 
"<tr><td colspan=\"2\" align=\"right\"><input type=\"submit\" style=\"font-size: 14pt\" value=\"Check Download Stats\" /></td></tr></table>\n";
    echo 
"</form>\n";
    echo 
"<p>You may query Maemo package names at <a href=\"http://maemo.org/packages\" target=\"_blank\">Maemo.org/packages</a>.</p>";

    function 
drawTable($varName$repoName$buffer)
    {        
            if (
strstr($buffer,"var ".$varName." = [["))
            {
                
// Obtain the raw data from maemo.org
                
$buffer str_replace("var ".$varName." = [["""$buffer);
                
$buffer str_replace("000,",","$buffer);
                
$buffer str_replace("    """$buffer);
                
$buffer str_replace("]]"""$buffer);
                
$buffer str_replace("],[""\n"$buffer);        
                
$bufferArray explode("\n",$buffer);
                
                
array_multisort($bufferArray);    // Sort the raw data by ascending date
                
echo "<p>\n";
                echo 
"<table width=\"750\" border=\"0\">\n";
                echo 
"<tr bgcolor=\"#dddddd\" align=\"center\"><td colspan=\"4\"><b>" $repoName " Repository</b></td></tr>\n";
                echo 
"<tr align=\"center\" bgcolor=\"#eeeeee\"><td width=\"20%\" colspan=\"2\">Date (UTC)</td><td width=\"50%\"></td><td>Download Count</td></tr>\n";
                
$repo_count 0;
                
$prevDate "";
                
$monthCount 0;
                for (
$i=0;$i<count($bufferArray);$i++)
                {
                        
$dayCountArray explode(",",$bufferArray[$i]);        //  Break down comma separated values into array
                        
                        
if ($dayCountArray[0]!="" && $dayCountArray[1]!="")
                        {                                                        
                            if (
$prevDate=="" || date("Y-m"$dayCountArray[0])==date("Y-m"$prevDate))    // Detect if it is approaching figures of another month
                            
{
                                
$monthCount $monthCount $dayCountArray[1];
                            }
                            else
                            {                                
                                echo 
"<tr><td align=\"right\" colspan=\"3\"><b>" date("Y-m"$prevDate) . " Total</b></td><td align=\"right\"><b>" $monthCount "</b></td></tr>\n";
                                
$monthCount $dayCountArray[1];                                                                
                            }
                            
                            
$datePlus1Hr mktime(1,0,0,date("m",$dayCountArray[0]),date("d",$dayCountArray[0]),date("Y",$dayCountArray[0]));
                            echo 
"<tr><td align=\"center\" width=\"20%\">" date("Y-m-d",$datePlus1Hr) . "</td><td width=\"5%\">"strtoupper(date("D"$dayCountArray[0])) ."</td><td></td><td align=\"right\">" $dayCountArray[1] . "</td></tr>\n";
                            
$prevDate $datePlus1Hr;
                            
$repo_count $repo_count $dayCountArray[1];                                    
                        }                                            
                }
                echo 
"<tr><td align=\"right\" colspan=\"3\"><b>" date("Y-m"$prevDate) . " Total</b></td><td align=\"right\"><b>" $monthCount "</b></td></tr>\n";    
                echo 
"<tr align=\"right\" bgcolor=\"#eeeeee\"><td colspan=\"3\"><b>" $repoName " Total</b></td><td><b>" $repo_count "</b></td></tr>\n";                        
                echo 
"</table>\n";
                echo 
"</p>\n";            
                return 
$repo_count;
            }
    }

    if (
$package!="")
    {
        while (!
feof($page))
        {
            
$buffer fgets($page);
            
$total $total drawTable("d1""Maemo.org Extras"$buffer);
            
$total $total drawTable("d2""Maemo.org Extras-Testing"$buffer);
            
$total $total drawTable("d3""Maemo.org Extras-Devel"$buffer);        
        }
        
fclose($page);
        
        
// Draw the summary table
        
echo "<p>\n";        
        echo 
"<table width=\"750\" border=\"0\">\n";
        echo 
"<tr align=\"center\"><td colspan=\"3\" bgcolor=\"#dddddd\"><b>Maemo.org Extras+Devel+Testing Repositories</b></td></tr>\n";
        echo 
"<tr align=\"center\" bgcolor=\"#eeeeee\"><td colspan=\"2\" width=\"20%\"></td><td>Download Count</td></tr>\n";        
        echo 
"<tr align=\"right\" bgcolor=\"#eeeeee\"><td colspan=\"2\"><b>Total</b></td><td><b>" $total "</b></td></tr>\n";
        echo 
"</table>\n";
        echo 
"</p>\n";
        
        echo 
"<p><b>Summary Graph provided by <a href=\"http://maemo.org/\" target=\"_blank\">Maemo.org</a>:</b></p>\n";
        if (
$os=="diablo")
            echo 
"<iframe src=\"http://maemo.org/download-stats2/index.php?unixname=" $package "&os=OS2008\" width=\"750\" height=\"420\" frameborder=\"0\"></iframe>\n";
        else        
            echo 
"<iframe src=\"http://maemo.org/download-stats2/index.php?unixname=" $package "&os=Maemo5\" width=\"750\" height=\"420\" frameborder=\"0\"></iframe>\n";        
    }
    echo 
"<p><i>Best viewed with <a href=\"http://www.firefox.com/\" target=\"_blank\">Mozilla Firefox</a> and <a href=\"http://www.google.com/chrome\" target=\"_blank\">Google Chrome</a>. Script coded by <a href=\"http://dadablog.net/\" target=\"_blank\">Amanda Lam</a>, 2010.</i> Here is the <a href=\"" basename($_SERVER["PHP_SELF"]) . "?viewSourceCode=True\" target=\"_blank\">Source Code of this PHP script</a>.</i></p>\n";
    echo 
"</body>\n";
    echo 
"</html>";
}
?>