You are here

class MediaInternetFacebookVideoHandler in Media Facebook Video 7

Implementation of MediaInternetBaseHandler.

@see, hook_media_internet_providers()

Hierarchy

Expanded class hierarchy of MediaInternetFacebookVideoHandler

File

includes/MediaInternetFacebookVideoHandler.inc, line 13
Extends the MediaInternetBaseHandler class to handle Facebook videos.

View source
class MediaInternetFacebookVideoHandler extends MediaInternetBaseHandler {

  /**
   * Provides facebook patterns for matching the video ID.
   */
  public function parse($embed_code) {
    $patterns = array(
      '@facebook\\.com/.*\\/videos\\/[a-z][a-z]\\..*/(\\d+)/.*@i',
      '@facebook\\.com/video\\.php\\?v=(\\d+)@i',
      '@facebook\\.com/.*\\/videos\\/(\\d+)\\/.*@i',
      '@facebook\\.com/.*\\/posts\\/(\\d+)\\/.*@i',
    );
    foreach ($patterns as $pattern) {
      preg_match($pattern, $embed_code, $matches);

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

  /**
   * Parses embed code.
   */
  public function claim($embed_code) {
    if ($this
      ->parse($embed_code)) {
      return TRUE;
    }
  }

  /**
   * Gets file object from parsed embed code.
   */
  public function getFileObject() {
    $uri = $this
      ->parse($this->embedCode);
    $file = file_uri_to_object($uri, TRUE);
    return $file;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
MediaInternetFacebookVideoHandler::claim public function Parses embed code.
MediaInternetFacebookVideoHandler::getFileObject public function Gets file object from parsed embed code.
MediaInternetFacebookVideoHandler::parse public function Provides facebook patterns for matching the video ID.