<?xml version="1.0" encoding="ISO-8859-1"?>
<videohoster varname="google" classname="google" active="1">
<title>google</title>
<regex>dsahkads</regex>
<author>Jason Axelrod</author>
<version>1.2.4</version>
<class_file><![CDATA[<?php
/**
* Class to fetch and handle google Data
*
*/
class vB_VideoSharingService_google extends vB_VideoSharingService
{
var $hostername = 'google';
function vB_VideoSharingService_google(&$registry)
{
parent::vB_VideoSharingService($registry);
$this->settings =& $this->registry->videohosters[$this->hostername]['settings'];
}
function verify_service(&$url)
{
$this->url = $url;
$matches = array();
if (preg_match('/http:\/\/[a-z]*?[\.]?google\.[a-z]*?\/videoplay\?docid=([A-Z0-9._%-]*)/i', $url, $matches))
{
$this->video_id = $matches[1];
return true;
}
return false;
}
function prepare_data()
{
if (!$this->verify_videoid())
{
return false;
}
//Request Video Data
$vurl = new vB_vURL($this->registry);
$vurl->set_option(VURL_URL, 'http://video.google.com/videoplay?docid=' . $this->video_id);
$vurl->set_option(VURL_USERAGENT, 'vBulletin/' . FILE_VERSION . ' | Video Directory');
$vurl->set_option(VURL_RETURNTRANSFER, 1);
$vurl->set_option(VURL_TIMEOUT, 30);
$result = $vurl->exec();
if ($vurl->fetch_error())
{
$this->set_error(VSS_ERROR_CONNECTION);
return false;
}
require_once(DIR . '/includes/class_xml.php');
$xmlobj = new vB_XML_Parser($result);
if(!$arr = $xmlobj->parse())
{
$this->set_error(VSS_ERROR_RESPONSE);
return false;
}
if (isset($arr['yt:noembed']))
{
$this->set_error(VSS_ERROR_NOEMBEDING);
return false;
}
$this->thumbnailpath = $arr['media:group']['media:thumbnail'][0]['url'];
$this->videodescription = $arr['media:group']['media:description']['value'];
$this->videotitle = $arr['media:group']['media:title']['value'];
$this->taglist = $arr['media:group']['media:keywords'];
$this->timelength = $arr['media:group']['yt:duration']['seconds'];
return true;
}
function file_save_thumbnail()
{
if (!$this->fetch_thumbnailpath() OR !$this->fetch_videoid())
{
return false;
}
require_once(DIR . '/includes/class_vurl.php');
$vurl = new vB_vURL($this->registry);
$vurl->set_option(VURL_URL, $this->fetch_thumbnailpath());
$vurl->set_option(VURL_RETURNTRANSFER, true);
$result = $vurl->exec();
$fp = fopen(DIR . '/' . $this->registry->options['videodirectory_thumbnaildir'] . '/' . $this->hostername . '/' . $this->fetch_videoid() . '.jpg', 'wb');
fwrite($fp, $result);
fclose($fp);
}
function fetch_embedcode($videoid = '', $autoplay = 1, $fullscreen = 1, $related = 0, $stats = 0)
{
$videoid = $videoid ? $videoid : $this->video_id;
return '<embed src="http://video.google.com/googleplayer.swf?docid=' . $videoid . '&autoplay=' . $autoplay . '&fs=' . $fullscreen . '&rel=' . $related . '&ap=%2526fmt%3D18" type="application/x-shockwave-flash" allowfullscreen="true" wmode="transparent" id="VideoPlayback"></embed>';
}
function fetch_videobbcode($vid, $videoid = '', $videotitle = '')
{
$videoid = $videoid ? $videoid : $this->video_id;
$videotitle = $videotitle ? $videotitle : $this->video_title;
if ($this->registry->options['videodirectory_bbcode'])
{
return '[video=' . $videotitle . ']' . $vid . '[/video]';
}
else
{
return '[' . $this->hostername . '=' . $videotitle . ']' . $videoid . '[/' . $this->hostername . ']';
}
}
function fetch_videourl($videoid = '')
{
$videoid = $videoid ? $videoid : $this->video_id;
return 'http://video.google.com/videoplay?docid=' . $videoid;
}
}
?>]]></class_file>
</videohoster>