]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/snapshot.php
Merge branch 'master' of gitorious.org:statusnet/mainline into 0.9.x
[quix0rs-gnu-social.git] / lib / snapshot.php
index a014d3435f068f96a016ad78c3c88195456a66f0..a16087ac00da648d6b3f43307be0c776a1b688b4 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Laconica, the distributed open-source microblogging tool
+ * StatusNet, the distributed open-source microblogging tool
  *
  * A snapshot of site stats that can report itself to headquarters
  *
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *
  * @category  Stats
- * @package   Laconica
- * @author    Evan Prodromou <evan@controlyourself.ca>
- * @copyright 2009 Control Yourself, Inc.
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet, Inc.
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://laconi.ca/
+ * @link      http://status.net/
  */
 
-if (!defined('LACONICA')) {
+if (!defined('STATUSNET') && !defined('LACONICA')) {
     exit(1);
 }
 
@@ -36,16 +36,16 @@ if (!defined('LACONICA')) {
  *
  * This class will collect statistics on the site and report them to
  * a statistics server of the admin's choice. (Default is the big one
- * at laconi.ca.)
+ * at status.net.)
  *
  * It can either be called from a cron job, or run occasionally by the
  * Web site.
  *
  * @category Stats
- * @package  Laconica
- * @author   Evan Prodromou <evan@controlyourself.ca>
+ * @package  StatusNet
+ * @author   Evan Prodromou <evan@status.net>
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://laconi.ca/
+ * @link     http://status.net/
  *
  */
 
@@ -84,9 +84,8 @@ class Snapshot
             // hits
             if (rand() % common_config('snapshot', 'frequency') == 0) {
                 $snapshot = new Snapshot();
-                if ($snapshot->take()) {
-                    $snapshot->report();
-                }
+                $snapshot->take();
+                $snapshot->report();
             }
             break;
         case 'cron':
@@ -94,11 +93,14 @@ class Snapshot
             if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) {
                 break;
             }
+            common_log(LOG_INFO, 'Running snapshot from cron job');
             // We're running from the command line; assume
+
             $snapshot = new Snapshot();
-            if ($snapshot->take()) {
-                $snapshot->report();
-            }
+            $snapshot->take();
+            common_log(LOG_INFO, count($snapshot->stats) . " statistics being uploaded.");
+            $snapshot->report();
+
             break;
         case 'never':
             break;
@@ -123,7 +125,7 @@ class Snapshot
 
         // Some basic identification stuff
 
-        $this->stats['version']    = LACONICA_VERSION;
+        $this->stats['version']    = STATUSNET_VERSION;
         $this->stats['phpversion'] = phpversion();
         $this->stats['name']       = common_config('site', 'name');
         $this->stats['root']       = common_root_url();
@@ -155,6 +157,7 @@ class Snapshot
         $this->stats['memcached'] = common_config('memcached', 'enabled');
         $this->stats['language']  = common_config('site', 'language');
         $this->stats['timezone']  = common_config('site', 'timezone');
+
     }
 
     /**
@@ -169,24 +172,13 @@ class Snapshot
     {
         // XXX: Use OICU2 and OAuth to make authorized requests
 
-        $postdata = http_build_query($this->stats);
-
-        $opts =
-          array('http' =>
-                array(
-                      'method'  => 'POST',
-                      'header'  => 'Content-type: '.
-                                   'application/x-www-form-urlencoded',
-                      'content' => $postdata,
-                      'user_agent' => 'Laconica/'.LACONICA_VERSION
-                      )
-                );
-
-        $context = stream_context_create($opts);
-
         $reporturl = common_config('snapshot', 'reporturl');
-
-        $result = file_get_contents($reporturl, false, $context);
+        try {
+            $request = HTTPClient::start();
+            $request->post($reporturl, null, $this->stats);
+        } catch (Exception $e) {
+            common_log(LOG_WARNING, "Error in snapshot: " . $e->getMessage());
+        }
     }
 
     /**
@@ -203,14 +195,14 @@ class Snapshot
 
     function tableStats($table)
     {
-        $inst = DB_DataObject::Factory($table);
+        $inst = DB_DataObject::factory($table);
 
-        $res = $inst->query('SELECT count(*) as cnt, '.
-                            'min(created) as first, '.
-                            'max(created) as last '.
-                            'from ' . $table);
+        $inst->selectAdd();
+        $inst->selectAdd('count(*) as cnt, '.
+                         'min(created) as first, '.
+                         'max(created) as last');
 
-        if ($res) {
+        if ($inst->find(true)) {
             $this->stats[$table.'count'] = $inst->cnt;
             $this->stats[$table.'first'] = $inst->first;
             $this->stats[$table.'last']  = $inst->last;