2020-05-16 20:18:32 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< ? php 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-23 23:47:15 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								require  'Database.php' ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-02 16:15:12 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$ffmpeg  =  'ffmpeg' ;  //or: /usr/bin/ffmpeg , or /usr/local/bin/ffmpeg - depends on your installation (type which ffmpeg into a console to find the install path)
 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-23 23:47:15 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$conn  =  Database :: getInstance () -> getConnection (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-05-16 20:18:32 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								$arr  =  scandir ( " ../videos/prn/ " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-05-23 23:47:15 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$all  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$added  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-27 21:35:02 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$deleted  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-23 23:47:15 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$failed  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-05-16 20:18:32 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								foreach  ( $arr  as  $elem )  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-23 23:47:15 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  ( $elem  !=  " . "  &&  $elem  !=  " .. " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $query  =  " SELECT * FROM videos WHERE movie_name = ' "  .  mysqli_real_escape_string ( $conn ,  $elem )  .  " ' " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $result  =  $conn -> query ( $query ); 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-27 21:35:02 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        // insert if not available in db
 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-23 23:47:15 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        if  ( ! mysqli_fetch_assoc ( $result ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $pic  =  shell_exec ( " ffmpeg -hide_banner -loglevel panic -ss 00:04:00 -i  \" ../videos/prn/ $elem\ "  - vframes  1  - q : v  2  - f  singlejpeg  pipe : 1  2 >/ dev / null " );
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $image_base64  =  base64_encode ( $pic ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $image  =  'data:image/jpeg;base64,'  .  $image_base64 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-02 16:15:12 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            $video_attributes  =  _get_video_attributes ( $elem ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $duration  =  60  *  $video_attributes [ 'hours' ]  +  $video_attributes [ 'mins' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $query  =  " INSERT INTO videos(movie_name,movie_url,thumbnail,quality,length) 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            VALUES  ( '" . mysqli_real_escape_string($conn, $elem) . "' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            '" . mysqli_real_escape_string($conn, ' videos / prn / ' . $elem) . "' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            '$image' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            '" . $video_attributes[' height '] . "' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            '$duration' ) " ;
 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-23 23:47:15 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            if  ( $conn -> query ( $query )  ===  TRUE )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                echo ( 'successfully added '  .  $elem  .  "  to video gravity \n " ); 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-02 16:15:12 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                $last_id  =  $conn -> insert_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                // full hd
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                if  ( $video_attributes [ 'height' ]  >=  1080 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                    $query  =  " INSERT INTO video_tags(video_id,tag_id) VALUES ( $last_id ,2) " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                    if  ( $conn -> query ( $query )  !==  TRUE )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                        echo  " failed to add tag here. \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                if  ( $video_attributes [ 'height' ]  >=  720  &&  $video_attributes [ 'height' ]  <  1080 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                    $query  =  " INSERT INTO video_tags(video_id,tag_id) VALUES ( $last_id ,4) " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                    if  ( $conn -> query ( $query )  !==  TRUE )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                        echo  " failed to add tag here. \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                if  ( $video_attributes [ 'height' ]  <  720 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                    $query  =  " INSERT INTO video_tags(video_id,tag_id) VALUES ( $last_id ,3) " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                    if  ( $conn -> query ( $query )  !==  TRUE )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                        echo  " failed to add tag here. \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                } 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-23 23:47:15 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                $added ++ ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-27 21:35:02 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                $all ++ ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-23 23:47:15 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            }  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-27 21:35:02 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                echo ( 'errored item: '  .  $elem  .  " \n " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                echo ( '{"data":"'  .  $conn -> error  .  '"}\n' ); 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-23 23:47:15 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                $failed ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-27 21:35:02 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $all ++ ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-23 23:47:15 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-16 20:18:32 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-23 23:47:15 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-05-27 21:35:02 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$query  =  " SELECT COUNT(*) as count FROM videos " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$result  =  $conn -> query ( $query ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$r  =  mysqli_fetch_assoc ( $result ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								if  ( $all  <  $r [ 'count' ])  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    echo  " should be in gravity:  "  .  $all  .  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    echo  " really in gravity:  "  .  $r [ 'count' ]  .  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    echo  " cleaning up gravity \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $query  =  " SELECT movie_id,movie_url FROM videos " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $result  =  $conn -> query ( $query ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    while  ( $r  =  mysqli_fetch_assoc ( $result ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( ! file_exists ( " ../ "  .  $r [ 'movie_url' ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            $query  =  " DELETE FROM videos WHERE movie_id=' "  .  $r [ 'movie_id' ]  .  " ' " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            if  ( $conn -> query ( $query )  ===  TRUE )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                echo ( 'successfully deleted '  .  $r [ 'movie_url' ]  .  "  from video gravity \n " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                $deleted ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                echo  " failed to delete  "  .  $r [ 'movie_url' ]  .  "  from gravity:  "  .  $conn -> error  .  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// calculate size of databse here
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$size  =  - 1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$query  =  " SELECT table_schema AS  \" Database \" , 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                        ROUND ( SUM ( data_length  +  index_length )  /  1024  /  1024 ,  3 )  AS  \ " Size \"  
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                        FROM  information_schema . TABLES  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                        WHERE  TABLE_SCHEMA = 'hub' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                        GROUP  BY  table_schema ; " ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$result  =  $conn -> query ( $query ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								if  ( $result -> num_rows  ==  1 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $row  =  $result -> fetch_assoc (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $size  =  $row [ " Size " ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-05-23 23:47:15 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								echo  " Total gravity:  "  .  $all  .  " \n " ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-27 21:35:02 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								echo  " Size of Databse is:  "  .  $size  .  " MB \n " ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-23 23:47:15 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								echo  " added in this run:  "  .  $added  .  " \n " ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-27 21:35:02 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								echo  " deleted in this run:  "  .  $deleted  .  " \n " ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-02 16:15:12 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								echo  " errored in this run:  "  .  $failed  .  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								function  _get_video_attributes ( $video ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    global  $ffmpeg ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $command  =  " $ffmpeg  -i  \" ../videos/prn/ $video\ "  - vstats  2 >& 1 " ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $output  =  shell_exec ( $command ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $regex_sizes  =  " /Video: ([^,]*), ([^,]*), ([0-9] { 1,4})x([0-9] { 1,4})/ " ;  // or : $regex_sizes = "/Video: ([^\r\n]*), ([^,]*), ([0-9]{1,4})x([0-9]{1,4})/"; (code from @1owk3y)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ( preg_match ( $regex_sizes ,  $output ,  $regs ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $codec  =  $regs  [ 1 ]  ?  $regs  [ 1 ]  :  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $width  =  $regs  [ 3 ]  ?  $regs  [ 3 ]  :  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $height  =  $regs  [ 4 ]  ?  $regs  [ 4 ]  :  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $regex_duration  =  " /Duration: ([0-9] { 1,2}):([0-9] { 1,2}):([0-9] { 1,2}).([0-9] { 1,2})/ " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ( preg_match ( $regex_duration ,  $output ,  $regs ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $hours  =  $regs  [ 1 ]  ?  $regs  [ 1 ]  :  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $mins  =  $regs  [ 2 ]  ?  $regs  [ 2 ]  :  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $secs  =  $regs  [ 3 ]  ?  $regs  [ 3 ]  :  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $ms  =  $regs  [ 4 ]  ?  $regs  [ 4 ]  :  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  array ( 'codec'  =>  $codec , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        'width'  =>  $width , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        'height'  =>  $height , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        'hours'  =>  $hours , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        'mins'  =>  $mins , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        'secs'  =>  $secs , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        'ms'  =>  $ms 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}