X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FFile.php;h=e04a9d5255ad50c85c840e3563e58ed0017610b9;hb=093857c582a68b39e0d65523d27f25ede7b7fed6;hp=1c64b4d335ac0b867f760c2569b43d4cce164514;hpb=6d60d74093005992701418edda5be4422e46262f;p=quix0rs-gnu-social.git diff --git a/classes/File.php b/classes/File.php index 1c64b4d335..e04a9d5255 100644 --- a/classes/File.php +++ b/classes/File.php @@ -1,7 +1,7 @@ . */ -if (!defined('LACONICA')) { exit(1); } +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; require_once INSTALLDIR.'/classes/File_redirection.php'; @@ -78,14 +78,14 @@ class File extends Memcached_DataObject $file_id = $x->insert(); if (isset($redir_data['type']) - && ('text/html' === substr($redir_data['type'], 0, 9)) + && (('text/html' === substr($redir_data['type'], 0, 9) || 'application/xhtml+xml' === substr($redir_data['type'], 0, 21))) && ($oembed_data = File_oembed::_getOembed($given_url))) { File_oembed::saveNew($oembed_data, $file_id); } return $x; } - function processNew($given_url, $notice_id) { + function processNew($given_url, $notice_id=null) { if (empty($given_url)) return -1; // error, no url to process $given_url = File_redirection::_canonUrl($given_url); if (empty($given_url)) return -1; // error, no url to process @@ -94,9 +94,15 @@ class File extends Memcached_DataObject $file_redir = File_redirection::staticGet('url', $given_url); if (empty($file_redir)) { $redir_data = File_redirection::where($given_url); - $redir_url = $redir_data['url']; + if (is_array($redir_data)) { + $redir_url = $redir_data['url']; + } elseif (is_string($redir_data)) { + $redir_url = $redir_data; + } else { + throw new ServerException("Can't process url '$given_url'"); + } // TODO: max field length - if ($redir_url === $given_url || strlen($redir_url) > 255) { + if ($redir_url === $given_url || strlen($redir_url) > 255) { $x = File::saveNew($redir_data, $given_url); $file_id = $x->id; } else { @@ -119,7 +125,9 @@ class File extends Memcached_DataObject } } - File_to_post::processNew($file_id, $notice_id); + if (!empty($notice_id)) { + File_to_post::processNew($file_id, $notice_id); + } return $x; } @@ -204,10 +212,8 @@ class File extends Memcached_DataObject $enclosure->modified=$this->modified; $enclosure->size=$this->size; $enclosure->mimetype=$this->mimetype; - - if(isset($this->filename)){ - return $enclosure; - }else{ + + if(! isset($this->filename)){ $notEnclosureMimeTypes = array('text/html','application/xhtml+xml'); $mimetype = strtolower($this->mimetype); $semicolon = strpos($mimetype,';'); @@ -215,9 +221,9 @@ class File extends Memcached_DataObject $mimetype = substr($mimetype,0,$semicolon); } if(in_array($mimetype,$notEnclosureMimeTypes)){ - $ombed = File_oembed::staticGet('file_id',$this->id); + $oembed = File_oembed::staticGet('file_id',$this->id); if($oembed){ - $mimetype = strtolower($ombed->mimetype); + $mimetype = strtolower($oembed->mimetype); $semicolon = strpos($mimetype,';'); if($semicolon){ $mimetype = substr($mimetype,0,$semicolon); @@ -225,19 +231,16 @@ class File extends Memcached_DataObject if(in_array($mimetype,$notEnclosureMimeTypes)){ return false; }else{ - if($ombed->mimetype) $enclosure->mimetype=$ombed->mimetype; - if($ombed->url) $enclosure->url=$ombed->url; - if($ombed->title) $enclosure->title=$ombed->title; - if($ombed->modified) $enclosure->modified=$ombed->modified; - unset($ombed->size); + if($oembed->mimetype) $enclosure->mimetype=$oembed->mimetype; + if($oembed->url) $enclosure->url=$oembed->url; + if($oembed->title) $enclosure->title=$oembed->title; + if($oembed->modified) $enclosure->modified=$oembed->modified; + unset($oembed->size); } - }else{ - return $enclosure; } - }else{ - return $enclosure; } } + return $enclosure; } }