query for statistics are now executed by poller
This commit is contained in:
parent
9cebe8ccf0
commit
15c1529e83
@ -149,6 +149,13 @@ function poller_run($argv, $argc){
|
|||||||
|
|
||||||
update_birthdays();
|
update_birthdays();
|
||||||
|
|
||||||
|
//update statistics in config
|
||||||
|
require_once('include/statistics_fns.php');
|
||||||
|
update_channels_total_stat();
|
||||||
|
update_channels_active_halfyear_stat();
|
||||||
|
update_channels_active_monthly_stat();
|
||||||
|
update_local_posts_stat();
|
||||||
|
|
||||||
// expire any read notifications over a month old
|
// expire any read notifications over a month old
|
||||||
|
|
||||||
q("delete from notify where seen = 1 and date < UTC_TIMESTAMP() - INTERVAL 30 DAY");
|
q("delete from notify where seen = 1 and date < UTC_TIMESTAMP() - INTERVAL 30 DAY");
|
||||||
|
73
include/statistics_fns.php
Normal file
73
include/statistics_fns.php
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
<?php /** @file */
|
||||||
|
|
||||||
|
function update_channels_total_stat() {
|
||||||
|
$r = q("select count(channel_id) as channels_total from channel left join account on account_id = channel_account_id
|
||||||
|
where account_flags = 0 ");
|
||||||
|
if($r) {
|
||||||
|
$channels_total_stat = intval($r[0]['channels_total']);
|
||||||
|
set_config('system','channels_total_stat',$channels_total_stat);
|
||||||
|
} else {
|
||||||
|
set_config('system','channels_total_stat',null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_channels_active_halfyear_stat() {
|
||||||
|
$r = q("select channel_id from channel left join account on account_id = channel_account_id
|
||||||
|
where account_flags = 0 and account_lastlog > UTC_TIMESTAMP - INTERVAL 6 MONTH");
|
||||||
|
if($r) {
|
||||||
|
$s = '';
|
||||||
|
foreach($r as $rr) {
|
||||||
|
if($s)
|
||||||
|
$s .= ',';
|
||||||
|
$s .= intval($rr['channel_id']);
|
||||||
|
}
|
||||||
|
$x = q("select uid from item where uid in ( $s ) and (item_flags & %d) and created > UTC_TIMESTAMP - INTERVAL 6 MONTH group by uid",
|
||||||
|
intval(ITEM_WALL)
|
||||||
|
);
|
||||||
|
if($x) {
|
||||||
|
$channels_active_halfyear_stat = count($x);
|
||||||
|
set_config('system','channels_active_halfyear_stat',$channels_active_halfyear_stat);
|
||||||
|
} else {
|
||||||
|
set_config('system','channels_active_halfyear_stat',null);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
set_config('system','channels_active_halfyear_stat',null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_channels_active_monthly_stat() {
|
||||||
|
$r = q("select channel_id from channel left join account on account_id = channel_account_id
|
||||||
|
where account_flags = 0 and account_lastlog > UTC_TIMESTAMP - INTERVAL 1 MONTH");
|
||||||
|
if($r) {
|
||||||
|
$s = '';
|
||||||
|
foreach($r as $rr) {
|
||||||
|
if($s)
|
||||||
|
$s .= ',';
|
||||||
|
$s .= intval($rr['channel_id']);
|
||||||
|
}
|
||||||
|
$x = q("select uid from item where uid in ( $s ) and ( item_flags & %d ) and created > UTC_TIMESTAMP - INTERVAL 1 MONTH group by uid",
|
||||||
|
intval(ITEM_WALL)
|
||||||
|
);
|
||||||
|
if($x) {
|
||||||
|
$channels_active_monthly_stat = count($x);
|
||||||
|
set_config('system','channels_active_monthly_stat',$channels_active_monthly_stat);
|
||||||
|
} else {
|
||||||
|
set_config('system','channels_active_monthly_stat',null);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
set_config('system','channels_active_monthly_stat',null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_local_posts_stat() {
|
||||||
|
$posts = q("SELECT COUNT(*) AS local_posts FROM `item` WHERE (item_flags & %d) ",
|
||||||
|
intval(ITEM_WALL) );
|
||||||
|
if (is_array($posts)) {
|
||||||
|
$local_posts_stat = intval($posts[0]["local_posts"]);
|
||||||
|
set_config('system','local_posts_stat',$local_posts_stat);
|
||||||
|
} else {
|
||||||
|
set_config('system','local_posts_stat',null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -50,51 +50,12 @@ function siteinfo_init(&$a) {
|
|||||||
$site_info = get_config('system','info');
|
$site_info = get_config('system','info');
|
||||||
$site_name = get_config('system','sitename');
|
$site_name = get_config('system','sitename');
|
||||||
|
|
||||||
// Statistics (from statistics.json plugin)
|
//Statistics
|
||||||
|
$channels_total_stat = intval(get_config('system','channels_total_stat'));
|
||||||
|
$channels_active_halfyear_stat = intval(get_config('system','channels_active_halfyear_stat'));
|
||||||
|
$channels_active_monthly_stat = intval(get_config('system','channels_active_monthly_stat'));
|
||||||
|
$local_posts_stat = intval(get_config('system','local_posts_stat'));
|
||||||
|
|
||||||
$r = q("select count(channel_id) as channels_total from channel left join account on account_id = channel_account_id
|
|
||||||
where account_flags = 0 ");
|
|
||||||
if($r)
|
|
||||||
$channels_total = intval($r[0]['channels_total']);
|
|
||||||
|
|
||||||
$r = q("select channel_id from channel left join account on account_id = channel_account_id
|
|
||||||
where account_flags = 0 and account_lastlog > UTC_TIMESTAMP - INTERVAL 6 MONTH");
|
|
||||||
if($r) {
|
|
||||||
$s = '';
|
|
||||||
foreach($r as $rr) {
|
|
||||||
if($s)
|
|
||||||
$s .= ',';
|
|
||||||
$s .= intval($rr['channel_id']);
|
|
||||||
}
|
|
||||||
$x = q("select uid from item where uid in ( $s ) and (item_flags & %d) and created > UTC_TIMESTAMP - INTERVAL 6 MONTH group by uid",
|
|
||||||
intval(ITEM_WALL)
|
|
||||||
);
|
|
||||||
if($x)
|
|
||||||
$channels_active_halfyear = count($x);
|
|
||||||
}
|
|
||||||
|
|
||||||
$r = q("select channel_id from channel left join account on account_id = channel_account_id
|
|
||||||
where account_flags = 0 and account_lastlog > UTC_TIMESTAMP - INTERVAL 1 MONTH");
|
|
||||||
if($r) {
|
|
||||||
$s = '';
|
|
||||||
foreach($r as $rr) {
|
|
||||||
if($s)
|
|
||||||
$s .= ',';
|
|
||||||
$s .= intval($rr['channel_id']);
|
|
||||||
}
|
|
||||||
$x = q("select uid from item where uid in ( $s ) and ( item_flags & %d ) and created > UTC_TIMESTAMP - INTERVAL 1 MONTH group by uid",
|
|
||||||
intval(ITEM_WALL)
|
|
||||||
);
|
|
||||||
if($x)
|
|
||||||
$channels_active_monthly = count($x);
|
|
||||||
}
|
|
||||||
|
|
||||||
$posts = q("SELECT COUNT(*) AS local_posts FROM `item` WHERE (item_flags & %d) ",
|
|
||||||
intval(ITEM_WALL)
|
|
||||||
);
|
|
||||||
if (is_array($posts))
|
|
||||||
$local_posts = intval($posts[0]["local_posts"]);
|
|
||||||
|
|
||||||
$data = Array(
|
$data = Array(
|
||||||
'version' => RED_VERSION,
|
'version' => RED_VERSION,
|
||||||
'commit' => $commit,
|
'commit' => $commit,
|
||||||
@ -102,7 +63,6 @@ function siteinfo_init(&$a) {
|
|||||||
'plugins' => $visible_plugins,
|
'plugins' => $visible_plugins,
|
||||||
'register_policy' => $register_policy[$a->config['system']['register_policy']],
|
'register_policy' => $register_policy[$a->config['system']['register_policy']],
|
||||||
'directory_mode' => $directory_mode[$a->config['system']['directory_mode']],
|
'directory_mode' => $directory_mode[$a->config['system']['directory_mode']],
|
||||||
'language' => get_config('system','language'),
|
|
||||||
'diaspora_emulation' => get_config('system','diaspora_enabled'),
|
'diaspora_emulation' => get_config('system','diaspora_enabled'),
|
||||||
'rss_connections' => get_config('system','feed_contacts'),
|
'rss_connections' => get_config('system','feed_contacts'),
|
||||||
'default_service_restrictions' => $service_class,
|
'default_service_restrictions' => $service_class,
|
||||||
@ -110,10 +70,10 @@ function siteinfo_init(&$a) {
|
|||||||
'site_name' => (($site_name) ? $site_name : ''),
|
'site_name' => (($site_name) ? $site_name : ''),
|
||||||
'platform' => RED_PLATFORM,
|
'platform' => RED_PLATFORM,
|
||||||
'info' => (($site_info) ? $site_info : ''),
|
'info' => (($site_info) ? $site_info : ''),
|
||||||
'channels_total' => $channels_total,
|
'channels_total' => $channels_total_stat,
|
||||||
'channels_active_halfyear' => $channels_active_halfyear,
|
'channels_active_halfyear' => $channels_active_halfyear_stat,
|
||||||
'channels_active_monthly' => $channels_active_monthly,
|
'channels_active_monthly' => $channels_active_monthly_stat,
|
||||||
'local_posts' => $local_posts
|
'local_posts' => $local_posts_stat
|
||||||
);
|
);
|
||||||
json_return_and_die($data);
|
json_return_and_die($data);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user