diff options
author | Evan Prodromou <evan@status.net> | 2009-08-27 14:52:32 -0700 |
---|---|---|
committer | Evan Prodromou <evan@status.net> | 2009-08-27 14:52:32 -0700 |
commit | a08c76a4342cfb4b3d772f6880ba0b8f3153b246 (patch) | |
tree | e2ba9ef2f670d01cf700a732d36050fe3ce63774 /classes/File.php | |
parent | 522008dee570aafcc844bf123d25203c7d9c3ebc (diff) | |
parent | eb667d09d9c6ef5a1465a5f8d824661a9387a4da (diff) |
Merge branch '0.9.x' of git@gitorious.org:laconica/mainline into 0.9.x
Conflicts:
classes/laconica.ini
Diffstat (limited to 'classes/File.php')
-rw-r--r-- | classes/File.php | 47 |
1 files changed, 37 insertions, 10 deletions
diff --git a/classes/File.php b/classes/File.php index 0cebfc55e..dc668ab23 100644 --- a/classes/File.php +++ b/classes/File.php @@ -195,17 +195,44 @@ class File extends Memcached_DataObject return 'http://'.$server.$path.$filename; } - function isEnclosure(){ - if(isset($this->filename)){ - return true; - } - $notEnclosureMimeTypes = array('text/html','application/xhtml+xml'); - $mimetype = strtolower($this->mimetype); - $semicolon = strpos($mimetype,';'); - if($semicolon){ - $mimetype = substr($mimetype,0,$semicolon); + function getEnclosure(){ + $enclosure = (object) array(); + $enclosure->title=$this->title; + $enclosure->url=$this->url; + $enclosure->title=$this->title; + $enclosure->date=$this->date; + $enclosure->modified=$this->modified; + $enclosure->size=$this->size; + $enclosure->mimetype=$this->mimetype; + + if(! isset($this->filename)){ + $notEnclosureMimeTypes = array('text/html','application/xhtml+xml'); + $mimetype = strtolower($this->mimetype); + $semicolon = strpos($mimetype,';'); + if($semicolon){ + $mimetype = substr($mimetype,0,$semicolon); + } + if(in_array($mimetype,$notEnclosureMimeTypes)){ + $oembed = File_oembed::staticGet('file_id',$this->id); + if($oembed){ + $mimetype = strtolower($oembed->mimetype); + $semicolon = strpos($mimetype,';'); + if($semicolon){ + $mimetype = substr($mimetype,0,$semicolon); + } + if(in_array($mimetype,$notEnclosureMimeTypes)){ + return false; + }else{ + 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); + } + } + } } - return(! in_array($mimetype,$notEnclosureMimeTypes)); + return $enclosure; } } |