/**
  * Save embedding information for a File, if applicable.
  *
  * Normally this event is called through File::saveNew()
  *
  * @param File   $file       The newly inserted File object.
  *
  * @return boolean success
  */
 public function onEndFileSaveNew(File $file)
 {
     $fo = File_oembed::getKV('file_id', $file->id);
     if ($fo instanceof File_oembed) {
         common_log(LOG_WARNING, "Strangely, a File_oembed object exists for new file {$file->id}", __FILE__);
         return true;
     }
     if (isset($file->mimetype) && ('text/html' === substr($file->mimetype, 0, 9) || 'application/xhtml+xml' === substr($file->mimetype, 0, 21))) {
         try {
             $oembed_data = File_oembed::_getOembed($file->url);
             if ($oembed_data === false) {
                 throw new Exception('Did not get oEmbed data from URL');
             }
         } catch (Exception $e) {
             return true;
         }
         File_oembed::saveNew($oembed_data, $file->id);
     }
     return true;
 }
Beispiel #2
0
 /**
  * Save embedding information for this file, if applicable.
  *
  * Normally this won't need to be called manually, as File::saveNew()
  * takes care of it.
  *
  * @param array $redir_data lookup data eg from File_redirection::where()
  * @param string $given_url
  * @return boolean success
  */
 public function saveOembed($redir_data, $given_url)
 {
     if (isset($redir_data['type']) && ('text/html' === substr($redir_data['type'], 0, 9) || 'application/xhtml+xml' === substr($redir_data['type'], 0, 21)) && ($oembed_data = File_oembed::_getOembed($given_url))) {
         $fo = File_oembed::staticGet('file_id', $this->id);
         if (empty($fo)) {
             File_oembed::saveNew($oembed_data, $this->id);
             return true;
         } else {
             common_log(LOG_WARNING, "Strangely, a File_oembed object exists for new file {$file_id}", __FILE__);
         }
     }
     return false;
 }
Beispiel #3
0
 function saveNew($redir_data, $given_url)
 {
     $x = new File();
     $x->url = $given_url;
     if (!empty($redir_data['protected'])) {
         $x->protected = $redir_data['protected'];
     }
     if (!empty($redir_data['title'])) {
         $x->title = $redir_data['title'];
     }
     if (!empty($redir_data['type'])) {
         $x->mimetype = $redir_data['type'];
     }
     if (!empty($redir_data['size'])) {
         $x->size = intval($redir_data['size']);
     }
     if (isset($redir_data['time']) && $redir_data['time'] > 0) {
         $x->date = intval($redir_data['time']);
     }
     $file_id = $x->insert();
     if (isset($redir_data['type']) && 'text/html' === substr($redir_data['type'], 0, 9) && ($oembed_data = File_oembed::_getOembed($given_url)) && isset($oembed_data['json'])) {
         File_oembed::saveNew($oembed_data['json'], $file_id);
     }
     return $x;
 }