UTC_DATE() AND duration <> 0"; if ($result = mysqli_query($connection, $ep_retrieve)) { $data=mysqli_fetch_assoc($result); $num_future_shows = intval( $data['num_future_shows'] ); } // -------------------------------------------- // Shows in the reserve pool $ep_retrieve = "SELECT COUNT(*) as num_reserve_shows FROM reservations WHERE status='RESERVE_SHOW_SUBMITTED'"; if ($result = mysqli_query($connection, $ep_retrieve)) { $data=mysqli_fetch_assoc($result); $num_reserve_shows = intval( $data['num_reserve_shows'] ); } // -------------------------------------------- // Get the number of hosts $ep_retrieve = "SELECT COUNT( DISTINCT hostid ) as num_hosts FROM hosts WHERE valid = '1'"; if ($result = mysqli_query($connection, $ep_retrieve)) { $data=mysqli_fetch_assoc($result); $num_hosts = intval( $data['num_hosts'] ); } // -------------------------------------------- // Get the next free slot $next_free_slot = "https://repo.anhonesthost.net/HPR/hpr_hub/issues/71"; // -------------------------------------------- // Get the Shortest Show $ep_retrieve = "SELECT id, duration FROM eps WHERE duration = ( SELECT MIN(duration) FROM eps WHERE duration > 0 AND id != 903)"; if ($result = mysqli_query($connection, $ep_retrieve)) { $data=mysqli_fetch_assoc($result); $min_duration_seconds = intval( $data['duration'] ); $min_duration_episode_number = intval( $data['id'] ); } // -------------------------------------------- // Get the Longest Show $ep_retrieve = "SELECT id, duration FROM eps WHERE duration = ( SELECT MAX(duration) FROM eps WHERE duration > 0 AND id != 903)"; if ($result = mysqli_query($connection, $ep_retrieve)) { $data=mysqli_fetch_assoc($result); $max_duration_seconds = intval( $data['duration'] ); $max_duration_episode_number = intval( $data['id'] ); } // -------------------------------------------- // Get the Average Show $ep_retrieve = "SELECT AVG(duration) as avg_duration FROM `eps` WHERE duration > 0"; if ($result = mysqli_query($connection, $ep_retrieve)) { $data=mysqli_fetch_assoc($result); $avg_duration_seconds = intval( $data['avg_duration'] ); } // -------------------------------------------- // playtime $ep_retrieve = "SELECT SUM(duration) as total_playtime_all_hpr_shows_seconds FROM `eps`"; if ($result = mysqli_query($connection, $ep_retrieve)) { $data=mysqli_fetch_assoc($result); $total_playtime_all_hpr_shows_seconds = intval( $data['total_playtime_all_hpr_shows_seconds'] ); $total_playtime_all_shows_seconds = $twt_duration + $total_playtime_all_hpr_shows_seconds; } $total_playtime_all_shows_human_readable = convertSecToTime( $total_playtime_all_shows_seconds ); // -------------------------------------------- // Comments $unprocessed_comments = iterator_count(new FilesystemIterator("$comment_directory", FilesystemIterator::SKIP_DOTS)); // -------------------------------------------- // Calculations $total_released_shows = $latest_episode_id + $total_twt_shows; $total_submitted_shows = $latest_episode_id + $total_twt_shows + $num_future_shows + $num_reserve_shows; $project_age_seconds = strtotime( $start_date_twt ) - $current_time; $project_age = convertSecToTime( $project_age_seconds ); $min_duration = convertSecToTime( $min_duration_seconds ); $max_duration = convertSecToTime( $max_duration_seconds ); $avg_duration = convertSecToTime( $avg_duration_seconds ); // -------------------------------------------- // Display the workflow $workflow = array(); $ep_retrieve = "SELECT status, COUNT(*) AS total FROM reservations WHERE status != 'RESERVE_SHOW_SUBMITTED' GROUP BY status;"; if ($result = mysqli_query($connection, $ep_retrieve)) { while ($row = mysqli_fetch_array($result)) { $workflow[ $row['status'] ] = $row['total']; } } // -------------------------------------------- // Shows in the reserve pool $ep_retrieve = "SELECT COUNT(*) AS num_unprocessed_shows FROM reservations WHERE status!='RESERVE_SHOW_SUBMITTED' AND status!='REQUEST_UNVERIFIED'"; if ($result = mysqli_query($connection, $ep_retrieve)) { $data=mysqli_fetch_assoc($result); $num_unprocessed_shows = intval( $data['num_unprocessed_shows'] ); } // -------------------------------------------- // Display the results $arr = array( 'stats_generated' => $current_time, 'start_date_twt' => $start_date_twt, 'rename_date_hpr' => $rename_date_hpr, 'latest_episode_release_date' => $latest_episode_release_date, 'project_age' => $project_age, 'latest_episode_id' => $latest_episode_id, 'total_twt_shows' => $total_twt_shows, 'total_released_shows' => $total_released_shows, 'num_future_shows' => $num_future_shows, 'num_reserve_shows' => $num_reserve_shows, 'total_submitted_shows' => $total_submitted_shows, 'num_hosts' => $num_hosts, 'shortest_show_number' => $min_duration_episode_number, 'shortest_show_duration' => $min_duration, 'shortest_show_seconds' => $min_duration_seconds, 'longest_show_number' => $max_duration_episode_number, 'longest_show_duration' => $max_duration, 'longest_show_seconds' => $max_duration_seconds, 'average_show_length' => $avg_duration, 'average_show_length_seconds' => $avg_duration_seconds, 'days_to_next_free_slot' => "todo", 'total_playtime_all_shows_seconds' => $total_playtime_all_shows_seconds, 'total_playtime_all_shows_human_readable' => $total_playtime_all_shows_human_readable, 'next_free_slot' => $next_free_slot, 'unprocessed_comments' => $unprocessed_comments, 'num_unprocessed_shows' => $num_unprocessed_shows, 'show_processing_workflow' => $workflow ); header('Content-Type: application/json'); header("Content-disposition: inline; filename=hpr_stats.json"); echo json_encode($arr); mysqli_close($connection); ?>