File::processNew can return -1 which was not true for empty()

Also, File->getEnclosure() now throws exception if not enough metadata.
This commit is contained in:
Mikael Nordfeldth 2014-06-02 01:26:23 +02:00
parent d596513e39
commit d6f52f5939
5 changed files with 26 additions and 21 deletions

View File

@ -364,14 +364,11 @@ class File extends Managed_DataObject
Event::handle('FileEnclosureMetadata', array($this, &$enclosure)); Event::handle('FileEnclosureMetadata', array($this, &$enclosure));
} }
} }
return $enclosure; if (empty($enclosure->mimetype)) {
// This means we don't know what it is, so it can't be an enclosure!
throw new ServerException('Unknown enclosure mimetype, not enough metadata');
} }
return $enclosure;
// quick back-compat hack, since there's still code using this
function isEnclosure()
{
$enclosure = $this->getEnclosure();
return !empty($enclosure);
} }
/** /**

View File

@ -384,13 +384,15 @@ class ApiAction extends Action
$twitter_status['attachments'] = array(); $twitter_status['attachments'] = array();
foreach ($attachments as $attachment) { foreach ($attachments as $attachment) {
try {
$enclosure_o = $attachment->getEnclosure(); $enclosure_o = $attachment->getEnclosure();
if ($enclosure_o) {
$enclosure = array(); $enclosure = array();
$enclosure['url'] = $enclosure_o->url; $enclosure['url'] = $enclosure_o->url;
$enclosure['mimetype'] = $enclosure_o->mimetype; $enclosure['mimetype'] = $enclosure_o->mimetype;
$enclosure['size'] = $enclosure_o->size; $enclosure['size'] = $enclosure_o->size;
$twitter_status['attachments'][] = $enclosure; $twitter_status['attachments'][] = $enclosure;
} catch (ServerException $e) {
// There was not enough metadata available
} }
} }
} }
@ -510,13 +512,15 @@ class ApiAction extends Action
$enclosures = array(); $enclosures = array();
foreach ($attachments as $attachment) { foreach ($attachments as $attachment) {
try {
$enclosure_o = $attachment->getEnclosure(); $enclosure_o = $attachment->getEnclosure();
if ($enclosure_o) {
$enclosure = array(); $enclosure = array();
$enclosure['url'] = $enclosure_o->url; $enclosure['url'] = $enclosure_o->url;
$enclosure['mimetype'] = $enclosure_o->mimetype; $enclosure['mimetype'] = $enclosure_o->mimetype;
$enclosure['size'] = $enclosure_o->size; $enclosure['size'] = $enclosure_o->size;
$enclosures[] = $enclosure; $enclosures[] = $enclosure;
} catch (ServerException $e) {
// There was not enough metadata available
} }
} }

View File

@ -278,8 +278,8 @@ class Rss10Action extends Action
$attachments = $notice->attachments(); $attachments = $notice->attachments();
if($attachments){ if($attachments){
foreach($attachments as $attachment){ foreach($attachments as $attachment){
try {
$enclosure = $attachment->getEnclosure(); $enclosure = $attachment->getEnclosure();
if ($enclosure) {
$attribs = array('rdf:resource' => $enclosure->url); $attribs = array('rdf:resource' => $enclosure->url);
if ($enclosure->title) { if ($enclosure->title) {
$attribs['dc:title'] = $enclosure->title; $attribs['dc:title'] = $enclosure->title;
@ -294,6 +294,8 @@ class Rss10Action extends Action
$attribs['enc:type'] = $enclosure->mimetype; $attribs['enc:type'] = $enclosure->mimetype;
} }
$this->element('enc:enclosure', $attribs); $this->element('enc:enclosure', $attribs);
} catch (ServerException $e) {
// There was not enough metadata available
} }
$this->element('sioc:links_to', array('rdf:resource'=>$attachment->url)); $this->element('sioc:links_to', array('rdf:resource'=>$attachment->url));
} }

View File

@ -989,22 +989,23 @@ function common_linkify($url) {
$f = File::getKV('url', $longurl); $f = File::getKV('url', $longurl);
if (empty($f)) { if (!$f instanceof File) {
if (common_config('attachments', 'process_links')) { if (common_config('attachments', 'process_links')) {
// XXX: this writes to the database. :< // XXX: this writes to the database. :<
$f = File::processNew($longurl); $f = File::processNew($longurl);
} }
} }
if (!empty($f)) { if ($f instanceof File) {
if ($f->getEnclosure()) { try {
$enclosure = $f->getEnclosure();
$is_attachment = true; $is_attachment = true;
$attachment_id = $f->id; $attachment_id = $f->id;
$thumb = File_thumbnail::getKV('file_id', $f->id); $thumb = File_thumbnail::getKV('file_id', $f->id);
if (!empty($thumb)) { $has_thumb = ($thumb instanceof File_thumbnail);
$has_thumb = true; } catch (ServerException $e) {
} // There was not enough metadata available
} }
} }

View File

@ -651,9 +651,10 @@ class Facebookclient
foreach($attachments as $attachment) foreach($attachments as $attachment)
{ {
if($enclosure = $attachment->getEnclosure()){ try {
$enclosure = $attachment->getEnclosure();
$fbmedia = $this->getFacebookMedia($enclosure); $fbmedia = $this->getFacebookMedia($enclosure);
}else{ } catch (ServerException $e) {
$fbmedia = $this->getFacebookMedia($attachment); $fbmedia = $this->getFacebookMedia($attachment);
} }
if($fbmedia){ if($fbmedia){