You are here

public function MediaInternetBrightcoveHandler::parse in Brightcove Video Connect 7.2

Same name and namespace in other branches
  1. 7.7 brightcove_media/includes/MediaInternetBrightcoveHandler.inc \MediaInternetBrightcoveHandler::parse()
  2. 7.3 brightcove_media/MediaInternetBrightcoveHandler.inc \MediaInternetBrightcoveHandler::parse()
  3. 7.4 brightcove_media/includes/MediaInternetBrightcoveHandler.inc \MediaInternetBrightcoveHandler::parse()
  4. 7.6 brightcove_media/includes/MediaInternetBrightcoveHandler.inc \MediaInternetBrightcoveHandler::parse()
3 calls to MediaInternetBrightcoveHandler::parse()
MediaInternetBrightcoveHandler::claim in brightcove_media/MediaInternetBrightcoveHandler.inc
MediaInternetBrightcoveHandler::getFileObject in brightcove_media/MediaInternetBrightcoveHandler.inc
Returns a file object which can be used for validation
MediaInternetBrightcoveHandler::validate in brightcove_media/MediaInternetBrightcoveHandler.inc

File

brightcove_media/MediaInternetBrightcoveHandler.inc, line 4

Class

MediaInternetBrightcoveHandler

Code

public function parse($embedCode) {

  // special handling for the shortened urls
  if (preg_match('#^http://bcove.me/[a-z0-9]+$#i', $embedCode)) {
    $resp = drupal_http_request($embedCode);
    if ($resp) {
      $full_url = $resp->redirect_url;
      $matches = NULL;
      preg_match('#&bctid=([0-9]+)#i', $full_url, $matches);
      if (isset($matches[1])) {
        return file_stream_wrapper_uri_normalize("brightcove://{$matches[1]}");
      }
    }
  }

  // using regexes are right here, because brightcove provides badly
  // formatted html files
  $regexes = array(
    '#^([0-9]+)$#i',
    '#name="@videoPlayer" value="([0-9]+)"#i',
    '#@videoPlayer=([0-9]+)&#i',
  );
  foreach ($regexes as $regex) {
    $matches = NULL;
    preg_match($regex, $embedCode, $matches);
    if (isset($matches[1])) {
      return file_stream_wrapper_uri_normalize("brightcove://{$matches[1]}");
    }
  }
  return NULL;
}