2023-07-02 16:47:44 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< ? php 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								header ( 'Content-Type: application/json' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								require  " /home/hpr/php/include.php " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$pos  =  strpos ( $_SERVER [ 'REQUEST_URI' ],  '?' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								if  (  !  $pos  ===  false )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  header ( " Status: 412 Precondition Failed " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  include  '412.shtml' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  file_put_contents ( $naughtyfile ,  getUserIP (),  FILE_APPEND  |  LOCK_EX  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  exit ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// --------------------------------------------
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// Clean up stale reservations
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$ip  =  $_SERVER [ " REMOTE_ADDR " ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Remove any stale requests. 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# This should be enough to deter attackers while been short enough to allow real hosts to request a show.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$query_delete_old  =  " DELETE
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FROM 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  reservations 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								WHERE 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  reservations . timestamp  +  INTERVAL  1  HOUR  <=  UTC_TIMESTAMP () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  AND  reservations . status  =  'REQUEST_UNVERIFIED' " ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$result_delete_old  =  @ mysqli_query ( $connection ,  $query_delete_old ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								logextra (  " Deleting requests older than 1 hour "  .  $result_delete_old  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Remove stale requests from this IP Address after 15 minutes. 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# This should be enough to deter attackers while been short enough to allow real hosts to request a show.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$query_delete  =  " DELETE FROM reservations WHERE reservations.ip = ' $ip ' AND reservations.timestamp + INTERVAL 15 MINUTE <= UTC_TIMESTAMP() AND reservations.status = 'REQUEST_UNVERIFIED' " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$result_delete  =  @ mysqli_query ( $connection ,  $query_delete ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								logextra (  " Remove stale requests from this  \" ${ ip } \"  IP Address after 15 minutes.  "  .  $result_delete_old  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$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 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// --------------------------------------------
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// Populate array with future shows and reservations
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$show_array  =  array  (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-01-14 20:22:36 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// REQUEST_UNVERIFIED → SHOW_SUBMITTED → METADATA_PROCESSED → SHOW_POSTED → MEDIA_TRANSCODED → UPLOADED_TO_IA → UPLOADED_TO_CCDN
 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-02 16:47:44 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								$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 , 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-14 20:22:36 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                                " status "  =>  $status , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                " workflow "  =>  $status 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-02 16:47:44 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								                              ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  }  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-14 20:22:36 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// REQUEST_UNVERIFIED → SHOW_SUBMITTED → METADATA_PROCESSED → SHOW_POSTED → MEDIA_TRANSCODED → UPLOADED_TO_IA → UPLOADED_TO_CCDN
 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-02 16:47:44 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 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 " , 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-14 20:22:36 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                                " status "  =>  " Processing " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                " workflow "  =>  $status 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-02 16:47:44 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								                              ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 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 " , 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-14 20:22:36 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                                " status "  =>  " Locked " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                " workflow "  =>  " Locked " 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-02 16:47:44 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								                              ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$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 , 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-14 20:22:36 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                                " status "  =>  " Finished " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                " workflow "  =>  " Finished " 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-02 16:47:44 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								                              ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  }  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								echo  json_encode ( $show_array ,  JSON_FORCE_OBJECT ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								?>