From f399afdd2e3cc072efaca069b7a874c7801b31f6 Mon Sep 17 00:00:00 2001 From: Steve Clay Date: Mon, 9 Apr 2012 17:05:57 -0400 Subject: switched to platform classes. see https://github.com/Elgg/videolist/issues/4 --- lib/Videolist/Platform/Bliptv.php | 39 ++++++++++++++++++++++++++++ lib/Videolist/Platform/Gisstv.php | 51 +++++++++++++++++++++++++++++++++++++ lib/Videolist/Platform/Metacafe.php | 39 ++++++++++++++++++++++++++++ lib/Videolist/Platform/Vimeo.php | 41 +++++++++++++++++++++++++++++ lib/Videolist/Platform/Youtube.php | 38 +++++++++++++++++++++++++++ lib/Videolist/PlatformInterface.php | 23 +++++++++++++++++ 6 files changed, 231 insertions(+) create mode 100644 lib/Videolist/Platform/Bliptv.php create mode 100644 lib/Videolist/Platform/Gisstv.php create mode 100644 lib/Videolist/Platform/Metacafe.php create mode 100644 lib/Videolist/Platform/Vimeo.php create mode 100644 lib/Videolist/Platform/Youtube.php create mode 100644 lib/Videolist/PlatformInterface.php (limited to 'lib/Videolist') diff --git a/lib/Videolist/Platform/Bliptv.php b/lib/Videolist/Platform/Bliptv.php new file mode 100644 index 000000000..6956e060d --- /dev/null +++ b/lib/Videolist/Platform/Bliptv.php @@ -0,0 +1,39 @@ + 'bliptv', + 'video_id' => $parsed['path'], + ); + } + + public function getData($parsed) + { + $video_id = $parsed['video_id']; + + $buffer = file_get_contents('http://blip.tv'.$video_id.'?skin=rss'); + $xml = new SimpleXMLElement($buffer); + + return array( + 'title' => current($xml->xpath('/rss/channel/item/title')), + 'description' => strip_tags(current($xml->xpath('/rss/channel/item/description'))), + 'thumbnail' => current($xml->xpath('/rss/channel/item/media:thumbnail/@url')), + 'embedurl' => current($xml->xpath('/rss/channel/item/blip:embedUrl')), + ); + } +} diff --git a/lib/Videolist/Platform/Gisstv.php b/lib/Videolist/Platform/Gisstv.php new file mode 100644 index 000000000..f811619a8 --- /dev/null +++ b/lib/Videolist/Platform/Gisstv.php @@ -0,0 +1,51 @@ + 'gisstv', + 'video_id' => $video_id, + ); + } + + public function getData($parsed) + { + $video_id = $parsed['video_id']; + + $buffer = file_get_contents('http://giss.tv/dmmdb//rss.php'); + $xml = new SimpleXMLElement($buffer); + + $data = array(); + foreach($xml->xpath('/rss/channel/item') as $item){ + if ($item->link === 'http://giss.tv/dmmdb//contents/'.$video_id) { + $data['title'] = $item->title; + $data['description'] = strip_tags($item->description); + $data['thumbnail'] = $item->thumbnail; + break; + } + } + return $data; + } +} diff --git a/lib/Videolist/Platform/Metacafe.php b/lib/Videolist/Platform/Metacafe.php new file mode 100644 index 000000000..3cf2fb8ce --- /dev/null +++ b/lib/Videolist/Platform/Metacafe.php @@ -0,0 +1,39 @@ + 'metacafe', + 'video_id' => $path[2], + ); + } + + public function getData($parsed) + { + $video_id = $parsed['video_id']; + + $buffer = file_get_contents("http://www.metacafe.com/api/item/$video_id"); + $xml = new SimpleXMLElement($buffer); + + return array( + 'title' => current($xml->xpath('/rss/channel/item/title')), + 'description' => strip_tags(current($xml->xpath('/rss/channel/item/description'))), + 'thumbnail' => current($xml->xpath('/rss/channel/item/media:thumbnail/@url')), + 'embedurl' => current($xml->xpath('/rss/channel/item/media:content/@url')), + ); + } +} diff --git a/lib/Videolist/Platform/Vimeo.php b/lib/Videolist/Platform/Vimeo.php new file mode 100644 index 000000000..82bd57309 --- /dev/null +++ b/lib/Videolist/Platform/Vimeo.php @@ -0,0 +1,41 @@ + 'vimeo', + 'video_id' => $path[1], + ); + } + + public function getData($parsed) + { + $video_id = $parsed['video_id']; + + $buffer = file_get_contents("http://vimeo.com/api/v2/video/$video_id.xml"); + $xml = new SimpleXMLElement($buffer); + + $videos = $xml->children(); + $video = $videos[0]; + + return array( + 'title' => $video->title, + 'description' => strip_tags($video->description), + 'thumbnail' => $video->thumbnail_medium, + ); + } +} diff --git a/lib/Videolist/Platform/Youtube.php b/lib/Videolist/Platform/Youtube.php new file mode 100644 index 000000000..41c7d1252 --- /dev/null +++ b/lib/Videolist/Platform/Youtube.php @@ -0,0 +1,38 @@ + 'youtube', + 'video_id' => $query['v'], + ); + } + + public function getData($parsed) + { + $video_id = $parsed['video_id']; + + $buffer = file_get_contents('http://gdata.youtube.com/feeds/api/videos/'.$video_id); + $xml = new SimpleXMLElement($buffer); + + return array( + 'title' => $xml->title, + 'description' => strip_tags($xml->content), + 'thumbnail' => "http://img.youtube.com/vi/$video_id/default.jpg", + ); + } +} diff --git a/lib/Videolist/PlatformInterface.php b/lib/Videolist/PlatformInterface.php new file mode 100644 index 000000000..25ca019e9 --- /dev/null +++ b/lib/Videolist/PlatformInterface.php @@ -0,0 +1,23 @@ +