You are here

public function MediaInternetShareStreamHandler::parse in Media: ShareStream 7

2 calls to MediaInternetShareStreamHandler::parse()
MediaInternetShareStreamHandler::claim in includes/MediaInternetShareStreamHandler.inc
MediaInternetShareStreamHandler::getFileObject in includes/MediaInternetShareStreamHandler.inc

File

includes/MediaInternetShareStreamHandler.inc, line 14
Extends the MediaInternetBaseHandler class to handle ShareStream videos.

Class

MediaInternetShareStreamHandler
Implementation of MediaInternetBaseHandler.

Code

public function parse($embedCode) {
  $server = variable_get('media_sharestream_server');
  $server = str_replace('.', '\\.', $server);

  // https://example.org/ssdcms/i.do?u=*
  // https://example.org/ssdcms/ip.do?u=*
  // https://example.org/ssdcms/ipublic.do?u=*
  $patterns = array(
    '@' . $server . '/ssdcms/i\\.do\\?u=([^"\\&\\? ]+)@i',
    '@' . $server . '/ssdcms/ip\\.do\\?u=([^"\\&\\? ]+)@i',
    '@' . $server . '/ssdcms/ipublic\\.do\\?u=([^"\\&\\? ]+)@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])) {
      return file_stream_wrapper_uri_normalize('sharestream://v/' . $matches[1]);
    }
  }
}