diff --git a/hub/calendar-wip.php b/hub/calendar-wip.php new file mode 100644 index 0000000..5d889ad --- /dev/null +++ b/hub/calendar-wip.php @@ -0,0 +1,367 @@ +\n"; + +// -------------------------------------------- +// Get latest published show + +$query = mysqli_query($connection, "SELECT max(date), max(id) from eps WHERE eps.date <= UTC_DATE()"); +$current_episode_array = mysqli_fetch_row($query); +$current_episode_date = $current_episode_array[0]; +$current_episode_number = $current_episode_array[1]; + +print "\n"; +print "\n"; + +// -------------------------------------------- +// Get highest scheduled or reserved show + +$query = mysqli_query($connection, "SELECT MAX(id) FROM eps as maxid;"); +$max_episode_array = mysqli_fetch_row($query); +$max_episode_number = $max_episode_array[0]; +print "\n"; + +// -------------------------------------------- +// Get the number of shows in the reserve queue. + +$query = mysqli_query($connection, "SELECT COUNT(*) as count_reserve_queue FROM reservations WHERE status = 'RESERVE_SHOW_SUBMITTED' AND ip = '127.0.0.1';"); +$response_array = mysqli_fetch_row($query); +$count_reserve_queue = $response_array[0]; +print "\n"; + +// -------------------------------------------- +// Get the number of shows in the reserve queue yet to be processed. + +$query = mysqli_query($connection, "SELECT COUNT(*) as count_reserve_queue_unprocessed FROM reservations WHERE status = 'RESERVE_SHOW_SUBMITTED' AND ip != '127.0.0.1';"); +$response_array = mysqli_fetch_row($query); +$count_reserve_queue_unprocessed = $response_array[0]; +print "\n"; + +// -------------------------------------------- +// Populate array with future shows and reservations +$show_array = array (); + +// REQUEST_UNVERIFIED → SHOW_SUBMITTED → METADATA_PROCESSED → SHOW_POSTED → MEDIA_TRANSCODED → UPLOADED_TO_IA → UPLOADED_TO_RSYNC_NET +$ep_retrieve = "SELECT hosts.host, eps.id, eps.title, eps.date FROM eps, hosts WHERE eps.valid=1 AND eps.hostid = hosts.hostid AND eps.date >= '$current_episode_date' ORDER BY date DESC"; + +$ep_retrieve = "SELECT + hosts.host, + eps.id, + eps.title, + eps.date, + COUNT( assets.extension) AS numfiles +FROM + eps + LEFT JOIN hosts ON eps.hostid = hosts.hostid + LEFT JOIN assets ON eps.id = assets.episode_id +WHERE + eps.valid = 1 + AND eps.date >= '$current_episode_date' +GROUP BY eps.id;"; + +if ($result = mysqli_query($connection, $ep_retrieve)) { + while ($row = mysqli_fetch_array($result)) { + $id = $row['id']; + $date = $row['date']; + $title = $row['title']; + $host = $row['host']; + $numfiles = $row['numfiles']; + if( isset($numfiles) and $numfiles >= 3 ) { + $status = "Finished"; + } + else { + $status = "Reserved"; + } + $show_array[$id] = array ( "date" => date('Y-m-d', strtotime($date) ), + "title" => $title, + "host" => $host, + "status" => $status + ); + } +} +// REQUEST_UNVERIFIED → SHOW_SUBMITTED → METADATA_PROCESSED → SHOW_POSTED → MEDIA_TRANSCODED → UPLOADED_TO_IA → UPLOADED_TO_RSYNC_NET + +// Populate array with currently processing shows EMAIL_LINK_CLICKED +$ep_retrieve = " +SELECT + reservations.ep_num, + reservations.ep_date, + reservations.status +FROM + reservations +WHERE + reservations.verified = 1 + AND reservations.ep_date >= '$current_episode_date' +ORDER BY + reservations.ep_date DESC"; + +if ($result = mysqli_query($connection, $ep_retrieve)) { + while ($row = mysqli_fetch_array($result)) { + $id = $row['ep_num']; + $date = $row['ep_date']; + $status = $row['status']; + $show_array[$id] = array ( "date" => date('Y-m-d', strtotime($date) ), + "title" => $status, + "host" => "Unverified", + "status" => "Processing" + ); + } +} + +// Populate array with temporary reservations. +$ep_retrieve = "SELECT r.ep_num, r.ep_date, r.timestamp + INTERVAL 1 HOUR - UTC_TIMESTAMP() AS seconds_to_expiration FROM reservations r +WHERE r.timestamp + INTERVAL 1 HOUR > UTC_TIMESTAMP() AND r.verified =0 AND r.ep_date >= '$current_episode_date' ORDER BY r.ep_date DESC"; + +if ($result = mysqli_query($connection, $ep_retrieve)) { + while ($row = mysqli_fetch_array($result)) { + $id = $row['ep_num']; + $date = $row['ep_date']; + $seconds_to_expiration = $row['seconds_to_expiration']; + $minutes = floor($seconds_to_expiration / 60) + 1; + $show_array[$id] = array ( "date" => date('Y-m-d', strtotime($date) ), + "title" => " Available again in $minutes minutes", + "host" => "Unverified", + "status" => "Locked" + ); + } +} + +$ep_retrieve = "SELECT + hosts.host, + eps.id, + eps.title, + eps.date +FROM + eps, + hosts, + assets +WHERE + eps.valid = 0 + AND eps.hostid = hosts.hostid + AND eps.id = assets.episode_id + AND eps.date >= '$current_episode_date' +ORDER BY + date DESC"; +if ($result = mysqli_query($connection, $ep_retrieve)) { + while ($row = mysqli_fetch_array($result)) { + $id = $row['id']; + $date = $row['date']; + $title = $row['title']; + $host = $row['host']; + $show_array[$id] = array ( "date" => date('Y-m-d', strtotime($date) ), + "title" => $title, + "host" => $host, + "status" => "Distributing media to the ccdn" + ); + } +} + +$ep_retrieve = "SELECT + hosts.host, + eps.id, + eps.title, + eps.date +FROM + eps, + hosts, + assets +WHERE + eps.valid = 1 + AND eps.hostid = hosts.hostid + AND eps.id = assets.episode_id + AND assets.extension = 'ogg' + AND eps.date >= '$current_episode_date' +ORDER BY + date DESC"; +if ($result = mysqli_query($connection, $ep_retrieve)) { + while ($row = mysqli_fetch_array($result)) { + $id = $row['id']; + $date = $row['date']; + $title = $row['title']; + $host = $row['host']; + $show_array[$id] = array ( "date" => date('Y-m-d', strtotime($date) ), + "title" => $title, + "host" => $host, + "status" => "Finished" + ); + } +} + + +// -------------------------------------------- +// Calculate the time to the next show + +# aria-label="" + +$next_show_date = date('Y-m-d', strtotime($show_array[$next_show_num - 1 ]["date"] . ' + 1 weekday')); +$days_to_wait = floor((strtotime($next_show_date) - strtotime(gmdate('Y-m-d')))/(60*60*24)); + +?> +
+The HPR Schedule is entirely community driven and we recommend that you decide when your show will be released. +
+ ++There are only days to wait until next free slot. Please consider ">recording a show for us. +
++request.php?id=9999">Post your show to the reserve queue if you don't care when it will be released. about.html#reserve_queue";">ⓘ +
+ ++Schedule the release day your show will be aired. about.html#scheduling_guidelines">ⓘ +
+ ++ ++ +
+If you wish to pick an available slot in the next 12 months then go directly to the request.php">request page. +
+ ++The HPR statistics are regenerated every 15 minutes and are available in stats.json">json format. Note the format is liable to change without notice.
+ diff --git a/hub/request.php b/hub/request.php index 8fcde3f..36e40a6 100644 --- a/hub/request.php +++ b/hub/request.php @@ -129,7 +129,7 @@ if (isset($_GET['id'])){ if ( $id != 9999 ) { if ( isset( $show_array[$id] ) ) { - naughty("2227263ac7171aca3214d155dec539ad The id is still too high"); + naughty("2227263ac7171aca3214d155dec539ad The id \"${id}\" is already reserved"); } } }