You are here

public function MediaInternetVimeoHandler::parse in Media: Vimeo 7.2

Same name and namespace in other branches
  1. 7 includes/MediaInternetVimeoHandler.inc \MediaInternetVimeoHandler::parse()
3 calls to MediaInternetVimeoHandler::parse()
MediaInternetVimeoHandler::claim in includes/MediaInternetVimeoHandler.inc
MediaInternetVimeoHandler::getFileObject in includes/MediaInternetVimeoHandler.inc
MediaInternetVimeoHandler::getOEmbed in includes/MediaInternetVimeoHandler.inc
Returns information about the media.

File

includes/MediaInternetVimeoHandler.inc, line 14
Extends the MediaInternetBaseHandler class to handle Vimeo videos.

Class

MediaInternetVimeoHandler
Implementation of MediaInternetBaseHandler.

Code

public function parse($embedCode) {

  // http://vimeo.com/*
  // http://vimeo.com/video/*
  // http://vimeo.com/groups/*/videos/*
  // http://vimeo.com/channels/*/*
  // http://vimeo.com/album/*/video/*
  $patterns = array(
    '@vimeo\\.com/(\\d+)@i',
    '@vimeo\\.com/video/(\\d+)@i',
    '@vimeo\\.com/groups/.+/videos/(\\d+)@i',
    '@vimeo\\.com/channels/.+/(\\d+)@i',
    '@vimeo\\.com/album/.+/video/(\\d+)@i',
  );
  foreach ($patterns as $pattern) {
    preg_match($pattern, $embedCode, $matches);

    // @TODO: Parse is called often. Refactor so that valid ID is checked
    // when a video is added, but not every time the embedCode is parsed.
    if (isset($matches[1]) && self::validId($matches[1])) {
      return file_stream_wrapper_uri_normalize('vimeo://v/' . $matches[1]);
    }
  }
}