Notice->getUrl() for shares would throw exception in some feeds

This commit is contained in:
Mikael Nordfeldth 2014-05-10 13:06:18 +02:00
parent ce23c68d1c
commit 04b7194511
2 changed files with 25 additions and 15 deletions

View File

@ -1493,7 +1493,12 @@ class Notice extends Managed_DataObject
$act->id = $this->uri;
$act->time = strtotime($this->created);
$act->link = $this->getUrl();
try {
$act->link = $this->getUrl();
} catch (InvalidUrlException $e) {
// The notice is probably a share or similar, which don't
// have a representational URL of their own.
}
$act->content = common_xml_safe_str($this->rendered);
$profile = $this->getProfile();

View File

@ -38,20 +38,25 @@ class OembedPlugin extends Plugin
'title'=>'oEmbed'),null);
break;
case 'shownotice':
$action->element('link',array('rel'=>'alternate',
'type'=>'application/json+oembed',
'href'=>common_local_url(
'oembed',
array(),
array('format'=>'json','url'=>$action->notice->getUrl())),
'title'=>'oEmbed'),null);
$action->element('link',array('rel'=>'alternate',
'type'=>'text/xml+oembed',
'href'=>common_local_url(
'oembed',
array(),
array('format'=>'xml','url'=>$action->notice->getUrl())),
'title'=>'oEmbed'),null);
try {
$action->element('link',array('rel'=>'alternate',
'type'=>'application/json+oembed',
'href'=>common_local_url(
'oembed',
array(),
array('format'=>'json','url'=>$action->notice->getUrl())),
'title'=>'oEmbed'),null);
$action->element('link',array('rel'=>'alternate',
'type'=>'text/xml+oembed',
'href'=>common_local_url(
'oembed',
array(),
array('format'=>'xml','url'=>$action->notice->getUrl())),
'title'=>'oEmbed'),null);
} catch (InvalidUrlException $e) {
// The notice is probably a share or similar, which don't
// have a representational URL of their own.
}
break;
}