diff options
author | Sem <sembrestels@riseup.net> | 2011-11-06 01:30:19 +0100 |
---|---|---|
committer | Sem <sembrestels@riseup.net> | 2011-11-06 01:30:19 +0100 |
commit | c2a680f932b589ada25a5c4c95523ffe07976b79 (patch) | |
tree | a00bef321918ea9cd567a3a4759805ab16912e08 /actions/videolist/tubesearch.php | |
parent | d7ac68a7db932618c051442210614b9b6484c702 (diff) | |
download | elgg-c2a680f932b589ada25a5c4c95523ffe07976b79.tar.gz elgg-c2a680f932b589ada25a5c4c95523ffe07976b79.tar.bz2 |
Reordered actions (deleted some).
Diffstat (limited to 'actions/videolist/tubesearch.php')
-rw-r--r-- | actions/videolist/tubesearch.php | 316 |
1 files changed, 316 insertions, 0 deletions
diff --git a/actions/videolist/tubesearch.php b/actions/videolist/tubesearch.php new file mode 100644 index 000000000..761bbb41e --- /dev/null +++ b/actions/videolist/tubesearch.php @@ -0,0 +1,316 @@ +<?php +/** + * Elgg Video Plugin + * This plugin allows users to create a library of youtube/vimeo/metacafe videos + * @file - allows search for video from vimeo/youtube/and metacafe + * @package Elgg + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Prateek Choudhary <synapticfield@gmail.com> + * @copyright Prateek Choudhary + */ + +// Get the current page's owner +//set_page_owner($_SESSION['container_guid']); + +$page_ownerx = get_entity(get_input('container')); +if(!$page_ownerx) { + $page_ownerx = get_user_by_username(get_input('container')); +} +set_page_owner($page_ownerx->getGUID()); +$page_owner = page_owner_entity(); + +if($page_owner->type == "group") { + $container = "group:".$page_ownerx->getGUID(); +} else { + $container = $page_ownerx->username; +} + +if ($page_owner === false || is_null($page_owner)) { + $page_owner = $_SESSION['user']; + set_page_owner($_SESSION['guid']); +} + +$queryFeed = get_input('q'); +$start_index = get_input('start_index'); +$results_perpage = 10; +$queryCatgory = get_input('page'); +if (!isset($queryFeed) || empty($queryFeed)) { + +} else { + $q = $queryFeed; + if($queryCatgory == "youtube") { + $feedURL = "http://gdata.youtube.com/feeds/api/videos?vq=".$queryFeed."&orderby=relevance&start-index=".$start_index."&max-results=10"; + $sxml = simplexml_load_file($feedURL); + + $counts = $sxml->children('http://a9.com/-/spec/opensearchrss/1.0/'); + $total = $counts->totalResults; + $startOffset = $counts->startIndex; + $endOffset = ($startOffset-1) + $counts->itemsPerPage; + + $body = '<div class="pagination">'; + $rem = floor($total/10); + $rem*=10; + if($rem<$total) + $last = $rem+1; + $lpVid = $total - $rem; + if($startOffset==1 && ($endOffset)==$total){} + else if($startOffset==1 && ($endOffset)<$total){ + $body .= '<a href="javascript:void(0);">first</a> | '; + $body .= '<a href="javascript:void(0);">previous</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.($endOffset+1).');">next</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.$last.');">last</a>'; + } + else if($startOffset>1 && ($endOffset)<$total){ + $body .= '<a href="javascript:sendSearchRequest(1);">first</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.($startOffset-10).');">previous</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.($endOffset+1).');">next</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.$last.');">last</a>'; + } + else if($startOffset>1 && ($endOffset+$lpVid)>=$total){ + $body .= '<a href="javascript:sendSearchRequest(1);">first</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.($startOffset-10).');">previous</a> | '; + $body .= '<a href="javascript:void(0);">next</a> | '; + $body .= '<a href="javascript:void(0);">last</a>'; + } + $body .= '</div>'; + $body .= '<div id="videosearch_results">'; + $k = 0;$counter = 0; + foreach ($sxml->entry as $entry) { + $k++; + $media = $entry->children('http://search.yahoo.com/mrss/'); + $attrs = $media->group->player->attributes(); + $watch = $attrs['url']; + $vid_array = explode("?v=", $watch); + if(preg_match("/&/", $vid_array[1])){ + $vid_array = explode("&", $vid_array[1]); + $vid_array[1] = $vid_array[0]; + } + + $attrs = $media->group->thumbnail[0]->attributes(); + $thumbnail = $attrs['url']; + $yt = $media->children('http://gdata.youtube.com/schemas/2007'); + $attrs = $yt->duration->attributes(); + $length = $attrs['seconds']; + $gd = $entry->children('http://schemas.google.com/g/2005'); + if ($gd->rating) { + $attrs = $gd->rating->attributes(); + $rating = $attrs['average']; + } else { + $rating = 0; + } + $tags = array(); + $tags[] = $media->group->keywords; + + $showEncodedVideo = preg_replace('/(http:)(\/\/)(www.)([^ \/"]*)([^ >"]*)watch\?(v=)([^ >"]*)/i', '$1$2$3$4$5v/$7', $watch); + $body .= '<div class="video_entity clearfloat"><table id="parentTab" cellpadding="0" cellspacing="0" border="0">'; + $body .= '<tr class="searchvideorow">'; + + $body .= '<td class="tabcellText" width="15%">'; + $body .= "<span><a href=\"javascript:void(0);\" onclick=\"showV_idFeed('".$showEncodedVideo."', ".$k.")\"><img src=\"".$thumbnail."\" width=\"90%\" height=\"90%\"/></a></span>"; + $body .= '<div id="vidContainer'.$k.'" class="video_popup"></div></td>'; + + $body .= '<td class="tabcellDesc" width="60%">'; + $body .= "<p class='entity_title'><a href=\"javascript:void(0);\" onclick=\"showV_idFeed('".$showEncodedVideo."', ".$k.")\">".$media->group->title."</a></p>"; + $body .= "<p class='entity_subtext'><b>Duration : </b>" . sprintf("%0.2f", $length/60) . " min.<br /><b>user rating : </b>".$rating."<br/>"; + $body .= "<b>Description : </b>".substr($media->group->description, 0, 140)." ...</p>"; + $body .= '</td>'; + + $body .= "<td class='video_actions'><a class='action_button small' onclick=\"javascript:showV_idFeed('".$showEncodedVideo."', ".$k.")\">".elgg_echo('videolist:play:video')."</a> <a class='action_button small' href=\"".elgg_get_site_url()."videolist/new/".$container."/title_videourl/".$vid_array[1]."/page/".$queryCatgory."\">".elgg_echo('videolist:add:video')."</a></td>"; + + $body .= '</tr>'; + $body .= '</table></div>'; + } + $body .= '</div>'; + print $body; + } else if($queryCatgory == "metacafe") { + $feedURL = "http://www.metacafe.com/api/videos/?vq=".$queryFeed."&orderby=rating&start-index=".$start_index."&max-results=10"; + + $sxml = new DomDocument; + $sxml->load($feedURL); + $total = 999; + $startOffset = $start_index; + $endOffset = ($startOffset-1) + $results_perpage; + + $body = '<div class="pagination">'; + $rem = floor($total/10); + $rem*=10; + if($rem<$total) { + $last = $rem+1; + } + $lpVid = $total - $rem; + if($startOffset==1 && ($endOffset)==$total) { + + } else if($startOffset==1 && ($endOffset)<$total){ + $body .= '<a href="javascript:void(0);">first</a> | '; + $body .= '<a href="javascript:void(0);">previous</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.($endOffset+1).');">next</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.$last.');">last</a>'; + } else if($startOffset>1 && ($endOffset)<$total) { + $body .= '<a href="javascript:sendSearchRequest(1);">first</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.($startOffset-10).');">previous</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.($endOffset+1).');">next</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.$last.');">last</a>'; + } else if($startOffset>1 && ($endOffset+$lpVid)>=$total) { + $body .= '<a href="javascript:sendSearchRequest(1);">first</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.($startOffset-10).');">previous</a> | '; + $body .= '<a href="javascript:void(0);">next</a> | '; + $body .= '<a href="javascript:void(0);">last</a>'; + } + + $body .= '</div>'; + $k = 0; + $body .= '<div id="videosearch_results">'; + $myitem = $sxml->getElementsByTagName('item'); + foreach($myitem as $searchNode) { + $k++; + $xmlTitle = $searchNode->getElementsByTagName("title"); + $valueTitle = $xmlTitle->item(0)->nodeValue; + + $xmlLink = $searchNode->getElementsByTagName("link"); + $valueLink = $xmlLink->item(0)->nodeValue; + + $xmlDesc = $searchNode->getElementsByTagName("description"); + $valueDesc = $xmlDesc->item(0)->nodeValue; + + $pattern = '/<img[^>]+src[\\s=\'"]'; + $pattern .= '+([^"\'>\\s]+)/is'; + if(preg_match($pattern,$valueDesc,$match)){ + $thumbnail = $match[1]; + } + + $pattern = '/<a[^>]+href[\\s=\'"]'; + $pattern .= '+([^"\'>\\s]+)/is'; + if(preg_match($pattern,$valueDesc,$match)){ + $anchor_src = $match[1]; + } + + $encodedVideoUrlArray = explode("/watch/", $valueLink); + $showEncodedVideo = $encodedVideoUrlArray[1]; + $metacafevideoIdArray = explode("/", $showEncodedVideo); + + $ot = "<p>"; + $ct = "</p>"; + $string = trim($valueDesc); + $start = intval(strpos($string, $ot) + strlen($ot)); + $desc_src = substr($string,$start,intval(strpos($string,$ct) - $start)); + + $body .= '<div class="video_entity clearfloat">'; + $body .= '<table id="parentTab" cellpadding="0" cellspacing="0" border="0">'; + $body .= '<tr class="searchvideorow">'; + + $body .= '<td class="tabcellText" width="15%">'; + $body .= "<span><a href=\"javascript:void(0);\" onclick=\"showV_idFeedMetacafe('".$showEncodedVideo."', ".$k.")\"><img src=\"".$thumbnail."\" width=\"90%\" height=\"90%\"/></a></span>"; + $body .= '<div id="vidContainer'.$k.'" class="video_popup"></div></td>'; + + $body .= '<td class="tabcellDesc" width="60%">'; + $body .= "<p class='entity_title'><a href=\"javascript:void(0);\" onclick=\"showV_idFeedMetacafe('".$showEncodedVideo."', ".$k.")\">".$valueTitle."</a></p>"; + $body .= "<p class='entity_subtext'><b>Description : </b>".$desc_src."</p>"; + $body .= '</td>'; + + $body .= "<td class='video_actions'><a class='action_button small' onclick=\"javascript:showV_idFeedMetacafe('".$showEncodedVideo."', ".$k.")\">".elgg_echo('videolist:play:video')."</a> <a class='action_button small' href=\"".elgg_get_site_url()."videolist/new/".$container."/title_videourl/".$metacafevideoIdArray[0]."/page/".$queryCatgory."\">".elgg_echo('videolist:add:video')."</a></td>"; + + $body .= '</tr>'; + $body .= '</table>'; + $body .= '</div>'; + } + $body .= '</div>'; + print $body; + } else if($queryCatgory == "vimeo") { + require_once(dirname(dirname(__FILE__)) . "/models/lib/class.vimeo.php"); + // Now lets do the search query. We will get an response object containing everything we need + $oResponse = VimeoVideosRequest::search($queryFeed); + + // We want the result videos as an array of objects + $aoVideos = $oResponse->getVideos(); + + // Just for code completion + $oVideo = new VimeoVideoEntity(); + + $total = count($aoVideos); + $startOffset = $start_index; + + $endOffset = ($startOffset-1) + $results_perpage; + $body = '<div class="pagination">'; + $rem = floor($total/10); + $rem*=10; + if($rem<$total) { + $last = $rem+1; + } + $lpVid = $total - $rem; + if($startOffset==1 && ($endOffset)==$total) { + + } else if($startOffset==1 && ($endOffset)<$total) { + $body .= '<a href="javascript:void(0);">first</a> | '; + $body .= '<a href="javascript:void(0);">previous</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.($endOffset+1).');">next</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.$last.');">last</a>'; + } else if($startOffset>1 && ($endOffset)<$total) { + $body .= '<a href="javascript:sendSearchRequest(1);">first</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.($startOffset-10).');">previous</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.($endOffset+1).');">next</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.$last.');">last</a>'; + } else if($startOffset>1 && ($endOffset+$lpVid)>=$total) { + $body .= '<a href="javascript:sendSearchRequest(1);">first</a> | '; + $body .= '<a href="javascript:sendSearchRequest('.($startOffset-10).');">previous</a> | '; + $body .= '<a href="javascript:void(0);">next</a> | '; + $body .= '<a href="javascript:void(0);">last</a>'; + } + $body .= '</div>'; + $body .= '<div id="videosearch_results">'; + $counter = 0;$k = 0; + foreach($aoVideos as $oVideo) { + $k++; + if(($counter > $startOffset) && ($counter < $endOffset)) { + //get all thumbnails + $aThumbnails = array(); + foreach($oVideo->getThumbnails() as $oThumbs) { + $aThumbnails[] = $oThumbs->getImageContent(); + } + + foreach($aThumbnails as $thumbnailArray){ + $thumbnail = $thumbnailArray; + break; + } + //print_r($oVideo); + $title = $oVideo->getTitle(); + $description = $oVideo->getCaption(); + $url = $oVideo->getUrl(); + $rating = $oVideo->getNumberOfLikes(); + $playedTimes = $oVideo->getNumberOfPlays(); + // Print all tags + $aTags = array(); + foreach($oVideo->getTags() as $oTag) { + $aTags[] = $oTag->getTag(); + } + $play_idArray = explode("http://vimeo.com/", $url); + $embedidArray = explode("/", $play_idArray[1]); + $body .= '<div class="video_entity clearfloat">'; + $body .= '<table id="parentTab" cellpadding="0" cellspacing="0" border="0">'; + $body .= '<tr class="searchvideorow">'; + + $body .= '<td class="tabcellText" width="15%">'; + $body .= "<span><a href=\"javascript:showV_idFeedVimeo('".$embedidArray[0]."', ".$k.")\"><img src=\"".$thumbnail."\" width=\"90%\" height=\"90%\"/></a></span>"; + $body .= '<div id="vidContainer'.$k.'" class="video_popup"></div></td>'; + + $body .= '<td class="tabcellDesc" width="60%">'; + $body .= "<p class='entity_title'><a href=\"javascript:void(0);\" onclick=\"javascript:showV_idFeedVimeo('".$embedidArray[0]."', ".$k.")\">".$title."</a></p>"; + $body .= "<p class='entity_subtext'><b>User Likes : </b>".$rating."<br/>"; + $body .= "<b>Played : </b>".$playedTimes." times<br/>"; + $body .= "<b>Description : </b>".$description." ...<br/>"; + $body .= "<b>Tags : </b>".implode(', ', $aTags)."</p>"; + $body .= '</td>'; + + $body .= "<td class='video_actions'><a class='action_button small' onclick=\"javascript:showV_idFeedVimeo('".$embedidArray[0]."', ".$k.")\">".elgg_echo('videolist:play:video')."</a> <a class='action_button small' href=\"".elgg_get_site_url()."videolist/new/".$container."/title_videourl/".$embedidArray[0]."/page/".$queryCatgory."\">".elgg_echo('videolist:add:video')."</a></td>"; + + $body .= '</tr>'; + $body .= '</table>'; + $body .= '</div>'; + } + $counter++; + } + $body .= '</div>'; + print $body; + } +} + +exit; |