has_access(100)) {
access_denied();
exit();
}
$action = scrub_in($_POST['action']);
$to = scrub_in($_REQUEST['to']);
if (isset ($_POST['cat_stats'])){$cat_stats = scrub_in($_POST['cat_stats']);}
if (isset ($_POST['pop_albums'])){$pop_albums = scrub_in($_POST['pop_albums']);}
if (isset ($_POST['pop_artists'])){$pop_artists = scrub_in($_POST['pop_artists']);}
if (isset ($_POST['pop_songs'])){$pop_songs = scrub_in($_POST['pop_songs']);}
if (isset ($_POST['threshold'])){$threshold = scrub_in($_POST['threshold']);} else { $threshold = conf($stats_threshold); };
if (isset ($_POST['new_artists'])){$new_artists = scrub_in($_POST['new_artists']);}
if (isset ($_POST['new_albums'])){$new_albums = scrub_in($_POST['new_albums']);}
$subject = stripslashes(scrub_in($_POST['subject']));
$message = stripslashes(scrub_in($_POST['message']));
/* Always show the header */
show_template('header');
switch ($action) {
case 'send_mail':
if (conf('demo_mode')) { break; }
//$to = "admins"; <<<<<<<<<<<<<<<<<<<< PB1DT Don't know how this came in here!.
// do the mail mojo here
if ( $to == 'all' ) {
$sql = "SELECT * FROM user WHERE email IS NOT NULL";
}
elseif ( $to == 'users' ) {
$sql = "SELECT * FROM user WHERE access='user' OR access='25' AND email IS NOT NULL";
}
elseif ( $to == 'admins' ) {
$sql = "SELECT * FROM user WHERE access='admin' OR access='100' AND email IS NOT NULL";
}
$db_result = mysql_query($sql, dbh());
$recipient = '';
while ( $u = mysql_fetch_object($db_result) ) {
$recipient .= "$u->fullname <$u->email>, ";
}
// Remove the last , from the recipient
$recipient = rtrim($recipient,",");
$from = $user->fullname."<".$user->email.">";
if (isset ($cat_stats)){
/* Before we display anything make sure that they have a catalog */
$query = "SELECT * FROM catalog";
$dbh = dbh();
$db_results = mysql_query($query, dbh());
if (!mysql_num_rows($db_results)) {
$items[] = "" . _("No Catalogs Found!") . "
";
$items[] = "" ._("Add a Catalog") . "";
show_info_box(_('Catalog Statistics'),'catalog',$items);
return false;
break;
}
$query = "SELECT count(*) AS songs, SUM(size) AS size, SUM(time) as time FROM song";
$db_result = mysql_query($query, $dbh);
$songs = mysql_fetch_assoc($db_result);
$query = "SELECT count(*) FROM album";
$db_result = mysql_query($query, $dbh);
$albums = mysql_fetch_row($db_result);
$query = "SELECT count(*) FROM artist";
$db_result = mysql_query($query, $dbh);
$artists = mysql_fetch_row($db_result);
$sql = "SELECT count(*) FROM user";
$db_result = mysql_query($sql, $dbh);
$users = mysql_fetch_row($db_result);
$time = time();
$last_seen_time = $time - 1200;
$sql = "SELECT count(DISTINCT s.username) FROM session AS s " .
"INNER JOIN user AS u ON s.username = u.username " .
"WHERE s.expire > " . $time . " " .
"AND u.last_seen > " . $last_seen_time;
$db_result = mysql_query($sql, $dbh);
$connected_users = mysql_fetch_row($db_result);
$hours = floor($songs['time']/3600);
$size = $songs['size']/1048576;
$days = floor($hours/24);
$hours = $hours%24;
$time_text = "$days ";
$time_text .= ($days == 1) ? _("day") : _("days");
$time_text .= ", $hours ";
$time_text .= ($hours == 1) ? _("hour") : _("hours");
if ( $size > 1024 ) {
$total_size = sprintf("%.2f", ($size/1024));
$size_unit = "GB";
}
else {
$total_size = sprintf("%.2f", $size);
$size_unit = "MB";
}
$stats = _('Total Users')." ".$users[0]."\n";
$stats .= _('Connected Users')." ".$connected_users[0]."\n";
$stats .= _('Albums')." ".$albums[0]."\n";
$stats .= _('Artists')." ".$artists[0]."\n";
$stats .= _('Songs')." ".$songs['songs']."\n";
$stats .= _('Catalog Size')." ".$total_size." ".$size_unit."\n";
$stats .= _('Catalog Time')." ".$time_text."\n";
$message .= "\n\nAmpache Catalog Statistics\n\n";
$message .= "$stats";
}
if (isset ($pop_albums)){
$message .= "\n\nMost Popular Albums\n\n";
$stats = new Stats();
$stats = $stats->get_top('10','album',$threshold);
foreach( $stats as $r){
$album = new Album($r[object_id]);
$palbums .= $album->name." (". $r[count].")\n";
}
$message .= "$palbums";
}
if (isset ($pop_artists)){
$message .= "\n\nMost Popular Artists\n\n";
$stats = new Stats();
$stats = $stats->get_top('10','artist',$threshold);
foreach( $stats as $r){
$artist = new Artist($r[object_id]);
$partists .= $artist->name." (". $r[count].")\n";
}
$message .= "$partists";
}
if (isset ($pop_songs)){
$message .= "\n\nMost Popular Songs\n\n";
$stats = new Stats();
$stats = $stats->get_top('10','song',$threshold);
foreach( $stats as $r){
$song = new Song($r[object_id]);
$artist = $song->get_artist_name();
$text = "$artist - $song->title";
$psongs .= $text." (". $r[count].")\n";
}
$message .= "$psongs";
}
if (isset ($new_artists)){
$sql = "SELECT DISTINCT artist FROM song ORDER BY addition_time " .
"DESC LIMIT " . conf('popular_threshold');
$db_result = mysql_query($sql, dbh());
while ( $item = mysql_fetch_row($db_result) ) {
$artist = new Artist($item[0]);
$nartists .= $artist->name."\n";
}
$message .= "\n\nLatest Artist Additions\n\n";
$message .= "$nartists";
}
if (isset ($new_albums)){
$sql = "SELECT DISTINCT album FROM song ORDER BY addition_time " .
"DESC LIMIT " . conf('popular_threshold');
$db_result = mysql_query($sql, dbh());
while ( $item = mysql_fetch_row($db_result) ) {
$album = new Album($item[0]);
$nalbums .= $album->name."\n";
}
$message .= "\n\nLatest Album Additions\n\n";
$message .= "$nalbums";
}
// woohoo!!
mail ($from, $subject, $message,
"From: $from\r\n".
"Bcc: $recipient\r\n");
/* Confirmation Send */
$url = conf('web_path') . '/admin/mail.php';
$title = _('E-mail Sent');
$body = _('Your E-mail was successfully sent.');
show_confirmation($title,$body,$url);
break;
default:
if ( empty($to) ) {
$to = 'all';
}
if ( empty($subject) ) {
$subject = "[" . conf('site_title') . "] ";
}
require (conf('prefix') . '/templates/show_mail_users.inc.php');
break;
} // end switch
show_footer();
?>