forked from GNUsocial/gnu-social
Notice attachments are enclosures in feeds (Atom, RSS 1.0/RDF, and RSS 2.0).
http://laconi.ca/trac/ticket/1690
This commit is contained in:
parent
d2e83b6a67
commit
69574591d0
@ -1164,6 +1164,18 @@ class Notice extends Memcached_DataObject
|
|||||||
}
|
}
|
||||||
$tag->free();
|
$tag->free();
|
||||||
|
|
||||||
|
# Enclosures
|
||||||
|
$attachments = $this->attachments();
|
||||||
|
if($attachments){
|
||||||
|
foreach($attachments as $attachment){
|
||||||
|
$attributes = array('rel'=>'enclosure','href'=>$attachment->url,'type'=>$attachment->mimetype,'length'=>$attachment->size);
|
||||||
|
if($attachment->title){
|
||||||
|
$attributes['title']=$attachment->title;
|
||||||
|
}
|
||||||
|
$xs->element('link', $attributes, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$xs->elementEnd('entry');
|
$xs->elementEnd('entry');
|
||||||
|
|
||||||
return $xs->getString();
|
return $xs->getString();
|
||||||
|
@ -216,6 +216,13 @@ class Rss10Action extends Action
|
|||||||
$replyurl = common_local_url('shownotice', array('notice' => $notice->reply_to));
|
$replyurl = common_local_url('shownotice', array('notice' => $notice->reply_to));
|
||||||
$this->element('sioc:reply_of', array('rdf:resource' => $replyurl));
|
$this->element('sioc:reply_of', array('rdf:resource' => $replyurl));
|
||||||
}
|
}
|
||||||
|
$attachments = $notice->attachments();
|
||||||
|
if($attachments){
|
||||||
|
foreach($attachments as $attachment){
|
||||||
|
$this->element('enc:enclosure', array('rdf:resource'=>$attachment->url,'enc:type'=>$attachment->mimetype,'enc:length'=>$attachment->size), null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$this->elementEnd('item');
|
$this->elementEnd('item');
|
||||||
$this->creators[$creator_uri] = $profile;
|
$this->creators[$creator_uri] = $profile;
|
||||||
}
|
}
|
||||||
@ -251,6 +258,8 @@ class Rss10Action extends Action
|
|||||||
'http://creativecommons.org/ns#',
|
'http://creativecommons.org/ns#',
|
||||||
'xmlns:content' =>
|
'xmlns:content' =>
|
||||||
'http://purl.org/rss/1.0/modules/content/',
|
'http://purl.org/rss/1.0/modules/content/',
|
||||||
|
'xmlns:enc' =>
|
||||||
|
'http://purl.oclc.org/net/rss_2.0/enc#',
|
||||||
'xmlns:foaf' =>
|
'xmlns:foaf' =>
|
||||||
'http://xmlns.com/foaf/0.1/',
|
'http://xmlns.com/foaf/0.1/',
|
||||||
'xmlns:sioc' =>
|
'xmlns:sioc' =>
|
||||||
|
@ -207,7 +207,6 @@ class TwitterapiAction extends Action
|
|||||||
|
|
||||||
function twitter_rss_entry_array($notice)
|
function twitter_rss_entry_array($notice)
|
||||||
{
|
{
|
||||||
|
|
||||||
$profile = $notice->getProfile();
|
$profile = $notice->getProfile();
|
||||||
$entry = array();
|
$entry = array();
|
||||||
|
|
||||||
@ -224,6 +223,19 @@ class TwitterapiAction extends Action
|
|||||||
$entry['updated'] = $entry['published'];
|
$entry['updated'] = $entry['published'];
|
||||||
$entry['author'] = $profile->getBestName();
|
$entry['author'] = $profile->getBestName();
|
||||||
|
|
||||||
|
# Enclosure
|
||||||
|
$attachments = $notice->attachments();
|
||||||
|
if($attachments){
|
||||||
|
$entry['enclosures']=array();
|
||||||
|
foreach($attachments as $attachment){
|
||||||
|
$enclosure=array();
|
||||||
|
$enclosure['url']=$attachment->url;
|
||||||
|
$enclosure['mimetype']=$attachment->mimetype;
|
||||||
|
$enclosure['size']=$attachment->size;
|
||||||
|
$entry['enclosures'][]=$enclosure;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# RSS Item specific
|
# RSS Item specific
|
||||||
$entry['description'] = $entry['content'];
|
$entry['description'] = $entry['content'];
|
||||||
$entry['pubDate'] = common_date_rfc2822($notice->created);
|
$entry['pubDate'] = common_date_rfc2822($notice->created);
|
||||||
@ -378,6 +390,13 @@ class TwitterapiAction extends Action
|
|||||||
$this->element('pubDate', null, $entry['pubDate']);
|
$this->element('pubDate', null, $entry['pubDate']);
|
||||||
$this->element('guid', null, $entry['guid']);
|
$this->element('guid', null, $entry['guid']);
|
||||||
$this->element('link', null, $entry['link']);
|
$this->element('link', null, $entry['link']);
|
||||||
|
|
||||||
|
# RSS only supports 1 enclosure per item
|
||||||
|
if($entry['enclosures']){
|
||||||
|
$enclosure = $entry['enclosures'][0];
|
||||||
|
$this->element('enclosure', array('url'=>$enclosure['url'],'type'=>$enclosure['mimetype'],'length'=>$enclosure['size']), null);
|
||||||
|
}
|
||||||
|
|
||||||
$this->elementEnd('item');
|
$this->elementEnd('item');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user