Jump to content

Matt1972

New Members
  • Posts

    3
  • Joined

  • Last visited

Posts posted by Matt1972

  1. @Barand So are you saying replace this line:

    $num = rand (0, intval (count ($titles) / 3)) * 3;

    With this line:

    $random_title = $titles[array_rand($titles)];

    So I would end up with this:

    function random_title ()
    {
    $titles = file (“titles.txt”, FILE_IGNORE_NEW_LINES);
    $random_title = $titles[array_rand($titles)];
    return ucwords($titles[$num]);
    }

    I tried to run my script with that but it still does not work. Below is the entire php file for this script.

    <?php
    class MEmbed_xvideos
    {
    	public $url;
    	public $user_id;
    	public $category;
    	public $status;
    	public $video;
    	public $errors	= array();
    	public $debug_e = array();
    	public $debug_w = array();
    	public $message;
    	private $overflow = 500;
    	public $video_already	= 0;
    	public $video_added	= 0;
    	public $debug;
    	
    	public function __construct($url, $user_id, $category, $status, $debug) {
    		$this->url		= $url;
    		$this->user_id	= $user_id;
    		$this->category	= $category;
    		$this->status	= $status;
    		$this->debug	= $debug;
    	}
    	
    	public function get_videos() {
    		$count  = 0;
    		$curl	= new VCurl();
            $html   = clean_html($curl->saveToString($this->url));		
    		if ($html) {
    			if (preg_match_all('/<div id="video_(.*?)<\/p><\/div>/', $html, $matches)) {
    				foreach ($matches[0] as $match) {
    
    					unset($debug_e);
    					unset($debug_w);				
                        ++$count;
                        if ($count > $this->overflow) {
                            $this->errors[] = 'Overflow reached (500)! Aborting!';
                            return false;
                        }
    					
    					$video  = array(
    						'user_id'	  => $this->user_id,
    						'status'	  => $this->status,						
    						'site'        => 'xvideos',
    						'id'		  => '',
    						'embeddable'  => true,						
    						'url'         => '',
    						'titles'      => '',
    						'title'       => '',
    						'description' => '',
    						'tags'        => '',
    						'category'    => '',
    						'thumbs'      => array(),
    						'duration'    => 0,
    						'embed'       => ''	
                        );
    					
    function random_title ()
    {
    $titles = file (“titles.txt”, FILE_IGNORE_NEW_LINES);
    $random_title = $titles[array_rand($titles)];
    return ucwords($titles[$num]);
    }
    					
    					//Video ID
    					if (preg_match('/id="video_(.*?)"/', $match, $matches_id)) {
    						$video['id'] = trim($matches_id[1]);
    					} else {
    						if (!$this->debug) continue;
    						else $debug_e[] = 'ID';
    					}
    					
    					//Embed Code
    					$video['embed'] = '<iframe src="https://www.videosite.com/embedframe/' . $video['id'] . '" frameborder=0 width=' . E_WIDTH . ' height=' . E_HEIGHT . ' scrolling=no style="background-color:#000"></iframe>';					
    					if (already_added($video['embed'])) {
    						++$this->video_already;
    						continue;
    					}
    
    					//URL
    					if(preg_match('/<a href="(.*?)"/', $match, $matches_url)) {
    						$video['url'] = "http://www.videosite.com" . trim($matches_url[1]);
    					} else {
    						$this->errors[]	= 'Failed to get video URL for ID: '.$video['id'].'!';
    						if (!$this->debug) continue;
    						else $debug_e[] = 'URL';
    					}
    					
    					//Title
    					if(preg_match('/title="(.*?)"/', $match, $matches_title, $random_title)) {
    						$video['title']	= $random_title().  - My site name’;
    					} else {
    						$this->errors[]	= 'Failed to get video title for '.$video['url'].'!';
    						if (!$this->debug) continue;
    						else $debug_e[] = 'TITLE';
    					}
    					
    					//Duration
    					if(preg_match('/"duration">(.*?)</', $match, $matches_duration)) {
    						$duration = str_replace(' min',':', $matches_duration[1]);
    						$duration = str_replace(' sec','', $duration);
    						if (strpos($duration, ':') !== false) {
    							$duration = trim($duration, ':');
    							if (strpos($duration, ':') !== false) {
    								$video['duration'] = duration_to_seconds($duration);
    							} else {
    								$video['duration'] = duration_to_seconds($duration.':00');						
    							}
    						} else {
    							$video['duration'] = duration_to_seconds('00:'.$duration);
    						}							
                        } else {
    						$this->errors[]	= 'Failed to get video duration for '.$video['url'].'!';
    						if (!$this->debug) continue;
    						else $debug_e[] = 'DURATION';		
    					}
    					
    					//Thumbnails
    					if (preg_match('/data-src="(.*?)"/', $match, $matches_thumb)) {
    						$thumb_url       = $matches_thumb[1];
    						$thumb_url       = str_replace('.jpg', '', $thumb_url);
    						$thumb_url       = substr($thumb_url, 0, strrpos($thumb_url, '.'));
    						for ($i=1;$i<=20;$i++) {
    							$video['thumbs'][] = $thumb_url.'.' . $i . '.jpg';
    						}			
                        } else {
    						$this->errors[]	= 'Failed to get video thumbnails for '.$video['url'].'!';
    						if (!$this->debug) continue;
    						else $debug_e[] = 'THUMBS';	
    					}
    
    					//Get Video Page
    					$html_video	= clean_html($curl->saveToString($video['url']));
    					
    					//Categories
    					$video['category'] = '';
    					
    					//Tags
    					if (preg_match_all('/<a href="\/tags\/(.*?)">(.*?)<\/a>/', $html_video, $matches_tags)) {
    						foreach ($matches_tags[2] as $k => $v) {
    							if ($matches_tags[1][$k] != '') {
    								$video['tags'] = $video['tags'] . str_replace(' ','-',$v) . ' ';
    							}
    						}
    						$video['tags'] = trim(strtolower($video['tags']));
    
    					} else {
    						$debug_w[] = 'TAGS';
    					}
    
    					//Check Embeddable Content
    					if (!strpos($html_video, 'Embed</span>')) {
    						$video['embeddable'] = false;
    						$debug_w[] = 'EMBEDDABLE';
    						if (end($matches[0]) !== $match) continue;
    					}	
    					
    					//Debug Mode
    					if ($this->debug) {
    						echo "Match Content (". $count ."): <textarea style='width:100%' rows=10>".$match."</textarea><br>";
    						if ($debug_e) echo "Errors: " . implode(', ',$debug_e) . "<br>";
    						if ($debug_w) echo "Warnings: " . implode(', ',$debug_w) . "<br>";
    						echo "<pre>";
    						print_r($video);
    						echo "</pre>";
    						exit;
    					}
    					
    					//Add Video
    					if (add_video($video)) {
    						++$this->video_added;
    					} else {
    						$this->errors[] = 'Failed to add '.$video['url'].'!';
    					}					
    					
    				} //Foreach Loop - END
    			} else {
    				$this->errors[] = 'Failed to find embeddable videos on the specified page!';
    			}
    		} else {
    			$this->errors[] = 'Failed to get html code for specified url!';
    		}		
    		if (!$this->errors) {
    			return true;
    		}
    		return false;
    	}
    }
    ?>

     

  2. This is a section of my code that goes and gets videos from any video site. What I’m having issues with is having it post a random title, that are all in a text file called titles.txt. What I’m wanting to accomplish is have my script go pull the video embed code, the duration, the tags, etc. Which all works fine until I get to the title part where it pulls locally from the server from the text file. I'm not an advance programmer so not sure if I am even approaching this correct way. Here is the code I have that is responsible for putting the title in. I appreciate your help.

    $video = array(
    user_id => $this->user_id,
    status => $this->status,
    site => my site’,
    id => ‘’,
    embeddable => true,
    url => ‘’,
    titles => ‘’,
    title => ‘’,
    description => ‘’,
    tags => ‘’,
    category => ‘’,
    thumbs => array(),
    duration => 0,
    embed => ‘’
    );
    
    function random_title ()
    {
    $titles = file (“titles.txt”, FILE_IGNORE_NEW_LINES);
    $num = rand (0, intval (count ($titles) / 3)) * 3;
    return ucwords($titles[$num]);
    }
    
    //Title
    if(preg_match(’/title="(.*?)"/’, $match, $matches_title)) {
    $video[‘title’] = random_title().  - My site name’;
    } else {
    $this->errors[] = Failed to get video title for ‘.$video[‘url’].’!’;
    if (!$this->debug) continue;
    else $debug_e[] = TITLE’;
    }

     

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.